diff options
author | Lars Hamann <lars@gtk.org> | 1999-02-11 23:47:48 +0000 |
---|---|---|
committer | Lars Hamann <lars@src.gnome.org> | 1999-02-11 23:47:48 +0000 |
commit | 1f85d83ef357fed2f5dbdcfd99c14dcfbddb0326 (patch) | |
tree | 2119177a5cad92c8d68a683bd974b65b6c4e076e | |
parent | ed219818b1795864ae2fec4fd10e7ff7c833c814 (diff) | |
download | gdk-pixbuf-1f85d83ef357fed2f5dbdcfd99c14dcfbddb0326.tar.gz |
don't autoselect focus_row in case of GTK_SELECTION_EXTENDED
Fri Feb 12 00:08:01 1999 Lars Hamann <lars@gtk.org>
* gtk/gtklist.c (gtk_list_remove_items_internal): don't autoselect
focus_row in case of GTK_SELECTION_EXTENDED
* gtk/testgtk.c : few changes in list example.
* gtk/gtklistitem.c (gtk_list_item_class_init):
* gtk/gtkctree.c (gtk_ctree_class_init):
* gtk/gtkclist.c (gtk_clist_class_init):
fixed indentation, removed unused key bindings
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | ChangeLog.pre-2-0 | 12 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 12 | ||||
-rw-r--r-- | ChangeLog.pre-2-2 | 12 | ||||
-rw-r--r-- | ChangeLog.pre-2-4 | 12 | ||||
-rw-r--r-- | ChangeLog.pre-2-6 | 12 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 12 | ||||
-rw-r--r-- | gtk/gtkclist.c | 294 | ||||
-rw-r--r-- | gtk/gtkctree.c | 86 | ||||
-rw-r--r-- | gtk/gtklist.c | 9 | ||||
-rw-r--r-- | gtk/gtklistitem.c | 187 | ||||
-rw-r--r-- | gtk/testgtk.c | 237 | ||||
-rw-r--r-- | tests/testgtk.c | 237 |
13 files changed, 535 insertions, 599 deletions
@@ -1,3 +1,15 @@ +Fri Feb 12 00:08:01 1999 Lars Hamann <lars@gtk.org> + + * gtk/gtklist.c (gtk_list_remove_items_internal): don't autoselect + focus_row in case of GTK_SELECTION_EXTENDED + + * gtk/testgtk.c : few changes in list example. + + * gtk/gtklistitem.c (gtk_list_item_class_init): + * gtk/gtkctree.c (gtk_ctree_class_init): + * gtk/gtkclist.c (gtk_clist_class_init): + fixed indentation, removed unused key bindings + Wed Feb 10 01:02:46 1999 Lars Hamann <lars@gtk.org> * gtk/gtkclist.c (real_remove_row): diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 5b9dc5fe3..41f69f14f 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,15 @@ +Fri Feb 12 00:08:01 1999 Lars Hamann <lars@gtk.org> + + * gtk/gtklist.c (gtk_list_remove_items_internal): don't autoselect + focus_row in case of GTK_SELECTION_EXTENDED + + * gtk/testgtk.c : few changes in list example. + + * gtk/gtklistitem.c (gtk_list_item_class_init): + * gtk/gtkctree.c (gtk_ctree_class_init): + * gtk/gtkclist.c (gtk_clist_class_init): + fixed indentation, removed unused key bindings + Wed Feb 10 01:02:46 1999 Lars Hamann <lars@gtk.org> * gtk/gtkclist.c (real_remove_row): diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 5b9dc5fe3..41f69f14f 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,15 @@ +Fri Feb 12 00:08:01 1999 Lars Hamann <lars@gtk.org> + + * gtk/gtklist.c (gtk_list_remove_items_internal): don't autoselect + focus_row in case of GTK_SELECTION_EXTENDED + + * gtk/testgtk.c : few changes in list example. + + * gtk/gtklistitem.c (gtk_list_item_class_init): + * gtk/gtkctree.c (gtk_ctree_class_init): + * gtk/gtkclist.c (gtk_clist_class_init): + fixed indentation, removed unused key bindings + Wed Feb 10 01:02:46 1999 Lars Hamann <lars@gtk.org> * gtk/gtkclist.c (real_remove_row): diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 5b9dc5fe3..41f69f14f 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,15 @@ +Fri Feb 12 00:08:01 1999 Lars Hamann <lars@gtk.org> + + * gtk/gtklist.c (gtk_list_remove_items_internal): don't autoselect + focus_row in case of GTK_SELECTION_EXTENDED + + * gtk/testgtk.c : few changes in list example. + + * gtk/gtklistitem.c (gtk_list_item_class_init): + * gtk/gtkctree.c (gtk_ctree_class_init): + * gtk/gtkclist.c (gtk_clist_class_init): + fixed indentation, removed unused key bindings + Wed Feb 10 01:02:46 1999 Lars Hamann <lars@gtk.org> * gtk/gtkclist.c (real_remove_row): diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 5b9dc5fe3..41f69f14f 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,15 @@ +Fri Feb 12 00:08:01 1999 Lars Hamann <lars@gtk.org> + + * gtk/gtklist.c (gtk_list_remove_items_internal): don't autoselect + focus_row in case of GTK_SELECTION_EXTENDED + + * gtk/testgtk.c : few changes in list example. + + * gtk/gtklistitem.c (gtk_list_item_class_init): + * gtk/gtkctree.c (gtk_ctree_class_init): + * gtk/gtkclist.c (gtk_clist_class_init): + fixed indentation, removed unused key bindings + Wed Feb 10 01:02:46 1999 Lars Hamann <lars@gtk.org> * gtk/gtkclist.c (real_remove_row): diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 5b9dc5fe3..41f69f14f 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,15 @@ +Fri Feb 12 00:08:01 1999 Lars Hamann <lars@gtk.org> + + * gtk/gtklist.c (gtk_list_remove_items_internal): don't autoselect + focus_row in case of GTK_SELECTION_EXTENDED + + * gtk/testgtk.c : few changes in list example. + + * gtk/gtklistitem.c (gtk_list_item_class_init): + * gtk/gtkctree.c (gtk_ctree_class_init): + * gtk/gtkclist.c (gtk_clist_class_init): + fixed indentation, removed unused key bindings + Wed Feb 10 01:02:46 1999 Lars Hamann <lars@gtk.org> * gtk/gtkclist.c (real_remove_row): diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 5b9dc5fe3..41f69f14f 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,15 @@ +Fri Feb 12 00:08:01 1999 Lars Hamann <lars@gtk.org> + + * gtk/gtklist.c (gtk_list_remove_items_internal): don't autoselect + focus_row in case of GTK_SELECTION_EXTENDED + + * gtk/testgtk.c : few changes in list example. + + * gtk/gtklistitem.c (gtk_list_item_class_init): + * gtk/gtkctree.c (gtk_ctree_class_init): + * gtk/gtkclist.c (gtk_clist_class_init): + fixed indentation, removed unused key bindings + Wed Feb 10 01:02:46 1999 Lars Hamann <lars@gtk.org> * gtk/gtkclist.c (real_remove_row): diff --git a/gtk/gtkclist.c b/gtk/gtkclist.c index b3e6a7aaf..401614ab8 100644 --- a/gtk/gtkclist.c +++ b/gtk/gtkclist.c @@ -473,6 +473,7 @@ gtk_clist_class_init (GtkCListClass *klass) GtkObjectClass *object_class; GtkWidgetClass *widget_class; GtkContainerClass *container_class; + GtkBindingSet *binding_set; object_class = (GtkObjectClass *) klass; widget_class = (GtkWidgetClass *) klass; @@ -700,203 +701,102 @@ gtk_clist_class_init (GtkCListClass *klass) klass->set_cell_contents = set_cell_contents; klass->cell_size_request = cell_size_request; - { - GtkBindingSet *binding_set; - - binding_set = gtk_binding_set_by_class (klass); - gtk_binding_entry_add_signal (binding_set, GDK_Up, 0, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Down, 0, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Page_Up, 0, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_PAGE_BACKWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Page_Down, 0, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_PAGE_FORWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Home, GDK_CONTROL_MASK, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_End, GDK_CONTROL_MASK, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 1.0); - - gtk_binding_entry_add_signal (binding_set, GDK_Up, GDK_SHIFT_MASK, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, - GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_Down, GDK_SHIFT_MASK, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, - GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_Page_Up, GDK_SHIFT_MASK, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_PAGE_BACKWARD, - GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_Page_Down, GDK_SHIFT_MASK, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_PAGE_FORWARD, - GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_Home, - GDK_SHIFT_MASK | GDK_CONTROL_MASK, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_End, - GDK_SHIFT_MASK | GDK_CONTROL_MASK, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 1.0, GTK_TYPE_BOOL, TRUE); - - gtk_binding_entry_add_signal (binding_set, GDK_Left, 0, - "scroll_horizontal", 2, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Right, 0, - "scroll_horizontal", 2, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Home, 0, - "scroll_horizontal", 2, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_End, 0, - "scroll_horizontal", 2, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 1.0); - - gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0, - "undo_selection", 0); - gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0, - "abort_column_resize", 0); - gtk_binding_entry_add_signal (binding_set, GDK_space, 0, - "toggle_focus_row", 0); - gtk_binding_entry_add_signal (binding_set, GDK_space, GDK_CONTROL_MASK, - "toggle_add_mode", 0); - gtk_binding_entry_add_signal (binding_set, '/', GDK_CONTROL_MASK, - "select_all", 0); - gtk_binding_entry_add_signal (binding_set, '\\', GDK_CONTROL_MASK, - "unselect_all", 0); - gtk_binding_entry_add_signal (binding_set, GDK_Shift_L, - GDK_RELEASE_MASK | GDK_SHIFT_MASK, - "end_selection", 0); - gtk_binding_entry_add_signal (binding_set, GDK_Shift_R, - GDK_RELEASE_MASK | GDK_SHIFT_MASK, - "end_selection", 0); - gtk_binding_entry_add_signal (binding_set, GDK_Shift_L, - GDK_RELEASE_MASK | GDK_SHIFT_MASK | - GDK_CONTROL_MASK, - "end_selection", 0); - gtk_binding_entry_add_signal (binding_set, GDK_Shift_R, - GDK_RELEASE_MASK | GDK_SHIFT_MASK | - GDK_CONTROL_MASK, - "end_selection", 0); - } - - /* - { - GtkBindingSet *binding_set; - - binding_set = gtk_binding_set_by_class (klass); - gtk_binding_entry_add_signal (binding_set, GDK_Up, 0, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Down, 0, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Page_Up, 0, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_PAGE_BACKWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Page_Down, 0, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_PAGE_FORWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Home, GDK_CONTROL_MASK, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_End, GDK_CONTROL_MASK, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 0); - - gtk_binding_entry_add_signal (binding_set, GDK_KP_Up, 0, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, - GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_KP_Down, 0, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, - GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_KP_Page_Up, 0, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_PAGE_BACKWARD, - GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_KP_Page_Down, 0, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_PAGE_FORWARD, - GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_KP_Home, 0, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_KP_End, 0, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 1.0, GTK_TYPE_BOOL, TRUE); - - gtk_binding_entry_add_signal (binding_set, GDK_Left, 0, - "scroll_horizontal", 2, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_KP_Left, 0, - "scroll_horizontal", 2, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Right, 0, - "scroll_horizontal", 2, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_KP_Right, 0, - "scroll_horizontal", 2, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Home, 0, - "scroll_horizontal", 2, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_End, 0, - "sroll_horizontal", 2, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 1.0); - - gtk_binding_entry_add_signal (binding_set, GDK_KP_Divide, 0, - "undo_selection", 0); - gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0, - "abort_column_resize", 0); - gtk_binding_entry_add_signal (binding_set, GDK_space, 0, - "toggle_focus_row", 0); - gtk_binding_entry_add_signal (binding_set, GDK_KP_Multiply, 0, - "toggle_add_mode", 0); - gtk_binding_entry_add_signal (binding_set, GDK_KP_Add, 0, - "select_all", 0); - gtk_binding_entry_add_signal (binding_set, GDK_KP_Subtract, 0, - "unselect_all", 0); - gtk_binding_entry_add_signal (binding_set, GDK_KP_Enter, 0, - "end_selection", 0); - } - */ + binding_set = gtk_binding_set_by_class (klass); + gtk_binding_entry_add_signal (binding_set, GDK_Up, 0, + "scroll_vertical", 2, + GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_Down, 0, + "scroll_vertical", 2, + GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_Page_Up, 0, + "scroll_vertical", 2, + GTK_TYPE_ENUM, GTK_SCROLL_PAGE_BACKWARD, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_Page_Down, 0, + "scroll_vertical", 2, + GTK_TYPE_ENUM, GTK_SCROLL_PAGE_FORWARD, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_Home, GDK_CONTROL_MASK, + "scroll_vertical", 2, + GTK_TYPE_ENUM, GTK_SCROLL_JUMP, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_End, GDK_CONTROL_MASK, + "scroll_vertical", 2, + GTK_TYPE_ENUM, GTK_SCROLL_JUMP, + GTK_TYPE_FLOAT, 1.0); + + gtk_binding_entry_add_signal (binding_set, GDK_Up, GDK_SHIFT_MASK, + "extend_selection", 3, + GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, + GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); + gtk_binding_entry_add_signal (binding_set, GDK_Down, GDK_SHIFT_MASK, + "extend_selection", 3, + GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, + GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); + gtk_binding_entry_add_signal (binding_set, GDK_Page_Up, GDK_SHIFT_MASK, + "extend_selection", 3, + GTK_TYPE_ENUM, GTK_SCROLL_PAGE_BACKWARD, + GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); + gtk_binding_entry_add_signal (binding_set, GDK_Page_Down, GDK_SHIFT_MASK, + "extend_selection", 3, + GTK_TYPE_ENUM, GTK_SCROLL_PAGE_FORWARD, + GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); + gtk_binding_entry_add_signal (binding_set, GDK_Home, + GDK_SHIFT_MASK | GDK_CONTROL_MASK, + "extend_selection", 3, + GTK_TYPE_ENUM, GTK_SCROLL_JUMP, + GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); + gtk_binding_entry_add_signal (binding_set, GDK_End, + GDK_SHIFT_MASK | GDK_CONTROL_MASK, + "extend_selection", 3, + GTK_TYPE_ENUM, GTK_SCROLL_JUMP, + GTK_TYPE_FLOAT, 1.0, GTK_TYPE_BOOL, TRUE); + + gtk_binding_entry_add_signal (binding_set, GDK_Left, 0, + "scroll_horizontal", 2, + GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_Right, 0, + "scroll_horizontal", 2, + GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_Home, 0, + "scroll_horizontal", 2, + GTK_TYPE_ENUM, GTK_SCROLL_JUMP, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_End, 0, + "scroll_horizontal", 2, + GTK_TYPE_ENUM, GTK_SCROLL_JUMP, + GTK_TYPE_FLOAT, 1.0); + + gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0, + "undo_selection", 0); + gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0, + "abort_column_resize", 0); + gtk_binding_entry_add_signal (binding_set, GDK_space, 0, + "toggle_focus_row", 0); + gtk_binding_entry_add_signal (binding_set, GDK_space, GDK_CONTROL_MASK, + "toggle_add_mode", 0); + gtk_binding_entry_add_signal (binding_set, '/', GDK_CONTROL_MASK, + "select_all", 0); + gtk_binding_entry_add_signal (binding_set, '\\', GDK_CONTROL_MASK, + "unselect_all", 0); + gtk_binding_entry_add_signal (binding_set, GDK_Shift_L, + GDK_RELEASE_MASK | GDK_SHIFT_MASK, + "end_selection", 0); + gtk_binding_entry_add_signal (binding_set, GDK_Shift_R, + GDK_RELEASE_MASK | GDK_SHIFT_MASK, + "end_selection", 0); + gtk_binding_entry_add_signal (binding_set, GDK_Shift_L, + GDK_RELEASE_MASK | GDK_SHIFT_MASK | + GDK_CONTROL_MASK, + "end_selection", 0); + gtk_binding_entry_add_signal (binding_set, GDK_Shift_R, + GDK_RELEASE_MASK | GDK_SHIFT_MASK | + GDK_CONTROL_MASK, + "end_selection", 0); } static void diff --git a/gtk/gtkctree.c b/gtk/gtkctree.c index 25cf71046..b77641b08 100644 --- a/gtk/gtkctree.c +++ b/gtk/gtkctree.c @@ -336,6 +336,7 @@ gtk_ctree_class_init (GtkCTreeClass *klass) GtkObjectClass *object_class; GtkWidgetClass *widget_class; GtkCListClass *clist_class; + GtkBindingSet *binding_set; object_class = (GtkObjectClass *) klass; widget_class = (GtkWidgetClass *) klass; @@ -456,51 +457,46 @@ gtk_ctree_class_init (GtkCTreeClass *klass) klass->tree_move = real_tree_move; klass->change_focus_row_expansion = change_focus_row_expansion; - { - GtkBindingSet *binding_set; - - binding_set = gtk_binding_set_by_class (klass); - gtk_binding_entry_add_signal (binding_set, - '+', GDK_SHIFT_MASK, - "change_focus_row_expansion", 1, - GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_EXPAND); - gtk_binding_entry_add_signal (binding_set, - GDK_KP_Add, 0, - "change_focus_row_expansion", 1, - GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_EXPAND); - gtk_binding_entry_add_signal (binding_set, - GDK_KP_Add, GDK_CONTROL_MASK, - "change_focus_row_expansion", 1, - GTK_TYPE_ENUM, - GTK_CTREE_EXPANSION_EXPAND_RECURSIVE); - gtk_binding_entry_add_signal (binding_set, - '-', 0, - "change_focus_row_expansion", 1, - GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_COLLAPSE); - gtk_binding_entry_add_signal (binding_set, - GDK_KP_Subtract, 0, - "change_focus_row_expansion", 1, - GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_COLLAPSE); - gtk_binding_entry_add_signal (binding_set, - GDK_KP_Subtract, GDK_CONTROL_MASK, - "change_focus_row_expansion", 1, - GTK_TYPE_ENUM, - GTK_CTREE_EXPANSION_COLLAPSE_RECURSIVE); - gtk_binding_entry_add_signal (binding_set, - '=', 0, - "change_focus_row_expansion", 1, - GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_TOGGLE); - gtk_binding_entry_add_signal (binding_set, - GDK_KP_Multiply, 0, - "change_focus_row_expansion", 1, - GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_TOGGLE); - gtk_binding_entry_add_signal (binding_set, - GDK_KP_Multiply, GDK_CONTROL_MASK, - "change_focus_row_expansion", 1, - GTK_TYPE_ENUM, - GTK_CTREE_EXPANSION_TOGGLE_RECURSIVE); - } - + binding_set = gtk_binding_set_by_class (klass); + gtk_binding_entry_add_signal (binding_set, + '+', GDK_SHIFT_MASK, + "change_focus_row_expansion", 1, + GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_EXPAND); + gtk_binding_entry_add_signal (binding_set, + GDK_KP_Add, 0, + "change_focus_row_expansion", 1, + GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_EXPAND); + gtk_binding_entry_add_signal (binding_set, + GDK_KP_Add, GDK_CONTROL_MASK, + "change_focus_row_expansion", 1, + GTK_TYPE_ENUM, + GTK_CTREE_EXPANSION_EXPAND_RECURSIVE); + gtk_binding_entry_add_signal (binding_set, + '-', 0, + "change_focus_row_expansion", 1, + GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_COLLAPSE); + gtk_binding_entry_add_signal (binding_set, + GDK_KP_Subtract, 0, + "change_focus_row_expansion", 1, + GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_COLLAPSE); + gtk_binding_entry_add_signal (binding_set, + GDK_KP_Subtract, GDK_CONTROL_MASK, + "change_focus_row_expansion", 1, + GTK_TYPE_ENUM, + GTK_CTREE_EXPANSION_COLLAPSE_RECURSIVE); + gtk_binding_entry_add_signal (binding_set, + '=', 0, + "change_focus_row_expansion", 1, + GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_TOGGLE); + gtk_binding_entry_add_signal (binding_set, + GDK_KP_Multiply, 0, + "change_focus_row_expansion", 1, + GTK_TYPE_ENUM, GTK_CTREE_EXPANSION_TOGGLE); + gtk_binding_entry_add_signal (binding_set, + GDK_KP_Multiply, GDK_CONTROL_MASK, + "change_focus_row_expansion", 1, + GTK_TYPE_ENUM, + GTK_CTREE_EXPANSION_TOGGLE_RECURSIVE); } static void diff --git a/gtk/gtklist.c b/gtk/gtklist.c index 9948c0582..ccfd16136 100644 --- a/gtk/gtklist.c +++ b/gtk/gtklist.c @@ -1096,7 +1096,6 @@ gtk_list_insert_items (GtkList *list, gtk_signal_connect (GTK_OBJECT (widget), "toggle", GTK_SIGNAL_FUNC (gtk_list_signal_item_toggle), list); - if (GTK_WIDGET_VISIBLE (widget->parent)) { if (GTK_WIDGET_REALIZED (widget->parent) && @@ -1109,6 +1108,7 @@ gtk_list_insert_items (GtkList *list, } } + nchildren = g_list_length (list->children); if ((position < 0) || (position > nchildren)) position = nchildren; @@ -1140,7 +1140,7 @@ gtk_list_insert_items (GtkList *list, if (tmp_list == list->children) list->children = items; } - + if (list->children && !list->selection && (list->selection_mode == GTK_SELECTION_BROWSE)) { @@ -1411,8 +1411,7 @@ gtk_list_remove_items_internal (GtkList *list, else if (container->focus_child) gtk_container_set_focus_child (container, new_focus_child); - if ((list->selection_mode == GTK_SELECTION_BROWSE || - list->selection_mode == GTK_SELECTION_EXTENDED) && !list->selection) + if (list->selection_mode == GTK_SELECTION_BROWSE && !list->selection) { list->last_focus_child = new_focus_child; gtk_list_select_child (list, new_focus_child); @@ -1577,7 +1576,7 @@ gtk_list_unselect_all (GtkList *list) if (!list->children) return; - + if (gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (list)) gtk_list_end_drag_selection (list); diff --git a/gtk/gtklistitem.c b/gtk/gtklistitem.c index 7fd7dfcfa..5a41d903f 100644 --- a/gtk/gtklistitem.c +++ b/gtk/gtklistitem.c @@ -100,6 +100,7 @@ gtk_list_item_class_init (GtkListItemClass *class) GtkObjectClass *object_class; GtkWidgetClass *widget_class; GtkItemClass *item_class; + GtkBindingSet *binding_set; object_class = (GtkObjectClass*) class; widget_class = (GtkWidgetClass*) class; @@ -207,103 +208,97 @@ gtk_list_item_class_init (GtkListItemClass *class) class->scroll_vertical = NULL; class->toggle_add_mode = NULL; - { - GtkBindingSet *binding_set; - - binding_set = gtk_binding_set_by_class (class); - gtk_binding_entry_add_signal (binding_set, GDK_Up, 0, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Down, 0, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Page_Up, 0, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_PAGE_BACKWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Page_Down, 0, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_PAGE_FORWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Home, GDK_CONTROL_MASK, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_End, GDK_CONTROL_MASK, - "scroll_vertical", 2, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 1.0); - - gtk_binding_entry_add_signal (binding_set, GDK_Up, GDK_SHIFT_MASK, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, - GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_Down, GDK_SHIFT_MASK, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, - GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_Page_Up, GDK_SHIFT_MASK, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_PAGE_BACKWARD, - GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_Page_Down, GDK_SHIFT_MASK, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_PAGE_FORWARD, - GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_Home, - GDK_SHIFT_MASK | GDK_CONTROL_MASK, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_End, - GDK_SHIFT_MASK | GDK_CONTROL_MASK, - "extend_selection", 3, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 1.0, GTK_TYPE_BOOL, TRUE); - - - gtk_binding_entry_add_signal (binding_set, GDK_Left, 0, - "scroll_horizontal", 2, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Right, 0, - "scroll_horizontal", 2, - GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_Home, 0, - "scroll_horizontal", 2, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 0.0); - gtk_binding_entry_add_signal (binding_set, GDK_End, 0, - "scroll_horizontal", 2, - GTK_TYPE_ENUM, GTK_SCROLL_JUMP, - GTK_TYPE_FLOAT, 1.0); - - - gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0, - "undo_selection", 0); - gtk_binding_entry_add_signal (binding_set, GDK_space, 0, - "toggle_focus_row", 0); - gtk_binding_entry_add_signal (binding_set, GDK_space, GDK_CONTROL_MASK, - "toggle_add_mode", 0); - gtk_binding_entry_add_signal (binding_set, '/', GDK_CONTROL_MASK, - "select_all", 0); - gtk_binding_entry_add_signal (binding_set, '\\', GDK_CONTROL_MASK, - "unselect_all", 0); - gtk_binding_entry_add_signal (binding_set, GDK_Shift_L, - GDK_RELEASE_MASK | GDK_SHIFT_MASK, - "end_selection", 0); - gtk_binding_entry_add_signal (binding_set, GDK_Shift_R, - GDK_RELEASE_MASK | GDK_SHIFT_MASK, - "end_selection", 0); - gtk_binding_entry_add_signal (binding_set, GDK_Shift_R, - GDK_RELEASE_MASK | GDK_SHIFT_MASK | - GDK_CONTROL_MASK, - "end_selection", 0); - } + binding_set = gtk_binding_set_by_class (class); + gtk_binding_entry_add_signal (binding_set, GDK_Up, 0, + "scroll_vertical", 2, + GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_Down, 0, + "scroll_vertical", 2, + GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_Page_Up, 0, + "scroll_vertical", 2, + GTK_TYPE_ENUM, GTK_SCROLL_PAGE_BACKWARD, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_Page_Down, 0, + "scroll_vertical", 2, + GTK_TYPE_ENUM, GTK_SCROLL_PAGE_FORWARD, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_Home, GDK_CONTROL_MASK, + "scroll_vertical", 2, + GTK_TYPE_ENUM, GTK_SCROLL_JUMP, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_End, GDK_CONTROL_MASK, + "scroll_vertical", 2, + GTK_TYPE_ENUM, GTK_SCROLL_JUMP, + GTK_TYPE_FLOAT, 1.0); + + gtk_binding_entry_add_signal (binding_set, GDK_Up, GDK_SHIFT_MASK, + "extend_selection", 3, + GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, + GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); + gtk_binding_entry_add_signal (binding_set, GDK_Down, GDK_SHIFT_MASK, + "extend_selection", 3, + GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, + GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); + gtk_binding_entry_add_signal (binding_set, GDK_Page_Up, GDK_SHIFT_MASK, + "extend_selection", 3, + GTK_TYPE_ENUM, GTK_SCROLL_PAGE_BACKWARD, + GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); + gtk_binding_entry_add_signal (binding_set, GDK_Page_Down, GDK_SHIFT_MASK, + "extend_selection", 3, + GTK_TYPE_ENUM, GTK_SCROLL_PAGE_FORWARD, + GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); + gtk_binding_entry_add_signal (binding_set, GDK_Home, + GDK_SHIFT_MASK | GDK_CONTROL_MASK, + "extend_selection", 3, + GTK_TYPE_ENUM, GTK_SCROLL_JUMP, + GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE); + gtk_binding_entry_add_signal (binding_set, GDK_End, + GDK_SHIFT_MASK | GDK_CONTROL_MASK, + "extend_selection", 3, + GTK_TYPE_ENUM, GTK_SCROLL_JUMP, + GTK_TYPE_FLOAT, 1.0, GTK_TYPE_BOOL, TRUE); + + gtk_binding_entry_add_signal (binding_set, GDK_Left, 0, + "scroll_horizontal", 2, + GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_Right, 0, + "scroll_horizontal", 2, + GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_Home, 0, + "scroll_horizontal", 2, + GTK_TYPE_ENUM, GTK_SCROLL_JUMP, + GTK_TYPE_FLOAT, 0.0); + gtk_binding_entry_add_signal (binding_set, GDK_End, 0, + "scroll_horizontal", 2, + GTK_TYPE_ENUM, GTK_SCROLL_JUMP, + GTK_TYPE_FLOAT, 1.0); + + gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0, + "undo_selection", 0); + gtk_binding_entry_add_signal (binding_set, GDK_space, 0, + "toggle_focus_row", 0); + gtk_binding_entry_add_signal (binding_set, GDK_space, GDK_CONTROL_MASK, + "toggle_add_mode", 0); + gtk_binding_entry_add_signal (binding_set, '/', GDK_CONTROL_MASK, + "select_all", 0); + gtk_binding_entry_add_signal (binding_set, '\\', GDK_CONTROL_MASK, + "unselect_all", 0); + gtk_binding_entry_add_signal (binding_set, GDK_Shift_L, + GDK_RELEASE_MASK | GDK_SHIFT_MASK, + "end_selection", 0); + gtk_binding_entry_add_signal (binding_set, GDK_Shift_R, + GDK_RELEASE_MASK | GDK_SHIFT_MASK, + "end_selection", 0); + gtk_binding_entry_add_signal (binding_set, GDK_Shift_R, + GDK_RELEASE_MASK | GDK_SHIFT_MASK | + GDK_CONTROL_MASK, + "end_selection", 0); } static void diff --git a/gtk/testgtk.c b/gtk/testgtk.c index fa1997e9f..980ac75c7 100644 --- a/gtk/testgtk.c +++ b/gtk/testgtk.c @@ -3281,25 +3281,45 @@ list_add (GtkWidget *widget, static void list_remove (GtkWidget *widget, - GtkWidget *list) + GtkList *list) { - GList *tmp_list; - GList *clear_list; + GList *clear_list = NULL; + GList *sel_row = NULL; + GList *work = NULL; - tmp_list = GTK_LIST (list)->selection; - clear_list = NULL; - - while (tmp_list) + if (list->selection_mode == GTK_SELECTION_EXTENDED) { - clear_list = g_list_prepend (clear_list, tmp_list->data); - tmp_list = tmp_list->next; + GtkWidget *item; + + item = GTK_CONTAINER (list)->focus_child; + if (!item && list->selection) + item = list->selection->data; + + if (item) + { + work = g_list_find (list->children, item); + for (sel_row = work; sel_row; sel_row = sel_row->next) + if (GTK_WIDGET (sel_row->data)->state != GTK_STATE_SELECTED) + break; + + if (!sel_row) + { + for (sel_row = work; sel_row; sel_row = sel_row->prev) + if (GTK_WIDGET (sel_row->data)->state != GTK_STATE_SELECTED) + break; + } + } } - clear_list = g_list_reverse (clear_list); + for (work = list->selection; work; work = work->next) + clear_list = g_list_prepend (clear_list, work->data); + clear_list = g_list_reverse (clear_list); gtk_list_remove_items (GTK_LIST (list), clear_list); - g_list_free (clear_list); + + if (list->selection_mode == GTK_SELECTION_EXTENDED && sel_row) + gtk_list_select_child (list, GTK_WIDGET(sel_row->data)); } static void @@ -3309,13 +3329,6 @@ list_clear (GtkWidget *widget, gtk_list_clear_items (GTK_LIST (list), 0, -1); } -static void -list_undo_selection (GtkWidget *widget, - GtkWidget *list) -{ - gtk_list_undo_selection (GTK_LIST (list)); -} - #define RADIOMENUTOGGLED(_rmi_, __i) { \ GSList * __g; \ __i = 0; \ @@ -3346,21 +3359,27 @@ static void create_list (void) { static GtkWidget *window = NULL; - GtkWidget *box1; - GtkWidget *box2; - GtkWidget *hbox; - GtkWidget *label; - GtkWidget *scrolled_win; - GtkWidget *list; - GtkWidget *button; - GtkWidget *separator; - GtkWidget *menu; - GtkWidget *menu_item; - GSList *group; - FILE *infile; + + static OptionMenuItem items[] = + { + { "Single", list_toggle_sel_mode }, + { "Browse", list_toggle_sel_mode }, + { "Multiple", list_toggle_sel_mode }, + { "Extended", list_toggle_sel_mode } + }; if (!window) { + GtkWidget *cbox; + GtkWidget *vbox; + GtkWidget *hbox; + GtkWidget *label; + GtkWidget *scrolled_win; + GtkWidget *list; + GtkWidget *button; + GtkWidget *separator; + FILE *infile; + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_signal_connect (GTK_OBJECT (window), "destroy", @@ -3370,23 +3389,21 @@ create_list (void) gtk_window_set_title (GTK_WINDOW (window), "list"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); - box1 = gtk_vbox_new (FALSE, 0); - gtk_container_add (GTK_CONTAINER (window), box1); - - box2 = gtk_vbox_new (FALSE, 10); - gtk_container_set_border_width (GTK_CONTAINER (box2), 10); - gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); + vbox = gtk_vbox_new (FALSE, 0); + gtk_container_add (GTK_CONTAINER (window), vbox); scrolled_win = gtk_scrolled_window_new (NULL, NULL); + gtk_container_set_border_width (GTK_CONTAINER (scrolled_win), 5); + gtk_widget_set_usize (scrolled_win, -1, 300); + gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_box_pack_start (GTK_BOX (box2), scrolled_win, TRUE, TRUE, 0); - gtk_widget_set_usize (scrolled_win, -1, 300); list = gtk_list_new (); gtk_list_set_selection_mode (GTK_LIST (list), GTK_SELECTION_EXTENDED); - gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_win), list); + gtk_scrolled_window_add_with_viewport + (GTK_SCROLLED_WINDOW (scrolled_win), list); gtk_container_set_focus_vadjustment (GTK_CONTAINER (list), gtk_scrolled_window_get_vadjustment @@ -3413,93 +3430,54 @@ create_list (void) fclose (infile); } - hbox = gtk_hbox_new (TRUE, 10); - gtk_box_pack_start (GTK_BOX (box2), hbox, FALSE, TRUE, 0); - button = gtk_button_new_with_label ("Undo Selection"); - gtk_signal_connect (GTK_OBJECT (button), "clicked", - GTK_SIGNAL_FUNC(list_undo_selection), - list); - gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); + hbox = gtk_hbox_new (TRUE, 5); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0); - button = gtk_button_new_with_label ("Remove Selection"); + button = gtk_button_new_with_label ("Insert Row"); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", - GTK_SIGNAL_FUNC (list_remove), + GTK_SIGNAL_FUNC (list_add), list); - gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); button = gtk_button_new_with_label ("Clear List"); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (list_clear), list); - gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); - - hbox = gtk_hbox_new (FALSE, 10); - gtk_box_pack_start (GTK_BOX (box2), hbox, FALSE, TRUE, 0); - button = gtk_button_new_with_label ("Insert Row"); + button = gtk_button_new_with_label ("Remove Selection"); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", - GTK_SIGNAL_FUNC (list_add), + GTK_SIGNAL_FUNC (list_remove), list); - gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); + + cbox = gtk_hbox_new (FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox), cbox, FALSE, TRUE, 0); + + hbox = gtk_hbox_new (FALSE, 5); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); + gtk_box_pack_start (GTK_BOX (cbox), hbox, TRUE, FALSE, 0); label = gtk_label_new ("Selection Mode :"); - gtk_signal_connect (GTK_OBJECT (button), "clicked", - GTK_SIGNAL_FUNC(list_remove), - list); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); - list_omenu = gtk_option_menu_new (); - menu = gtk_menu_new (); - group = NULL; - - menu_item = gtk_radio_menu_item_new_with_label (group, "Single"); - gtk_signal_connect (GTK_OBJECT (menu_item), "activate", - GTK_SIGNAL_FUNC (list_toggle_sel_mode), list); - group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item)); - gtk_menu_append (GTK_MENU (menu), menu_item); - gtk_widget_show (menu_item); - - menu_item = gtk_radio_menu_item_new_with_label (group, "Browse"); - gtk_signal_connect (GTK_OBJECT (menu_item), "activate", - GTK_SIGNAL_FUNC (list_toggle_sel_mode), list); - group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item)); - gtk_menu_append (GTK_MENU (menu), menu_item); - gtk_widget_show (menu_item); - - menu_item = gtk_radio_menu_item_new_with_label (group, "Multiple"); - gtk_signal_connect (GTK_OBJECT (menu_item), "activate", - GTK_SIGNAL_FUNC (list_toggle_sel_mode), list); - group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item)); - gtk_menu_append (GTK_MENU (menu), menu_item); - gtk_widget_show (menu_item); - - menu_item = gtk_radio_menu_item_new_with_label (group, "Extended"); - gtk_signal_connect (GTK_OBJECT (menu_item), "activate", - GTK_SIGNAL_FUNC (list_toggle_sel_mode), list); - group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item)); - gtk_menu_append (GTK_MENU (menu), menu_item); - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), TRUE); - gtk_widget_show (menu_item); - - gtk_option_menu_set_menu (GTK_OPTION_MENU (list_omenu), menu); + list_omenu = build_option_menu (items, 4, 3, list); gtk_box_pack_start (GTK_BOX (hbox), list_omenu, FALSE, TRUE, 0); - - gtk_option_menu_set_history (GTK_OPTION_MENU (list_omenu), 3); separator = gtk_hseparator_new (); - gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); - + gtk_box_pack_start (GTK_BOX (vbox), separator, FALSE, TRUE, 0); - box2 = gtk_vbox_new (FALSE, 10); - gtk_container_set_border_width (GTK_CONTAINER (box2), 10); - gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); + cbox = gtk_hbox_new (FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox), cbox, FALSE, TRUE, 0); button = gtk_button_new_with_label ("close"); + gtk_container_set_border_width (GTK_CONTAINER (button), 10); + gtk_box_pack_start (GTK_BOX (cbox), button, TRUE, TRUE, 0); gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT (window)); - gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_widget_grab_default (button); @@ -3884,8 +3862,8 @@ create_clist (void) char text[TESTGTK_CLIST_COLUMNS][50]; char *texts[TESTGTK_CLIST_COLUMNS]; - GtkWidget *box1; - GtkWidget *box2; + GtkWidget *vbox; + GtkWidget *hbox; GtkWidget *clist; GtkWidget *button; GtkWidget *separator; @@ -3910,8 +3888,8 @@ create_clist (void) gtk_window_set_title (GTK_WINDOW (window), "clist"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); - box1 = gtk_vbox_new (FALSE, 0); - gtk_container_add (GTK_CONTAINER (window), box1); + vbox = gtk_vbox_new (FALSE, 0); + gtk_container_add (GTK_CONTAINER (window), vbox); scrolled_win = gtk_scrolled_window_new (NULL, NULL); gtk_container_set_border_width (GTK_CONTAINER (scrolled_win), 5); @@ -3927,79 +3905,79 @@ create_clist (void) (GtkSignalFunc) clist_click_column, NULL); /* control buttons */ - box2 = gtk_hbox_new (FALSE, 5); - gtk_container_set_border_width (GTK_CONTAINER (box2), 5); - gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0); + hbox = gtk_hbox_new (FALSE, 5); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Insert Row"); - gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", (GtkSignalFunc) insert_row_clist, (gpointer) clist); button = gtk_button_new_with_label ("Add 1,000 Rows With Pixmaps"); - gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", (GtkSignalFunc) add1000_clist, (gpointer) clist); button = gtk_button_new_with_label ("Add 10,000 Rows"); - gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", (GtkSignalFunc) add10000_clist, (gpointer) clist); /* second layer of buttons */ - box2 = gtk_hbox_new (FALSE, 5); - gtk_container_set_border_width (GTK_CONTAINER (box2), 5); - gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0); + hbox = gtk_hbox_new (FALSE, 5); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Clear List"); - gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", (GtkSignalFunc) clear_clist, (gpointer) clist); button = gtk_button_new_with_label ("Remove Selection"); - gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", (GtkSignalFunc) clist_remove_selection, (gpointer) clist); undo_button = gtk_button_new_with_label ("Undo Selection"); - gtk_box_pack_start (GTK_BOX (box2), undo_button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), undo_button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (undo_button), "clicked", (GtkSignalFunc) undo_selection, (gpointer) clist); button = gtk_button_new_with_label ("Warning Test"); - gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", (GtkSignalFunc) clist_warning_test,(gpointer) clist); /* third layer of buttons */ - box2 = gtk_hbox_new (FALSE, 5); - gtk_container_set_border_width (GTK_CONTAINER (box2), 5); - gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0); + hbox = gtk_hbox_new (FALSE, 5); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); check = gtk_check_button_new_with_label ("Show Title Buttons"); - gtk_box_pack_start (GTK_BOX (box2), check, FALSE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), check, FALSE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (check), "clicked", GTK_SIGNAL_FUNC (toggle_title_buttons), clist); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), TRUE); check = gtk_check_button_new_with_label ("Reorderable"); - gtk_box_pack_start (GTK_BOX (box2), check, FALSE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), check, FALSE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (check), "clicked", GTK_SIGNAL_FUNC (toggle_reorderable), clist); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), TRUE); label = gtk_label_new ("Selection Mode :"); - gtk_box_pack_start (GTK_BOX (box2), label, FALSE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); clist_omenu = build_option_menu (items, 4, 3, clist); - gtk_box_pack_start (GTK_BOX (box2), clist_omenu, FALSE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), clist_omenu, FALSE, TRUE, 0); /* * the rest of the clist configuration */ - gtk_box_pack_start (GTK_BOX (box1), scrolled_win, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0); gtk_clist_set_row_height (GTK_CLIST (clist), 18); gtk_widget_set_usize (clist, -1, 300); @@ -4057,11 +4035,14 @@ create_clist (void) } separator = gtk_hseparator_new (); - gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (vbox), separator, FALSE, TRUE, 0); + + hbox = gtk_hbox_new (FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0); button = gtk_button_new_with_label ("close"); gtk_container_set_border_width (GTK_CONTAINER (button), 10); - gtk_box_pack_start (GTK_BOX (box1), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT (window)); diff --git a/tests/testgtk.c b/tests/testgtk.c index fa1997e9f..980ac75c7 100644 --- a/tests/testgtk.c +++ b/tests/testgtk.c @@ -3281,25 +3281,45 @@ list_add (GtkWidget *widget, static void list_remove (GtkWidget *widget, - GtkWidget *list) + GtkList *list) { - GList *tmp_list; - GList *clear_list; + GList *clear_list = NULL; + GList *sel_row = NULL; + GList *work = NULL; - tmp_list = GTK_LIST (list)->selection; - clear_list = NULL; - - while (tmp_list) + if (list->selection_mode == GTK_SELECTION_EXTENDED) { - clear_list = g_list_prepend (clear_list, tmp_list->data); - tmp_list = tmp_list->next; + GtkWidget *item; + + item = GTK_CONTAINER (list)->focus_child; + if (!item && list->selection) + item = list->selection->data; + + if (item) + { + work = g_list_find (list->children, item); + for (sel_row = work; sel_row; sel_row = sel_row->next) + if (GTK_WIDGET (sel_row->data)->state != GTK_STATE_SELECTED) + break; + + if (!sel_row) + { + for (sel_row = work; sel_row; sel_row = sel_row->prev) + if (GTK_WIDGET (sel_row->data)->state != GTK_STATE_SELECTED) + break; + } + } } - clear_list = g_list_reverse (clear_list); + for (work = list->selection; work; work = work->next) + clear_list = g_list_prepend (clear_list, work->data); + clear_list = g_list_reverse (clear_list); gtk_list_remove_items (GTK_LIST (list), clear_list); - g_list_free (clear_list); + + if (list->selection_mode == GTK_SELECTION_EXTENDED && sel_row) + gtk_list_select_child (list, GTK_WIDGET(sel_row->data)); } static void @@ -3309,13 +3329,6 @@ list_clear (GtkWidget *widget, gtk_list_clear_items (GTK_LIST (list), 0, -1); } -static void -list_undo_selection (GtkWidget *widget, - GtkWidget *list) -{ - gtk_list_undo_selection (GTK_LIST (list)); -} - #define RADIOMENUTOGGLED(_rmi_, __i) { \ GSList * __g; \ __i = 0; \ @@ -3346,21 +3359,27 @@ static void create_list (void) { static GtkWidget *window = NULL; - GtkWidget *box1; - GtkWidget *box2; - GtkWidget *hbox; - GtkWidget *label; - GtkWidget *scrolled_win; - GtkWidget *list; - GtkWidget *button; - GtkWidget *separator; - GtkWidget *menu; - GtkWidget *menu_item; - GSList *group; - FILE *infile; + + static OptionMenuItem items[] = + { + { "Single", list_toggle_sel_mode }, + { "Browse", list_toggle_sel_mode }, + { "Multiple", list_toggle_sel_mode }, + { "Extended", list_toggle_sel_mode } + }; if (!window) { + GtkWidget *cbox; + GtkWidget *vbox; + GtkWidget *hbox; + GtkWidget *label; + GtkWidget *scrolled_win; + GtkWidget *list; + GtkWidget *button; + GtkWidget *separator; + FILE *infile; + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_signal_connect (GTK_OBJECT (window), "destroy", @@ -3370,23 +3389,21 @@ create_list (void) gtk_window_set_title (GTK_WINDOW (window), "list"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); - box1 = gtk_vbox_new (FALSE, 0); - gtk_container_add (GTK_CONTAINER (window), box1); - - box2 = gtk_vbox_new (FALSE, 10); - gtk_container_set_border_width (GTK_CONTAINER (box2), 10); - gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); + vbox = gtk_vbox_new (FALSE, 0); + gtk_container_add (GTK_CONTAINER (window), vbox); scrolled_win = gtk_scrolled_window_new (NULL, NULL); + gtk_container_set_border_width (GTK_CONTAINER (scrolled_win), 5); + gtk_widget_set_usize (scrolled_win, -1, 300); + gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_box_pack_start (GTK_BOX (box2), scrolled_win, TRUE, TRUE, 0); - gtk_widget_set_usize (scrolled_win, -1, 300); list = gtk_list_new (); gtk_list_set_selection_mode (GTK_LIST (list), GTK_SELECTION_EXTENDED); - gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_win), list); + gtk_scrolled_window_add_with_viewport + (GTK_SCROLLED_WINDOW (scrolled_win), list); gtk_container_set_focus_vadjustment (GTK_CONTAINER (list), gtk_scrolled_window_get_vadjustment @@ -3413,93 +3430,54 @@ create_list (void) fclose (infile); } - hbox = gtk_hbox_new (TRUE, 10); - gtk_box_pack_start (GTK_BOX (box2), hbox, FALSE, TRUE, 0); - button = gtk_button_new_with_label ("Undo Selection"); - gtk_signal_connect (GTK_OBJECT (button), "clicked", - GTK_SIGNAL_FUNC(list_undo_selection), - list); - gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); + hbox = gtk_hbox_new (TRUE, 5); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0); - button = gtk_button_new_with_label ("Remove Selection"); + button = gtk_button_new_with_label ("Insert Row"); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", - GTK_SIGNAL_FUNC (list_remove), + GTK_SIGNAL_FUNC (list_add), list); - gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); button = gtk_button_new_with_label ("Clear List"); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (list_clear), list); - gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); - - hbox = gtk_hbox_new (FALSE, 10); - gtk_box_pack_start (GTK_BOX (box2), hbox, FALSE, TRUE, 0); - button = gtk_button_new_with_label ("Insert Row"); + button = gtk_button_new_with_label ("Remove Selection"); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", - GTK_SIGNAL_FUNC (list_add), + GTK_SIGNAL_FUNC (list_remove), list); - gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); + + cbox = gtk_hbox_new (FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox), cbox, FALSE, TRUE, 0); + + hbox = gtk_hbox_new (FALSE, 5); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); + gtk_box_pack_start (GTK_BOX (cbox), hbox, TRUE, FALSE, 0); label = gtk_label_new ("Selection Mode :"); - gtk_signal_connect (GTK_OBJECT (button), "clicked", - GTK_SIGNAL_FUNC(list_remove), - list); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); - list_omenu = gtk_option_menu_new (); - menu = gtk_menu_new (); - group = NULL; - - menu_item = gtk_radio_menu_item_new_with_label (group, "Single"); - gtk_signal_connect (GTK_OBJECT (menu_item), "activate", - GTK_SIGNAL_FUNC (list_toggle_sel_mode), list); - group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item)); - gtk_menu_append (GTK_MENU (menu), menu_item); - gtk_widget_show (menu_item); - - menu_item = gtk_radio_menu_item_new_with_label (group, "Browse"); - gtk_signal_connect (GTK_OBJECT (menu_item), "activate", - GTK_SIGNAL_FUNC (list_toggle_sel_mode), list); - group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item)); - gtk_menu_append (GTK_MENU (menu), menu_item); - gtk_widget_show (menu_item); - - menu_item = gtk_radio_menu_item_new_with_label (group, "Multiple"); - gtk_signal_connect (GTK_OBJECT (menu_item), "activate", - GTK_SIGNAL_FUNC (list_toggle_sel_mode), list); - group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item)); - gtk_menu_append (GTK_MENU (menu), menu_item); - gtk_widget_show (menu_item); - - menu_item = gtk_radio_menu_item_new_with_label (group, "Extended"); - gtk_signal_connect (GTK_OBJECT (menu_item), "activate", - GTK_SIGNAL_FUNC (list_toggle_sel_mode), list); - group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item)); - gtk_menu_append (GTK_MENU (menu), menu_item); - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), TRUE); - gtk_widget_show (menu_item); - - gtk_option_menu_set_menu (GTK_OPTION_MENU (list_omenu), menu); + list_omenu = build_option_menu (items, 4, 3, list); gtk_box_pack_start (GTK_BOX (hbox), list_omenu, FALSE, TRUE, 0); - - gtk_option_menu_set_history (GTK_OPTION_MENU (list_omenu), 3); separator = gtk_hseparator_new (); - gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); - + gtk_box_pack_start (GTK_BOX (vbox), separator, FALSE, TRUE, 0); - box2 = gtk_vbox_new (FALSE, 10); - gtk_container_set_border_width (GTK_CONTAINER (box2), 10); - gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); + cbox = gtk_hbox_new (FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox), cbox, FALSE, TRUE, 0); button = gtk_button_new_with_label ("close"); + gtk_container_set_border_width (GTK_CONTAINER (button), 10); + gtk_box_pack_start (GTK_BOX (cbox), button, TRUE, TRUE, 0); gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT (window)); - gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_widget_grab_default (button); @@ -3884,8 +3862,8 @@ create_clist (void) char text[TESTGTK_CLIST_COLUMNS][50]; char *texts[TESTGTK_CLIST_COLUMNS]; - GtkWidget *box1; - GtkWidget *box2; + GtkWidget *vbox; + GtkWidget *hbox; GtkWidget *clist; GtkWidget *button; GtkWidget *separator; @@ -3910,8 +3888,8 @@ create_clist (void) gtk_window_set_title (GTK_WINDOW (window), "clist"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); - box1 = gtk_vbox_new (FALSE, 0); - gtk_container_add (GTK_CONTAINER (window), box1); + vbox = gtk_vbox_new (FALSE, 0); + gtk_container_add (GTK_CONTAINER (window), vbox); scrolled_win = gtk_scrolled_window_new (NULL, NULL); gtk_container_set_border_width (GTK_CONTAINER (scrolled_win), 5); @@ -3927,79 +3905,79 @@ create_clist (void) (GtkSignalFunc) clist_click_column, NULL); /* control buttons */ - box2 = gtk_hbox_new (FALSE, 5); - gtk_container_set_border_width (GTK_CONTAINER (box2), 5); - gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0); + hbox = gtk_hbox_new (FALSE, 5); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Insert Row"); - gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", (GtkSignalFunc) insert_row_clist, (gpointer) clist); button = gtk_button_new_with_label ("Add 1,000 Rows With Pixmaps"); - gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", (GtkSignalFunc) add1000_clist, (gpointer) clist); button = gtk_button_new_with_label ("Add 10,000 Rows"); - gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", (GtkSignalFunc) add10000_clist, (gpointer) clist); /* second layer of buttons */ - box2 = gtk_hbox_new (FALSE, 5); - gtk_container_set_border_width (GTK_CONTAINER (box2), 5); - gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0); + hbox = gtk_hbox_new (FALSE, 5); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Clear List"); - gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", (GtkSignalFunc) clear_clist, (gpointer) clist); button = gtk_button_new_with_label ("Remove Selection"); - gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", (GtkSignalFunc) clist_remove_selection, (gpointer) clist); undo_button = gtk_button_new_with_label ("Undo Selection"); - gtk_box_pack_start (GTK_BOX (box2), undo_button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), undo_button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (undo_button), "clicked", (GtkSignalFunc) undo_selection, (gpointer) clist); button = gtk_button_new_with_label ("Warning Test"); - gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", (GtkSignalFunc) clist_warning_test,(gpointer) clist); /* third layer of buttons */ - box2 = gtk_hbox_new (FALSE, 5); - gtk_container_set_border_width (GTK_CONTAINER (box2), 5); - gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0); + hbox = gtk_hbox_new (FALSE, 5); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); check = gtk_check_button_new_with_label ("Show Title Buttons"); - gtk_box_pack_start (GTK_BOX (box2), check, FALSE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), check, FALSE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (check), "clicked", GTK_SIGNAL_FUNC (toggle_title_buttons), clist); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), TRUE); check = gtk_check_button_new_with_label ("Reorderable"); - gtk_box_pack_start (GTK_BOX (box2), check, FALSE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), check, FALSE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (check), "clicked", GTK_SIGNAL_FUNC (toggle_reorderable), clist); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), TRUE); label = gtk_label_new ("Selection Mode :"); - gtk_box_pack_start (GTK_BOX (box2), label, FALSE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); clist_omenu = build_option_menu (items, 4, 3, clist); - gtk_box_pack_start (GTK_BOX (box2), clist_omenu, FALSE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), clist_omenu, FALSE, TRUE, 0); /* * the rest of the clist configuration */ - gtk_box_pack_start (GTK_BOX (box1), scrolled_win, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0); gtk_clist_set_row_height (GTK_CLIST (clist), 18); gtk_widget_set_usize (clist, -1, 300); @@ -4057,11 +4035,14 @@ create_clist (void) } separator = gtk_hseparator_new (); - gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (vbox), separator, FALSE, TRUE, 0); + + hbox = gtk_hbox_new (FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0); button = gtk_button_new_with_label ("close"); gtk_container_set_border_width (GTK_CONTAINER (button), 10); - gtk_box_pack_start (GTK_BOX (box1), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT (window)); |