summaryrefslogtreecommitdiff
path: root/gtk/gtktreeview.h
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2004-07-07 15:15:35 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2004-07-07 15:15:35 +0000
commit1aa00e521590a807868cdfe75e8fbf7fb6facc44 (patch)
tree5d848f45999ce4846fc2e56f82674dbc3c066807 /gtk/gtktreeview.h
parenta346f4a8ad8a037a014891b59db8efa47c30d37e (diff)
downloadgtk+-1aa00e521590a807868cdfe75e8fbf7fb6facc44.tar.gz
Support separators in combo boxes and more generally in tree views
2004-07-07 Matthias Clasen <mclasen@redhat.com> Support separators in combo boxes and more generally in tree views (#135873): * gtk/gtkcombobox.h: * gtk/gtkcombobox.c (gtk_combo_box_get_row_separator_column): * gtk/gtkcombobox.c (gtk_combo_box_set_row_separator_column): Add a ::row-separator-column property with getter and setter, which can indicate a boolean model column to determine which rows are separators. * gtk/gtkcombobox.c: Display separator rows as separator menu items in menu mode, and by using the new treeview separator functionality in list mode. * gtk/gtktreeview.h: * gtk/gtktreeview.c (gtk_tree_view_get_row_separator_func): * gtk/gtktreeview.c (gtk_tree_view_set_row_separator_func): Add a callback to determine whether a row is a separator. * gtk/gtktreeview.c (gtk_tree_view_bin_expose): * gtk/gtktreeview.c (gtk_tree_view_create_row_drag_icon): * gtk/gtktreeview.c (validate_row): Use the new callback to determine whether a row is a separator, and draw it as a separator then. Since separators should take up less vertical space than regular rows, this requires removing the redundant MAX(...,expander_size) calls which appear in many places. Instead, the MAX() is now only done in validate_row(), and only if the row is not a separator. To catch possible side effects of this intrusive change, I have left EXPANDER_MAX() calls in place of the MAX() calls which will emit a warning if something breaks. They should be removed before 2.6. * gtk/gtktreeselection.c (row_is_selectable): Don't let separator rows be selected. * tests/testcombo.c (create_blaat): Add a separator column.
Diffstat (limited to 'gtk/gtktreeview.h')
-rw-r--r--gtk/gtktreeview.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/gtk/gtktreeview.h b/gtk/gtktreeview.h
index 85baf95e06..d0f59174a9 100644
--- a/gtk/gtktreeview.h
+++ b/gtk/gtktreeview.h
@@ -124,6 +124,9 @@ typedef gboolean (*GtkTreeViewSearchEqualFunc) (GtkTreeModel *model,
const gchar *key,
GtkTreeIter *iter,
gpointer search_data);
+typedef gboolean (*GtkTreeViewRowSeparatorFunc) (GtkTreeModel *model,
+ GtkTreeIter *iter,
+ gpointer data);
/* Creators */
@@ -320,6 +323,12 @@ void gtk_tree_view_set_hover_selection (GtkTreeView *tree_view,
gboolean hover);
gboolean gtk_tree_view_get_hover_selection (GtkTreeView *tree_view);
+GtkTreeViewRowSeparatorFunc gtk_tree_view_get_row_separator_func (GtkTreeView *tree_view);
+void gtk_tree_view_set_row_separator_func (GtkTreeView *tree_view,
+ GtkTreeViewRowSeparatorFunc func,
+ gpointer data,
+ GtkDestroyNotify destroy);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */