diff options
author | Owen Taylor <otaylor@redhat.com> | 2001-05-18 18:30:59 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2001-05-18 18:30:59 +0000 |
commit | 50512ddcd2b2cb156d4a4e13a9f6ac21aae30ddf (patch) | |
tree | 1e34849888cd77ec1cb4c71c4ecacd48d4fcb1b4 /tests | |
parent | 02d5f41c9ea5116977c68fef42a984c180c04d84 (diff) | |
download | gtk+-50512ddcd2b2cb156d4a4e13a9f6ac21aae30ddf.tar.gz |
Remove reallocate-redraws property. This is something that only a widget
Fri May 18 14:25:20 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcontainer.c: Remove reallocate-redraws property.
This is something that only a widget writer would ever want
to change.
* gtk/gtksignal.c: Handle G_SIGNAL_TYPE_STATIC_SCOPE for
gtk_signal_emit_by_name().
* gtk/gtkviewport.c: Fix some warnings.
* gtk/gtkwidget.c gtk/gtksizegroup.c: Add "size group" facility
allowing the requisitions of multiple widgets to be grouped
together.
* tests/testgtk.c: Add GtkSizeGroup test
* demos/gtk-demo/sizegroup.c: Add GtkSizeGroup demo.
* demos/gtk-demo/main.c demos/gtk-demo/pixbufs.c: Fix some
warnings.
* configure.in: Switch to using AM_GLIB_GNU_GETTEXT.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/testgtk.c | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/tests/testgtk.c b/tests/testgtk.c index 656114e2d1..a650259182 100644 --- a/tests/testgtk.c +++ b/tests/testgtk.c @@ -3638,6 +3638,169 @@ create_entry (void) } /* + * GtkSizeGroup + */ + +#define SIZE_GROUP_INITIAL_SIZE 50 + +static void +size_group_hsize_changed (GtkSpinButton *spin_button, + GtkWidget *button) +{ + gtk_widget_set_usize (GTK_BIN (button)->child, + gtk_spin_button_get_value_as_int (spin_button), + -2); +} + +static void +size_group_vsize_changed (GtkSpinButton *spin_button, + GtkWidget *button) +{ + gtk_widget_set_usize (GTK_BIN (button)->child, + -2, + gtk_spin_button_get_value_as_int (spin_button)); +} + +static GtkWidget * +create_size_group_window (GtkSizeGroup *master_size_group) +{ + GtkWidget *window; + GtkWidget *table; + GtkWidget *main_button; + GtkWidget *button; + GtkWidget *spin_button; + GtkWidget *hbox; + GtkSizeGroup *hgroup1; + GtkSizeGroup *hgroup2; + GtkSizeGroup *vgroup1; + GtkSizeGroup *vgroup2; + + window = gtk_dialog_new_with_buttons ("GtkSizeGroup", + NULL, 0, + GTK_STOCK_BUTTON_CLOSE, + GTK_RESPONSE_NONE, + NULL); + + gtk_window_set_resizeable (GTK_WINDOW (window), FALSE); + + gtk_signal_connect (GTK_OBJECT (window), "response", + GTK_SIGNAL_FUNC (gtk_widget_destroy), + NULL); + + table = gtk_table_new (2, 2, FALSE); + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), table, TRUE, TRUE, 0); + + gtk_table_set_row_spacings (GTK_TABLE (table), 5); + gtk_table_set_col_spacings (GTK_TABLE (table), 5); + gtk_container_set_border_width (GTK_CONTAINER (table), 5); + gtk_widget_set_usize (table, 250, 250); + + hgroup1 = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + hgroup2 = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + vgroup1 = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL); + vgroup2 = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL); + + main_button = gtk_button_new_with_label ("X"); + + gtk_table_attach (GTK_TABLE (table), main_button, + 0, 1, 0, 1, + GTK_EXPAND, GTK_EXPAND, + 0, 0); + gtk_size_group_add_widget (master_size_group, main_button); + gtk_size_group_add_widget (hgroup1, main_button); + gtk_size_group_add_widget (vgroup1, main_button); + gtk_widget_set_usize (GTK_BIN (main_button)->child, SIZE_GROUP_INITIAL_SIZE, SIZE_GROUP_INITIAL_SIZE); + + button = gtk_button_new (); + gtk_table_attach (GTK_TABLE (table), button, + 1, 2, 0, 1, + GTK_EXPAND, GTK_EXPAND, + 0, 0); + gtk_size_group_add_widget (vgroup1, button); + gtk_size_group_add_widget (vgroup2, button); + + button = gtk_button_new (); + gtk_table_attach (GTK_TABLE (table), button, + 0, 1, 1, 2, + GTK_EXPAND, GTK_EXPAND, + 0, 0); + gtk_size_group_add_widget (hgroup1, button); + gtk_size_group_add_widget (hgroup2, button); + + button = gtk_button_new (); + gtk_table_attach (GTK_TABLE (table), button, + 1, 2, 1, 2, + GTK_EXPAND, GTK_EXPAND, + 0, 0); + gtk_size_group_add_widget (hgroup2, button); + gtk_size_group_add_widget (vgroup2, button); + + g_object_unref (G_OBJECT (hgroup1)); + g_object_unref (G_OBJECT (hgroup2)); + g_object_unref (G_OBJECT (vgroup1)); + g_object_unref (G_OBJECT (vgroup2)); + + hbox = gtk_hbox_new (FALSE, 5); + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), hbox, FALSE, FALSE, 0); + + spin_button = gtk_spin_button_new_with_range (1, 100, 1); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin_button), SIZE_GROUP_INITIAL_SIZE); + gtk_box_pack_start (GTK_BOX (hbox), spin_button, TRUE, TRUE, 0); + gtk_signal_connect (GTK_OBJECT (spin_button), "value_changed", + GTK_SIGNAL_FUNC (size_group_hsize_changed), main_button); + + spin_button = gtk_spin_button_new_with_range (1, 100, 1); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin_button), SIZE_GROUP_INITIAL_SIZE); + gtk_box_pack_start (GTK_BOX (hbox), spin_button, TRUE, TRUE, 0); + gtk_signal_connect (GTK_OBJECT (spin_button), "value_changed", + GTK_SIGNAL_FUNC (size_group_vsize_changed), main_button); + + return window; +} + +static void +create_size_groups (void) +{ + static GtkWidget *window1 = NULL; + static GtkWidget *window2 = NULL; + static GtkSizeGroup *master_size_group; + + if (!master_size_group) + master_size_group = gtk_size_group_new (GTK_SIZE_GROUP_BOTH); + + if (!window1) + { + window1 = create_size_group_window (master_size_group); + + gtk_signal_connect (GTK_OBJECT (window1), "destroy", + GTK_SIGNAL_FUNC (gtk_widget_destroyed), + &window1); + } + + if (!window2) + { + window2 = create_size_group_window (master_size_group); + + gtk_signal_connect (GTK_OBJECT (window2), "destroy", + GTK_SIGNAL_FUNC (gtk_widget_destroyed), + &window2); + } + + if (GTK_WIDGET_VISIBLE (window1) && GTK_WIDGET_VISIBLE (window2)) + { + gtk_widget_destroy (window1); + gtk_widget_destroy (window2); + } + else + { + if (!GTK_WIDGET_VISIBLE (window1)) + gtk_widget_show_all (window1); + if (!GTK_WIDGET_VISIBLE (window2)) + gtk_widget_show_all (window2); + } +} + +/* * GtkSpinButton */ @@ -10433,6 +10596,7 @@ create_main_window (void) { "saved position", create_saved_position }, { "scrolled windows", create_scrolled_windows }, { "shapes", create_shapes }, + { "size groups", create_size_groups }, { "spinbutton", create_spins }, { "statusbar", create_statusbar }, { "styles", create_styles }, |