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 #if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) 24 #error "Only <gtk/gtk.h> can be included directly." 25 #endif 26 27 #include <gtk/gtktreeview.h> 28 29 G_BEGIN_DECLS 30 31 32 #define GTK_TYPE_TREE_SELECTION (gtk_tree_selection_get_type ()) 33 #define GTK_TREE_SELECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TREE_SELECTION, GtkTreeSelection)) 34 #define GTK_TREE_SELECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE_SELECTION, GtkTreeSelectionClass)) 35 #define GTK_IS_TREE_SELECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TREE_SELECTION)) 36 #define GTK_IS_TREE_SELECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TREE_SELECTION)) 37 #define GTK_TREE_SELECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TREE_SELECTION, GtkTreeSelectionClass)) 38 39 typedef gboolean (* GtkTreeSelectionFunc) (GtkTreeSelection *selection, 40 GtkTreeModel *model, 41 GtkTreePath *path, 42 gboolean path_currently_selected, 43 gpointer data); 44 typedef void (* GtkTreeSelectionForeachFunc) (GtkTreeModel *model, 45 GtkTreePath *path, 46 GtkTreeIter *iter, 47 gpointer data); 48 49 struct _GtkTreeSelection 50 { 51 GObject parent; 52 53 /*< private >*/ 54 55 GtkTreeView *GSEAL (tree_view); 56 GtkSelectionMode GSEAL (type); 57 GtkTreeSelectionFunc GSEAL (user_func); 58 gpointer GSEAL (user_data); 59 GDestroyNotify GSEAL (destroy); 60 }; 61 62 struct _GtkTreeSelectionClass 63 { 64 GObjectClass parent_class; 65 66 void (* changed) (GtkTreeSelection *selection); 67 68 /* Padding for future expansion */ 69 void (*_gtk_reserved1) (void); 70 void (*_gtk_reserved2) (void); 71 void (*_gtk_reserved3) (void); 72 void (*_gtk_reserved4) (void); 73 }; 74 75 76 GType gtk_tree_selection_get_type (void) G_GNUC_CONST; 77 78 void gtk_tree_selection_set_mode (GtkTreeSelection *selection, 79 GtkSelectionMode type); 80 GtkSelectionMode gtk_tree_selection_get_mode (GtkTreeSelection *selection); 81 void gtk_tree_selection_set_select_function (GtkTreeSelection *selection, 82 GtkTreeSelectionFunc func, 83 gpointer data, 84 GDestroyNotify destroy); 85 gpointer gtk_tree_selection_get_user_data (GtkTreeSelection *selection); 86 GtkTreeView* gtk_tree_selection_get_tree_view (GtkTreeSelection *selection); 87 88 GtkTreeSelectionFunc gtk_tree_selection_get_select_function (GtkTreeSelection *selection); 89 90 /* Only meaningful if GTK_SELECTION_SINGLE or GTK_SELECTION_BROWSE is set */ 91 /* Use selected_foreach or get_selected_rows for GTK_SELECTION_MULTIPLE */ 92 gboolean gtk_tree_selection_get_selected (GtkTreeSelection *selection, 93 GtkTreeModel **model, 94 GtkTreeIter *iter); 95 GList * gtk_tree_selection_get_selected_rows (GtkTreeSelection *selection, 96 GtkTreeModel **model); 97 gint gtk_tree_selection_count_selected_rows (GtkTreeSelection *selection); 98 void gtk_tree_selection_selected_foreach (GtkTreeSelection *selection, 99 GtkTreeSelectionForeachFunc func, 100 gpointer data); 101 void gtk_tree_selection_select_path (GtkTreeSelection *selection, 102 GtkTreePath *path); 103 void gtk_tree_selection_unselect_path (GtkTreeSelection *selection, 104 GtkTreePath *path); 105 void gtk_tree_selection_select_iter (GtkTreeSelection *selection, 106 GtkTreeIter *iter); 107 void gtk_tree_selection_unselect_iter (GtkTreeSelection *selection, 108 GtkTreeIter *iter); 109 gboolean gtk_tree_selection_path_is_selected (GtkTreeSelection *selection, 110 GtkTreePath *path); 111 gboolean gtk_tree_selection_iter_is_selected (GtkTreeSelection *selection, 112 GtkTreeIter *iter); 113 void gtk_tree_selection_select_all (GtkTreeSelection *selection); 114 void gtk_tree_selection_unselect_all (GtkTreeSelection *selection); 115 void gtk_tree_selection_select_range (GtkTreeSelection *selection, 116 GtkTreePath *start_path, 117 GtkTreePath *end_path); 118 void gtk_tree_selection_unselect_range (GtkTreeSelection *selection, 119 GtkTreePath *start_path, 120 GtkTreePath *end_path); 121 122 123 G_END_DECLS 124 125 #endif /* __GTK_TREE_SELECTION_H__ */ 126