]> Pileus Git - ~andy/gtk/blob - gtk/gtktreeprivate.h
e3329c5f696e29297a3d00957a059bdb628028c3
[~andy/gtk] / gtk / gtktreeprivate.h
1 /* gtktreeprivate.h
2  * Copyright (C) 2000  Red Hat, Inc.,  Jonathan Blandford <jrb@redhat.com>
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library 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 GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public
15  * License along with this library; if not, write to the
16  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17  * Boston, MA 02111-1307, USA.
18  */
19
20 #ifndef __GTK_TREE_PRIVATE_H__
21 #define __GTK_TREE_PRIVATE_H__
22
23
24 G_BEGIN_DECLS
25
26
27 #include <gtk/gtktreeview.h>
28 #include <gtk/gtktreeselection.h>
29 #include <gtk/gtkrbtree.h>
30
31 #define TREE_VIEW_DRAG_WIDTH 6
32
33 typedef enum
34 {
35   GTK_TREE_SELECT_MODE_TOGGLE = 1 << 0,
36   GTK_TREE_SELECT_MODE_EXTEND = 1 << 1
37 }
38 GtkTreeSelectMode;
39
40 /* functions that shouldn't be exported */
41 void         _gtk_tree_selection_internal_select_node (GtkTreeSelection  *selection,
42                                                        GtkRBNode         *node,
43                                                        GtkRBTree         *tree,
44                                                        GtkTreePath       *path,
45                                                        GtkTreeSelectMode  mode,
46                                                        gboolean           override_browse_mode);
47 void         _gtk_tree_selection_emit_changed         (GtkTreeSelection  *selection);
48 gboolean     _gtk_tree_view_find_node                 (GtkTreeView       *tree_view,
49                                                        GtkTreePath       *path,
50                                                        GtkRBTree        **tree,
51                                                        GtkRBNode        **node);
52 gboolean     _gtk_tree_view_get_cursor_node           (GtkTreeView       *tree_view,
53                                                        GtkRBTree        **tree,
54                                                        GtkRBNode        **node);
55 GtkTreePath *_gtk_tree_path_new_from_rbtree           (GtkRBTree         *tree,
56                                                        GtkRBNode         *node);
57 void         _gtk_tree_view_child_move_resize         (GtkTreeView       *tree_view,
58                                                        GtkWidget         *widget,
59                                                        gint               x,
60                                                        gint               y,
61                                                        gint               width,
62                                                        gint               height);
63 void         _gtk_tree_view_queue_draw_node           (GtkTreeView       *tree_view,
64                                                        GtkRBTree         *tree,
65                                                        GtkRBNode         *node,
66                                                        const GdkRectangle *clip_rect);
67
68 void         _gtk_tree_view_add_editable              (GtkTreeView       *tree_view,
69                                                        GtkTreeViewColumn *column,
70                                                        GtkTreePath       *path,
71                                                        GtkCellEditable   *cell_editable,
72                                                        GdkRectangle      *cell_area);
73 void         _gtk_tree_view_remove_editable           (GtkTreeView       *tree_view,
74                                                        GtkTreeViewColumn *column,
75                                                        GtkCellEditable   *cell_editable);
76
77 void       _gtk_tree_view_install_mark_rows_col_dirty (GtkTreeView *tree_view,
78                                                        gboolean     install_handler);
79 void         _gtk_tree_view_column_autosize           (GtkTreeView       *tree_view,
80                                                        GtkTreeViewColumn *column);
81 gint         _gtk_tree_view_get_header_height         (GtkTreeView       *tree_view);
82
83 void         _gtk_tree_view_get_row_separator_func    (GtkTreeView                 *tree_view,
84                                                        GtkTreeViewRowSeparatorFunc *func,
85                                                        gpointer                    *data);
86 GtkTreePath *_gtk_tree_view_get_anchor_path           (GtkTreeView                 *tree_view);
87 void         _gtk_tree_view_set_anchor_path           (GtkTreeView                 *tree_view,
88                                                        GtkTreePath                 *anchor_path);
89 GtkRBTree *  _gtk_tree_view_get_rbtree                (GtkTreeView                 *tree_view);
90
91 GtkTreeViewColumn *_gtk_tree_view_get_focus_column    (GtkTreeView                 *tree_view);
92 void               _gtk_tree_view_set_focus_column    (GtkTreeView                 *tree_view,
93                                                        GtkTreeViewColumn           *column);
94 GdkWindow         *_gtk_tree_view_get_header_window   (GtkTreeView                 *tree_view);
95
96
97 GtkTreeSelection* _gtk_tree_selection_new                (void);
98 GtkTreeSelection* _gtk_tree_selection_new_with_tree_view (GtkTreeView      *tree_view);
99 void              _gtk_tree_selection_set_tree_view      (GtkTreeSelection *selection,
100                                                           GtkTreeView      *tree_view);
101 gboolean          _gtk_tree_selection_row_is_selectable  (GtkTreeSelection *selection,
102                                                           GtkRBNode        *node,
103                                                           GtkTreePath      *path);
104
105
106 void _gtk_tree_view_column_realize_button   (GtkTreeViewColumn *column);
107 void _gtk_tree_view_column_unrealize_button (GtkTreeViewColumn *column);
108  
109 void _gtk_tree_view_column_set_tree_view    (GtkTreeViewColumn *column,
110                                              GtkTreeView       *tree_view);
111 gint _gtk_tree_view_column_request_width    (GtkTreeViewColumn *tree_column);
112 void _gtk_tree_view_column_allocate         (GtkTreeViewColumn *tree_column,
113                                              int                x_offset,
114                                              int                width);
115 void _gtk_tree_view_column_unset_model      (GtkTreeViewColumn *column,
116                                              GtkTreeModel      *old_model);
117 void _gtk_tree_view_column_unset_tree_view  (GtkTreeViewColumn *column);
118 void _gtk_tree_view_column_start_drag       (GtkTreeView       *tree_view,
119                                              GtkTreeViewColumn *column,
120                                              GdkDevice         *device);
121 gboolean _gtk_tree_view_column_cell_event   (GtkTreeViewColumn  *tree_column,
122                                              GdkEvent           *event,
123                                              const GdkRectangle *cell_area,
124                                              guint               flags);
125 gboolean          _gtk_tree_view_column_has_editable_cell(GtkTreeViewColumn  *column);
126 GtkCellRenderer  *_gtk_tree_view_column_get_edited_cell  (GtkTreeViewColumn  *column);
127 GtkCellRenderer  *_gtk_tree_view_column_get_cell_at_pos  (GtkTreeViewColumn  *column,
128                                                           GdkRectangle       *cell_area,
129                                                           GdkRectangle       *background_area,
130                                                           gint                x,
131                                                           gint                y);
132 gboolean          _gtk_tree_view_column_is_blank_at_pos  (GtkTreeViewColumn  *column,
133                                                           GdkRectangle       *cell_area,
134                                                           GdkRectangle       *background_area,
135                                                           gint                x,
136                                                           gint                y);
137
138 void              _gtk_tree_view_column_cell_render      (GtkTreeViewColumn  *tree_column,
139                                                           cairo_t            *cr,
140                                                           const GdkRectangle *background_area,
141                                                           const GdkRectangle *cell_area,
142                                                           guint               flags,
143                                                           gboolean            draw_focus);
144 void              _gtk_tree_view_column_cell_set_dirty   (GtkTreeViewColumn  *tree_column,
145                                                           gboolean            install_handler);
146 gboolean          _gtk_tree_view_column_cell_get_dirty   (GtkTreeViewColumn  *tree_column);
147 GdkWindow        *_gtk_tree_view_column_get_window       (GtkTreeViewColumn  *column);
148
149 void              _gtk_tree_view_column_push_padding          (GtkTreeViewColumn  *column,
150                                                                gint                padding);
151 gint              _gtk_tree_view_column_get_requested_width   (GtkTreeViewColumn  *column);
152 void              _gtk_tree_view_column_set_resized_width     (GtkTreeViewColumn  *column,
153                                                                gint                width);
154 gint              _gtk_tree_view_column_get_resized_width     (GtkTreeViewColumn  *column);
155 void              _gtk_tree_view_column_set_use_resized_width (GtkTreeViewColumn  *column,
156                                                                gboolean            use_resized_width);
157 gboolean          _gtk_tree_view_column_get_use_resized_width (GtkTreeViewColumn  *column);
158 gint              _gtk_tree_view_column_get_drag_x            (GtkTreeViewColumn  *column);
159 GtkCellAreaContext *_gtk_tree_view_column_get_context         (GtkTreeViewColumn  *column);
160 void              _gtk_tree_view_reset_header_styles       (GtkTreeView        *tree_view);
161
162
163 G_END_DECLS
164
165
166 #endif /* __GTK_TREE_PRIVATE_H__ */
167