Main Page | Alphabetical List | Compound List | File List | Compound Members | File Members

gtkxtreeview.h

Go to the documentation of this file.
00001 /*
00002  * XetPan: a libEtPan! based Mail User Agent
00003  * Copyright (C) 2002-2003 Melvin Hadasht
00004  *
00005  * This is part of XetPan
00006  *
00007  * This is a tree view/list view widget taylored for small memory footprint
00008  * and for direct accessing of user data via user provided function
00009  * to retrieve data and to navigate through it.
00010  * 
00011  * Some parts of this code are heavily inspired from gtk+ 2.x gtktreeview,
00012  * for example: resize grips in header button, some function names.
00013  *
00014  * Gtk+ is to be found at http://www.gtk.org
00015  *
00016  * This program is free software; you can redistribute it and/or modify
00017  * it under the terms of the GNU General Public License as published by
00018  * the Free Software Foundation; either version 2 of the License, or
00019  * (at your option) any later version.
00020  *
00021  * This program is distributed in the hope that it will be useful,
00022  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00023  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00024  * GNU General Public License for more details.
00025  *
00026  * You should have received a copy of the GNU General Public License
00027  * along with this program; if not, write to the Free Software
00028  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00029  */
00030 
00031 #ifndef GTKXTREEVIEW_H
00032 #define GTKXTREEVIEW_H
00033 
00034 #include <inttypes.h>
00035 #include <glib.h>
00036 #include <glib-object.h>
00037 
00038 G_BEGIN_DECLS
00039 
00040 #define GTK_XTREE_VIEW_TYPE             (gtk_xtree_view_get_type ())
00041 #define GTK_XTREE_VIEW(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_XTREE_VIEW_TYPE, GtkXTreeView))
00042 #define GTK_XTREE_VIEW_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_XTREE_VIEW_TYPE, GtkXTreeViewClass))
00043 #define IS_GTK_XTREE_VIEW(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_XTREE_VIEW_TYPE))
00044 #define IS_GTK_XTREE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_XTREE_VIEW_TYPE))
00045 
00046 typedef struct _GtkXTreeView      GtkXTreeView;
00047 typedef struct _GtkXTreeViewClass GtkXTreeViewClass;
00048 
00049 typedef enum
00050 {
00051         GTK_XCOLUMN_TYPE_TEXT,
00052         GTK_XCOLUMN_TYPE_PIXBUF,
00053         GTK_XCOLUMN_TYPE_STOCKID
00054 } GtkXColumnType;
00055 
00063 typedef gboolean (*GtkXTreeViewRowDataFunc)(void *iterator, guint col_id, void **content, gchar **attribute, gpointer data);
00064                 
00068 typedef void (*GtkXTreeViewRowParamsFunc)(void *iterator, gboolean *has_children, guint *depth, gpointer data);
00069 
00104 typedef gboolean (*GtkXTreeViewDataIteratorFunc)(void **iterator, 
00105                 gboolean is_next, 
00106                 gboolean sibling_first, 
00107                 guint sort_col_id, 
00108                 GtkSortType sort_order, 
00109                 gpointer data);
00110 
00115 typedef gboolean (*GtkXTreeViewMatchFunc)(void *iterator, gpointer data);
00116 GType gtk_xtree_view_get_type(void);
00117 
00118 GtkWidget *gtk_xtree_view_new(void);
00119 
00127 gboolean gtk_xtree_view_insert_column(GtkXTreeView *xtv, guint col, guint col_id, GtkXColumnType type, gboolean is_sortable, GtkSortType sort_order, GtkWidget *title_widget, gchar *title_string);
00128 
00130 gboolean gtk_xtree_view_set_sort_column(GtkXTreeView *xtv, guint col_id, GtkSortType sort_order);
00131 
00132 void gtk_xtree_view_set_column_width(GtkXTreeView *xtv, guint col_id, guint width);
00133 
00134 void gtk_xtree_view_set_expansible_column(GtkXTreeView *xtv, guint col_id);
00135 
00136 void gtk_xtree_view_set_expander_column(GtkXTreeView *xtv, guint col_id);
00137 
00142 void gtk_xtree_view_set_row_data_func(GtkXTreeView *xtv, GtkXTreeViewRowDataFunc func, gpointer data);
00143 
00144 void gtk_xtree_view_set_row_params_func(GtkXTreeView *xtv, GtkXTreeViewRowParamsFunc func, gpointer data);
00145 
00146 void gtk_xtree_view_set_data_iterator_func(GtkXTreeView *xtv, GtkXTreeViewDataIteratorFunc func, gpointer data);
00147 
00148 void gtk_xtree_view_update_all(GtkXTreeView *xtv);
00149 
00150 void gtk_xtree_view_update_row(GtkXTreeView *xtv, void *iterator);
00151 
00152 void gtk_xtree_view_update_cell(GtkXTreeView *xtv, void *iterator, guint col_id);
00153 
00154 void gtk_xtree_view_set_first_row(GtkXTreeView *xtv, void *iterator);
00155 void gtk_xtree_view_set_length(GtkXTreeView *xtv, guint length);
00156 
00157 void gtk_xtree_view_freeze(GtkXTreeView *xtv);
00158 void gtk_xtree_view_thaw(GtkXTreeView *xtv);
00159 void gtk_xtree_view_update(GtkXTreeView *xtv);
00160 void *gtk_xtree_view_get_focused(GtkXTreeView *xtv);
00161 gboolean gtk_xtree_view_find_cell(GtkXTreeView *xtv, 
00162                 gint x, gint y, 
00163                 void **iterator,
00164                 gint *row, 
00165                 gint *col_id,
00166                 gboolean *expander);
00167 uint32_t gtk_xtree_view_get_selection(GtkXTreeView *xtv, 
00168                 void ***selection);
00169 void gtk_xtree_view_reset(GtkXTreeView *xtv);
00170 void gtk_xtree_view_clear_selection(GtkXTreeView *xtv);
00171 uint32_t gtk_xtree_view_select_all(GtkXTreeView *xtv, void ***selection);
00172 uint32_t gtk_xtree_view_invert_selection(GtkXTreeView *xtv, void ***selection);
00173 
00174 void gtk_xtree_view_set_match_func(GtkXTreeView *xtv,
00175                 GtkXTreeViewMatchFunc func,
00176                 gpointer data);
00177 gboolean gtk_xtree_view_next_match(GtkXTreeView *xtv, gboolean activate_match);
00178 gboolean gtk_xtree_view_prev_match(GtkXTreeView *xtv, gboolean activate_match);
00179 uint32_t gtk_xtree_view_select_all_matches(GtkXTreeView *xtv,
00180                 gboolean new_selection);
00181 void gtk_xtree_view_activate_focused(GtkXTreeView *xtv, guint state);
00182 gboolean gtk_xtree_view_toggle_node(GtkXTreeView *xtv, void *iterator);
00183 gboolean gtk_xtree_view_expand_node(GtkXTreeView *xtv, void *iterator);
00184 gboolean gtk_xtree_view_collapse_node(GtkXTreeView *xtv, void *iterator);
00185 
00186 G_END_DECLS
00187 
00188 #endif

Generated on Wed Oct 22 15:50:40 2003 for XetPan by doxygen 1.3.2