]> Pileus Git - ~andy/gtk/blob - gtk/gtktreeselection.h
Remove explicit pointer grabs, since they are no longer necessary.
[~andy/gtk] / gtk / gtktreeselection.h
1 /* gtktreeselection.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_SELECTION_H__
21 #define __GTK_TREE_SELECTION_H__
22
23 #include <gtk/gtkobject.h>
24 #include <gtk/gtktreeview.h>
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif /* __cplusplus */
29
30 #define GTK_TYPE_TREE_SELECTION                 (gtk_tree_selection_get_type ())
31 #define GTK_TREE_SELECTION(obj)                 (GTK_CHECK_CAST ((obj), GTK_TYPE_TREE_SELECTION, GtkTreeSelection))
32 #define GTK_TREE_SELECTION_CLASS(klass)         (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE_SELECTION, GtkTreeSelectionClass))
33 #define GTK_IS_TREE_SELECTION(obj)              (GTK_CHECK_TYPE ((obj), GTK_TYPE_TREE_SELECTION))
34 #define GTK_IS_TREE_SELECTION_CLASS(klass)      (GTK_CHECK_CLASS_TYPE ((obj), GTK_TYPE_TREE_SELECTION))
35
36 typedef enum
37 {
38   GTK_TREE_SELECTION_SINGLE,
39   GTK_TREE_SELECTION_MULTI
40 } GtkTreeSelectionMode;
41
42 typedef gboolean (* GtkTreeSelectionFunc)    (GtkTreeSelection  *selection,
43                                               GtkTreeModel      *model,
44                                               GtkTreePath       *path,
45                                               gpointer           data);
46 typedef void (* GtkTreeSelectionForeachFunc) (GtkTreeModel      *model,
47                                               GtkTreeIter       *iter,
48                                               gpointer           data);
49
50 struct _GtkTreeSelection
51 {
52   GtkObject parent;
53
54   /*< private >*/
55   
56   GtkTreeView *tree_view;
57   GtkTreeSelectionMode type;
58   GtkTreeSelectionFunc user_func;
59   gpointer user_data;
60   GtkDestroyNotify destroy;
61 };
62
63 struct _GtkTreeSelectionClass
64 {
65   GtkObjectClass parent_class;
66
67   void (* selection_changed) (GtkTreeView *tree_view);
68 };
69
70
71 GtkType          gtk_tree_selection_get_type            (void);
72
73 void             gtk_tree_selection_set_mode            (GtkTreeSelection            *selection,
74                                                          GtkTreeSelectionMode         type);
75 void             gtk_tree_selection_set_select_function (GtkTreeSelection            *selection,
76                                                          GtkTreeSelectionFunc         func,
77                                                          gpointer                     data,
78                                                          GtkDestroyNotify             destroy);
79 gpointer         gtk_tree_selection_get_user_data       (GtkTreeSelection            *selection);
80 GtkTreeView*     gtk_tree_selection_get_tree_view       (GtkTreeSelection            *selection);
81
82 /* Only meaningful if GTK_TREE_SELECTION_SINGLE is set */
83 /* Use selected_foreach for GTK_TREE_SELECTION_MULTI */
84 gboolean         gtk_tree_selection_get_selected        (GtkTreeSelection            *selection,
85                                                          GtkTreeModel               **model,
86                                                          GtkTreeIter                 *iter);
87
88 /* FIXME: Get a more convenient get_selection function????  one returning GSList?? */
89 void             gtk_tree_selection_selected_foreach    (GtkTreeSelection            *selection,
90                                                          GtkTreeSelectionForeachFunc  func,
91                                                          gpointer                     data);
92 void             gtk_tree_selection_select_path         (GtkTreeSelection            *selection,
93                                                          GtkTreePath                 *path);
94 void             gtk_tree_selection_unselect_path       (GtkTreeSelection            *selection,
95                                                          GtkTreePath                 *path);
96 void             gtk_tree_selection_select_iter         (GtkTreeSelection            *selection,
97                                                          GtkTreeIter                 *iter);
98 void             gtk_tree_selection_unselect_iter       (GtkTreeSelection            *selection,
99                                                          GtkTreeIter                 *iter);
100 void             gtk_tree_selection_select_all          (GtkTreeSelection            *selection);
101 void             gtk_tree_selection_unselect_all        (GtkTreeSelection            *selection);
102 void             gtk_tree_selection_select_range        (GtkTreeSelection            *selection,
103                                                          GtkTreePath                 *start_path,
104                                                          GtkTreePath                 *end_path);
105
106
107 #ifdef __cplusplus
108 }
109 #endif /* __cplusplus */
110
111
112 #endif /* __GTK_TREE_SELECTION_H__ */
113