summaryrefslogtreecommitdiff
path: root/tests
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 /tests
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 'tests')
-rw-r--r--tests/testcombo.c29
1 files changed, 25 insertions, 4 deletions
diff --git a/tests/testcombo.c b/tests/testcombo.c
index 157963d583..b26f8ca50c 100644
--- a/tests/testcombo.c
+++ b/tests/testcombo.c
@@ -127,7 +127,7 @@ create_blaat ()
cellview = gtk_cell_view_new ();
- store = gtk_list_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
+ store = gtk_list_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_BOOLEAN);
pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_DIALOG_WARNING,
GTK_ICON_SIZE_BUTTON, NULL);
@@ -135,6 +135,7 @@ create_blaat ()
gtk_list_store_set (store, &iter,
0, pixbuf,
1, "gtk-stock-dialog-warning",
+ 2, FALSE,
-1);
pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_STOP,
@@ -143,6 +144,7 @@ create_blaat ()
gtk_list_store_set (store, &iter,
0, pixbuf,
1, "gtk-stock-stop",
+ 2, FALSE,
-1);
pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_NEW,
@@ -151,6 +153,7 @@ create_blaat ()
gtk_list_store_set (store, &iter,
0, pixbuf,
1, "gtk-stock-new",
+ 2, FALSE,
-1);
pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_CLEAR,
@@ -159,6 +162,23 @@ create_blaat ()
gtk_list_store_set (store, &iter,
0, pixbuf,
1, "gtk-stock-clear",
+ 2, FALSE,
+ -1);
+
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter,
+ 0, NULL,
+ 1, "separator",
+ 2, TRUE,
+ -1);
+
+ pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_OPEN,
+ GTK_ICON_SIZE_BUTTON, NULL);
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter,
+ 0, pixbuf,
+ 1, "gtk-stock-open",
+ 2, FALSE,
-1);
gtk_widget_destroy (cellview);
@@ -196,8 +216,7 @@ set_sensitive (GtkCellLayout *cell_layout,
path = gtk_tree_model_get_path (tree_model, iter);
indices = gtk_tree_path_get_indices (path);
-
- sensitive = indices[0] % 2;
+ sensitive = indices[0] != 1;
gtk_tree_path_free (path);
g_object_set (cell, "sensitive", sensitive, NULL);
@@ -295,7 +314,9 @@ main (int argc, char **argv)
renderer,
set_sensitive,
NULL, NULL);
- gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 1);
+ gtk_combo_box_set_row_separator_column (GTK_COMBO_BOX (combobox), 2);
+
+ gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0);
/* GtkComboBox (grid mode) */