b13d92d6920fc089d6f15fd204821cd01008124c
[pspp] / src / ui / gui / pspp-sheet-view.h
1 /* PSPPIRE - a graphical user interface for PSPP.
2    Copyright (C) 2011 Free Software Foundation, Inc.
3
4    This program is free software: you can redistribute it and/or modify
5    it under the terms of the GNU General Public License as published by
6    the Free Software Foundation, either version 3 of the License, or
7    (at your option) any later version.
8
9    This program is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU General Public License for more details.
13
14    You should have received a copy of the GNU General Public License
15    along with this program.  If not, see <http://www.gnu.org/licenses/>. */
16
17 /* gtktreeview.h
18  * Copyright (C) 2000  Red Hat, Inc.,  Jonathan Blandford <jrb@redhat.com>
19  *
20  * This library is free software; you can redistribute it and/or
21  * modify it under the terms of the GNU Library General Public
22  * License as published by the Free Software Foundation; either
23  * version 2 of the License, or (at your option) any later version.
24  *
25  * This library is distributed in the hope that it will be useful,
26  * but WITHOUT ANY WARRANTY; without even the implied warranty of
27  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
28  * Library General Public License for more details.
29  *
30  * You should have received a copy of the GNU Library General Public
31  * License along with this library; if not, write to the
32  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
33  * Boston, MA 02111-1307, USA.
34  */
35
36 #ifndef __PSPP_SHEET_VIEW_H__
37 #define __PSPP_SHEET_VIEW_H__
38
39 #include <gtk/gtk.h>
40 #include "ui/gui/pspp-sheet-view-column.h"
41
42 G_BEGIN_DECLS
43
44
45 typedef enum
46 {
47   PSPP_SHEET_VIEW_GRID_LINES_NONE,
48   PSPP_SHEET_VIEW_GRID_LINES_HORIZONTAL,
49   PSPP_SHEET_VIEW_GRID_LINES_VERTICAL,
50   PSPP_SHEET_VIEW_GRID_LINES_BOTH
51 } PsppSheetViewGridLines;
52
53 GType pspp_sheet_view_grid_lines_get_type (void) G_GNUC_CONST;
54 #define PSPP_TYPE_SHEET_VIEW_GRID_LINES (pspp_sheet_view_grid_lines_get_type ())
55
56 typedef enum
57 {
58   /* drop before/after this row */
59   PSPP_SHEET_VIEW_DROP_BEFORE,
60   PSPP_SHEET_VIEW_DROP_AFTER,
61   /* drop as a child of this row (with fallback to before or after
62    * if into is not possible)
63    */
64   PSPP_SHEET_VIEW_DROP_INTO_OR_BEFORE,
65   PSPP_SHEET_VIEW_DROP_INTO_OR_AFTER
66 } PsppSheetViewDropPosition;
67
68 #define PSPP_TYPE_SHEET_VIEW            (pspp_sheet_view_get_type ())
69 #define PSPP_SHEET_VIEW(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), PSPP_TYPE_SHEET_VIEW, PsppSheetView))
70 #define PSPP_SHEET_VIEW_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), PSPP_TYPE_SHEET_VIEW, PsppSheetViewClass))
71 #define PSPP_IS_SHEET_VIEW(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PSPP_TYPE_SHEET_VIEW))
72 #define PSPP_IS_SHEET_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PSPP_TYPE_SHEET_VIEW))
73 #define PSPP_SHEET_VIEW_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), PSPP_TYPE_SHEET_VIEW, PsppSheetViewClass))
74
75 typedef struct _PsppSheetView           PsppSheetView;
76 typedef struct _PsppSheetViewClass      PsppSheetViewClass;
77 typedef struct _PsppSheetViewPrivate    PsppSheetViewPrivate;
78 typedef struct _PsppSheetSelection      PsppSheetSelection;
79 typedef struct _PsppSheetSelectionClass PsppSheetSelectionClass;
80
81 struct _PsppSheetView
82 {
83   GtkContainer parent;
84
85   PsppSheetViewPrivate *GSEAL (priv);
86 };
87
88 struct _PsppSheetViewClass
89 {
90   GtkContainerClass parent_class;
91
92   void     (* set_scroll_adjustments)     (PsppSheetView       *tree_view,
93                                            GtkAdjustment     *hadjustment,
94                                            GtkAdjustment     *vadjustment);
95   void     (* row_activated)              (PsppSheetView       *tree_view,
96                                            GtkTreePath       *path,
97                                            PsppSheetViewColumn *column);
98   gboolean (* test_expand_row)            (PsppSheetView       *tree_view,
99                                            GtkTreeIter       *iter,
100                                            GtkTreePath       *path);
101   gboolean (* test_collapse_row)          (PsppSheetView       *tree_view,
102                                            GtkTreeIter       *iter,
103                                            GtkTreePath       *path);
104   void     (* row_expanded)               (PsppSheetView       *tree_view,
105                                            GtkTreeIter       *iter,
106                                            GtkTreePath       *path);
107   void     (* row_collapsed)              (PsppSheetView       *tree_view,
108                                            GtkTreeIter       *iter,
109                                            GtkTreePath       *path);
110   void     (* columns_changed)            (PsppSheetView       *tree_view);
111   void     (* cursor_changed)             (PsppSheetView       *tree_view);
112
113   /* Key Binding signals */
114   gboolean (* move_cursor)                (PsppSheetView       *tree_view,
115                                            GtkMovementStep    step,
116                                            gint               count);
117   gboolean (* select_all)                 (PsppSheetView       *tree_view);
118   gboolean (* unselect_all)               (PsppSheetView       *tree_view);
119   gboolean (* select_cursor_row)          (PsppSheetView       *tree_view,
120                                            gboolean           start_editing);
121   gboolean (* toggle_cursor_row)          (PsppSheetView       *tree_view);
122   gboolean (* expand_collapse_cursor_row) (PsppSheetView       *tree_view,
123                                            gboolean           logical,
124                                            gboolean           expand,
125                                            gboolean           open_all);
126   gboolean (* select_cursor_parent)       (PsppSheetView       *tree_view);
127   gboolean (* start_interactive_search)   (PsppSheetView       *tree_view);
128
129   /* Padding for future expansion */
130   void (*_gtk_reserved0) (void);
131   void (*_gtk_reserved1) (void);
132   void (*_gtk_reserved2) (void);
133   void (*_gtk_reserved3) (void);
134   void (*_gtk_reserved4) (void);
135 };
136
137
138 typedef gboolean (* PsppSheetViewColumnDropFunc) (PsppSheetView             *tree_view,
139                                                 PsppSheetViewColumn       *column,
140                                                 PsppSheetViewColumn       *prev_column,
141                                                 PsppSheetViewColumn       *next_column,
142                                                 gpointer                 data);
143 typedef void     (* PsppSheetViewMappingFunc)    (PsppSheetView             *tree_view,
144                                                 GtkTreePath             *path,
145                                                 gpointer                 user_data);
146 typedef gboolean (*PsppSheetViewSearchEqualFunc) (GtkTreeModel            *model,
147                                                 gint                     column,
148                                                 const gchar             *key,
149                                                 GtkTreeIter             *iter,
150                                                 gpointer                 search_data);
151 typedef gboolean (*PsppSheetViewRowSeparatorFunc) (GtkTreeModel      *model,
152                                                  GtkTreeIter       *iter,
153                                                  gpointer           data);
154 typedef void     (*PsppSheetViewSearchPositionFunc) (PsppSheetView  *tree_view,
155                                                    GtkWidget    *search_dialog,
156                                                    gpointer      user_data);
157
158
159 /* Creators */
160 GType                  pspp_sheet_view_get_type                      (void) G_GNUC_CONST;
161 GtkWidget             *pspp_sheet_view_new                           (void);
162 GtkWidget             *pspp_sheet_view_new_with_model                (GtkTreeModel              *model);
163
164 /* Accessors */
165 GtkTreeModel          *pspp_sheet_view_get_model                     (PsppSheetView               *tree_view);
166 void                   pspp_sheet_view_set_model                     (PsppSheetView               *tree_view,
167                                                                     GtkTreeModel              *model);
168 PsppSheetSelection      *pspp_sheet_view_get_selection                 (PsppSheetView               *tree_view);
169 GtkAdjustment         *pspp_sheet_view_get_hadjustment               (PsppSheetView               *tree_view);
170 void                   pspp_sheet_view_set_hadjustment               (PsppSheetView               *tree_view,
171                                                                     GtkAdjustment             *adjustment);
172 GtkAdjustment         *pspp_sheet_view_get_vadjustment               (PsppSheetView               *tree_view);
173 void                   pspp_sheet_view_set_vadjustment               (PsppSheetView               *tree_view,
174                                                                     GtkAdjustment             *adjustment);
175 gboolean               pspp_sheet_view_get_headers_visible           (PsppSheetView               *tree_view);
176 void                   pspp_sheet_view_set_headers_visible           (PsppSheetView               *tree_view,
177                                                                     gboolean                   headers_visible);
178 void                   pspp_sheet_view_columns_autosize              (PsppSheetView               *tree_view);
179 gboolean               pspp_sheet_view_get_headers_clickable         (PsppSheetView *tree_view);
180 void                   pspp_sheet_view_set_headers_clickable         (PsppSheetView               *tree_view,
181                                                                     gboolean                   setting);
182 void                   pspp_sheet_view_set_rules_hint                (PsppSheetView               *tree_view,
183                                                                     gboolean                   setting);
184 gboolean               pspp_sheet_view_get_rules_hint                (PsppSheetView               *tree_view);
185
186 /* Column funtions */
187 gint                   pspp_sheet_view_append_column                 (PsppSheetView               *tree_view,
188                                                                     PsppSheetViewColumn         *column);
189 gint                   pspp_sheet_view_remove_column                 (PsppSheetView               *tree_view,
190                                                                     PsppSheetViewColumn         *column);
191 gint                   pspp_sheet_view_insert_column                 (PsppSheetView               *tree_view,
192                                                                     PsppSheetViewColumn         *column,
193                                                                     gint                       position);
194 gint                   pspp_sheet_view_insert_column_with_attributes (PsppSheetView               *tree_view,
195                                                                     gint                       position,
196                                                                     const gchar               *title,
197                                                                     GtkCellRenderer           *cell,
198                                                                     ...) G_GNUC_NULL_TERMINATED;
199 gint                   pspp_sheet_view_insert_column_with_data_func  (PsppSheetView               *tree_view,
200                                                                     gint                       position,
201                                                                     const gchar               *title,
202                                                                     GtkCellRenderer           *cell,
203                                                                     PsppSheetCellDataFunc        func,
204                                                                     gpointer                   data,
205                                                                     GDestroyNotify             dnotify);
206 PsppSheetViewColumn     *pspp_sheet_view_get_column                    (PsppSheetView               *tree_view,
207                                                                     gint                       n);
208 GList                 *pspp_sheet_view_get_columns                   (PsppSheetView               *tree_view);
209 void                   pspp_sheet_view_move_column_after             (PsppSheetView               *tree_view,
210                                                                     PsppSheetViewColumn         *column,
211                                                                     PsppSheetViewColumn         *base_column);
212 void                   pspp_sheet_view_set_expander_column           (PsppSheetView               *tree_view,
213                                                                     PsppSheetViewColumn         *column);
214 PsppSheetViewColumn     *pspp_sheet_view_get_expander_column           (PsppSheetView               *tree_view);
215 void                   pspp_sheet_view_set_column_drag_function      (PsppSheetView               *tree_view,
216                                                                     PsppSheetViewColumnDropFunc  func,
217                                                                     gpointer                   user_data,
218                                                                     GDestroyNotify             destroy);
219
220 /* Actions */
221 void                   pspp_sheet_view_scroll_to_point               (PsppSheetView               *tree_view,
222                                                                     gint                       tree_x,
223                                                                     gint                       tree_y);
224 void                   pspp_sheet_view_scroll_to_cell                (PsppSheetView               *tree_view,
225                                                                     GtkTreePath               *path,
226                                                                     PsppSheetViewColumn         *column,
227                                                                     gboolean                   use_align,
228                                                                     gfloat                     row_align,
229                                                                     gfloat                     col_align);
230 void                   pspp_sheet_view_row_activated                 (PsppSheetView               *tree_view,
231                                                                     GtkTreePath               *path,
232                                                                     PsppSheetViewColumn         *column);
233 void                   pspp_sheet_view_expand_all                    (PsppSheetView               *tree_view);
234 void                   pspp_sheet_view_collapse_all                  (PsppSheetView               *tree_view);
235 void                   pspp_sheet_view_expand_to_path                (PsppSheetView               *tree_view,
236                                                                     GtkTreePath               *path);
237 gboolean               pspp_sheet_view_expand_row                    (PsppSheetView               *tree_view,
238                                                                     GtkTreePath               *path,
239                                                                     gboolean                   open_all);
240 gboolean               pspp_sheet_view_collapse_row                  (PsppSheetView               *tree_view,
241                                                                     GtkTreePath               *path);
242 void                   pspp_sheet_view_map_expanded_rows             (PsppSheetView               *tree_view,
243                                                                     PsppSheetViewMappingFunc     func,
244                                                                     gpointer                   data);
245 gboolean               pspp_sheet_view_row_expanded                  (PsppSheetView               *tree_view,
246                                                                     GtkTreePath               *path);
247 void                   pspp_sheet_view_set_reorderable               (PsppSheetView               *tree_view,
248                                                                     gboolean                   reorderable);
249 gboolean               pspp_sheet_view_get_reorderable               (PsppSheetView               *tree_view);
250 void                   pspp_sheet_view_set_cursor                    (PsppSheetView               *tree_view,
251                                                                     GtkTreePath               *path,
252                                                                     PsppSheetViewColumn         *focus_column,
253                                                                     gboolean                   start_editing);
254 void                   pspp_sheet_view_set_cursor_on_cell            (PsppSheetView               *tree_view,
255                                                                     GtkTreePath               *path,
256                                                                     PsppSheetViewColumn         *focus_column,
257                                                                     GtkCellRenderer           *focus_cell,
258                                                                     gboolean                   start_editing);
259 void                   pspp_sheet_view_get_cursor                    (PsppSheetView               *tree_view,
260                                                                     GtkTreePath              **path,
261                                                                     PsppSheetViewColumn        **focus_column);
262
263
264 /* Layout information */
265 GdkWindow             *pspp_sheet_view_get_bin_window                (PsppSheetView               *tree_view);
266 gboolean               pspp_sheet_view_get_path_at_pos               (PsppSheetView               *tree_view,
267                                                                     gint                       x,
268                                                                     gint                       y,
269                                                                     GtkTreePath              **path,
270                                                                     PsppSheetViewColumn        **column,
271                                                                     gint                      *cell_x,
272                                                                     gint                      *cell_y);
273 void                   pspp_sheet_view_get_cell_area                 (PsppSheetView               *tree_view,
274                                                                     GtkTreePath               *path,
275                                                                     PsppSheetViewColumn         *column,
276                                                                     GdkRectangle              *rect);
277 void                   pspp_sheet_view_get_background_area           (PsppSheetView               *tree_view,
278                                                                     GtkTreePath               *path,
279                                                                     PsppSheetViewColumn         *column,
280                                                                     GdkRectangle              *rect);
281 void                   pspp_sheet_view_get_visible_rect              (PsppSheetView               *tree_view,
282                                                                     GdkRectangle              *visible_rect);
283
284 #ifndef GTK_DISABLE_DEPRECATED
285 void                   pspp_sheet_view_widget_to_tree_coords         (PsppSheetView               *tree_view,
286                                                                     gint                       wx,
287                                                                     gint                       wy,
288                                                                     gint                      *tx,
289                                                                     gint                      *ty);
290 void                   pspp_sheet_view_tree_to_widget_coords         (PsppSheetView               *tree_view,
291                                                                     gint                       tx,
292                                                                     gint                       ty,
293                                                                     gint                      *wx,
294                                                                     gint                      *wy);
295 #endif /* !GTK_DISABLE_DEPRECATED */
296 gboolean               pspp_sheet_view_get_visible_range             (PsppSheetView               *tree_view,
297                                                                     GtkTreePath              **start_path,
298                                                                     GtkTreePath              **end_path);
299
300 /* Drag-and-Drop support */
301 void                   pspp_sheet_view_enable_model_drag_source      (PsppSheetView               *tree_view,
302                                                                     GdkModifierType            start_button_mask,
303                                                                     const GtkTargetEntry      *targets,
304                                                                     gint                       n_targets,
305                                                                     GdkDragAction              actions);
306 void                   pspp_sheet_view_enable_model_drag_dest        (PsppSheetView               *tree_view,
307                                                                     const GtkTargetEntry      *targets,
308                                                                     gint                       n_targets,
309                                                                     GdkDragAction              actions);
310 void                   pspp_sheet_view_unset_rows_drag_source        (PsppSheetView               *tree_view);
311 void                   pspp_sheet_view_unset_rows_drag_dest          (PsppSheetView               *tree_view);
312
313
314 /* These are useful to implement your own custom stuff. */
315 void                   pspp_sheet_view_set_drag_dest_row             (PsppSheetView               *tree_view,
316                                                                     GtkTreePath               *path,
317                                                                     PsppSheetViewDropPosition    pos);
318 void                   pspp_sheet_view_get_drag_dest_row             (PsppSheetView               *tree_view,
319                                                                     GtkTreePath              **path,
320                                                                     PsppSheetViewDropPosition   *pos);
321 gboolean               pspp_sheet_view_get_dest_row_at_pos           (PsppSheetView               *tree_view,
322                                                                     gint                       drag_x,
323                                                                     gint                       drag_y,
324                                                                     GtkTreePath              **path,
325                                                                     PsppSheetViewDropPosition   *pos);
326 GdkPixmap             *pspp_sheet_view_create_row_drag_icon          (PsppSheetView               *tree_view,
327                                                                     GtkTreePath               *path);
328
329 /* Interactive search */
330 void                       pspp_sheet_view_set_enable_search     (PsppSheetView                *tree_view,
331                                                                 gboolean                    enable_search);
332 gboolean                   pspp_sheet_view_get_enable_search     (PsppSheetView                *tree_view);
333 gint                       pspp_sheet_view_get_search_column     (PsppSheetView                *tree_view);
334 void                       pspp_sheet_view_set_search_column     (PsppSheetView                *tree_view,
335                                                                 gint                        column);
336 PsppSheetViewSearchEqualFunc pspp_sheet_view_get_search_equal_func (PsppSheetView                *tree_view);
337 void                       pspp_sheet_view_set_search_equal_func (PsppSheetView                *tree_view,
338                                                                 PsppSheetViewSearchEqualFunc  search_equal_func,
339                                                                 gpointer                    search_user_data,
340                                                                 GDestroyNotify              search_destroy);
341
342 GtkEntry                     *pspp_sheet_view_get_search_entry         (PsppSheetView                   *tree_view);
343 void                          pspp_sheet_view_set_search_entry         (PsppSheetView                   *tree_view,
344                                                                       GtkEntry                      *entry);
345 PsppSheetViewSearchPositionFunc pspp_sheet_view_get_search_position_func (PsppSheetView                   *tree_view);
346 void                          pspp_sheet_view_set_search_position_func (PsppSheetView                   *tree_view,
347                                                                       PsppSheetViewSearchPositionFunc  func,
348                                                                       gpointer                       data,
349                                                                       GDestroyNotify                 destroy);
350
351 /* Convert between the different coordinate systems */
352 void pspp_sheet_view_convert_widget_to_tree_coords       (PsppSheetView *tree_view,
353                                                         gint         wx,
354                                                         gint         wy,
355                                                         gint        *tx,
356                                                         gint        *ty);
357 void pspp_sheet_view_convert_tree_to_widget_coords       (PsppSheetView *tree_view,
358                                                         gint         tx,
359                                                         gint         ty,
360                                                         gint        *wx,
361                                                         gint        *wy);
362 void pspp_sheet_view_convert_widget_to_bin_window_coords (PsppSheetView *tree_view,
363                                                         gint         wx,
364                                                         gint         wy,
365                                                         gint        *bx,
366                                                         gint        *by);
367 void pspp_sheet_view_convert_bin_window_to_widget_coords (PsppSheetView *tree_view,
368                                                         gint         bx,
369                                                         gint         by,
370                                                         gint        *wx,
371                                                         gint        *wy);
372 void pspp_sheet_view_convert_tree_to_bin_window_coords   (PsppSheetView *tree_view,
373                                                         gint         tx,
374                                                         gint         ty,
375                                                         gint        *bx,
376                                                         gint        *by);
377 void pspp_sheet_view_convert_bin_window_to_tree_coords   (PsppSheetView *tree_view,
378                                                         gint         bx,
379                                                         gint         by,
380                                                         gint        *tx,
381                                                         gint        *ty);
382
383 /* This function should really never be used.  It is just for use by ATK.
384  */
385 typedef void (* PsppSheetDestroyCountFunc)  (PsppSheetView             *tree_view,
386                                            GtkTreePath             *path,
387                                            gint                     children,
388                                            gpointer                 user_data);
389 void pspp_sheet_view_set_destroy_count_func (PsppSheetView             *tree_view,
390                                            PsppSheetDestroyCountFunc  func,
391                                            gpointer                 data,
392                                            GDestroyNotify           destroy);
393
394 void     pspp_sheet_view_set_fixed_height_mode (PsppSheetView          *tree_view,
395                                               gboolean              enable);
396 gboolean pspp_sheet_view_get_fixed_height_mode (PsppSheetView          *tree_view);
397 void     pspp_sheet_view_set_hover_selection   (PsppSheetView          *tree_view,
398                                               gboolean              hover);
399 gboolean pspp_sheet_view_get_hover_selection   (PsppSheetView          *tree_view);
400 void     pspp_sheet_view_set_hover_expand      (PsppSheetView          *tree_view,
401                                               gboolean              expand);
402 gboolean pspp_sheet_view_get_hover_expand      (PsppSheetView          *tree_view);
403 void     pspp_sheet_view_set_rubber_banding    (PsppSheetView          *tree_view,
404                                               gboolean              enable);
405 gboolean pspp_sheet_view_get_rubber_banding    (PsppSheetView          *tree_view);
406
407 gboolean pspp_sheet_view_is_rubber_banding_active (PsppSheetView       *tree_view);
408
409 PsppSheetViewRowSeparatorFunc pspp_sheet_view_get_row_separator_func (PsppSheetView               *tree_view);
410 void                        pspp_sheet_view_set_row_separator_func (PsppSheetView                *tree_view,
411                                                                   PsppSheetViewRowSeparatorFunc func,
412                                                                   gpointer                    data,
413                                                                   GDestroyNotify              destroy);
414
415 PsppSheetViewGridLines        pspp_sheet_view_get_grid_lines         (PsppSheetView                *tree_view);
416 void                        pspp_sheet_view_set_grid_lines         (PsppSheetView                *tree_view,
417                                                                   PsppSheetViewGridLines        grid_lines);
418 gboolean                    pspp_sheet_view_get_enable_tree_lines  (PsppSheetView                *tree_view);
419 void                        pspp_sheet_view_set_enable_tree_lines  (PsppSheetView                *tree_view,
420                                                                   gboolean                    enabled);
421 void                        pspp_sheet_view_set_show_expanders     (PsppSheetView                *tree_view,
422                                                                   gboolean                    enabled);
423 gboolean                    pspp_sheet_view_get_show_expanders     (PsppSheetView                *tree_view);
424 void                        pspp_sheet_view_set_level_indentation  (PsppSheetView                *tree_view,
425                                                                   gint                        indentation);
426 gint                        pspp_sheet_view_get_level_indentation  (PsppSheetView                *tree_view);
427
428 /* Convenience functions for setting tooltips */
429 void          pspp_sheet_view_set_tooltip_row    (PsppSheetView       *tree_view,
430                                                 GtkTooltip        *tooltip,
431                                                 GtkTreePath       *path);
432 void          pspp_sheet_view_set_tooltip_cell   (PsppSheetView       *tree_view,
433                                                 GtkTooltip        *tooltip,
434                                                 GtkTreePath       *path,
435                                                 PsppSheetViewColumn *column,
436                                                 GtkCellRenderer   *cell);
437 gboolean      pspp_sheet_view_get_tooltip_context(PsppSheetView       *tree_view,
438                                                 gint              *x,
439                                                 gint              *y,
440                                                 gboolean           keyboard_tip,
441                                                 GtkTreeModel     **model,
442                                                 GtkTreePath      **path,
443                                                 GtkTreeIter       *iter);
444 void          pspp_sheet_view_set_tooltip_column (PsppSheetView       *tree_view,
445                                                 gint               column);
446 gint          pspp_sheet_view_get_tooltip_column (PsppSheetView       *tree_view);
447
448 G_END_DECLS
449
450
451 #endif /* __PSPP_SHEET_VIEW_H__ */