[maemo-commits] [maemo-commits] r9746 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk tests
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Feb 8 15:00:47 EET 2007
- Previous message: [maemo-commits] r9745 - in projects/haf/branches/hildon-libs/hildon-1: . examples src
- Next message: [maemo-commits] r9747 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: mitch Date: 2007-02-08 15:00:29 +0200 (Thu, 08 Feb 2007) New Revision: 9746 Added: projects/haf/branches/gtk+/maemo-gtk-2-10/tests/testbbox.c Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkbbox.c projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkenums.h projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkhbbox.c projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkvbbox.c projects/haf/branches/gtk+/maemo-gtk-2-10/tests/Makefile.am projects/haf/branches/gtk+/maemo-gtk-2-10/tests/testgtk.c Log: 2007-02-08 Michael Natterer <mitch at imendio.com> Merge from upstream trunk: Thu Feb 8 13:07:08 2007 Tim Janik <timj at imendio.com> * applied patch from Xan Lopez which adds GTK_BUTTONBOX_CENTER to GtkButtonBox (bug #336159). * gtk/gtkenums.h: * gtk/gtkvbbox.c, gtk/gtkhbbox.c, gtk/gtkbbox.c: support GTK_BUTTONBOX_CENTER. * tests/testbbox.c: new button box test, which allows testing of the various button box properties. * tests/testgtk.c: added GTK_BUTTONBOX_CENTER. to button box test. Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog 2007-02-08 12:55:14 UTC (rev 9745) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog 2007-02-08 13:00:29 UTC (rev 9746) @@ -1,16 +1,34 @@ +2007-02-08 Michael Natterer <mitch at imendio.com> + + Merge from upstream trunk: + + Thu Feb 8 13:07:08 2007 Tim Janik <timj at imendio.com> + + * applied patch from Xan Lopez which adds GTK_BUTTONBOX_CENTER to + GtkButtonBox (bug #336159). + + * gtk/gtkenums.h: + * gtk/gtkvbbox.c, gtk/gtkhbbox.c, gtk/gtkbbox.c: + support GTK_BUTTONBOX_CENTER. + + * tests/testbbox.c: new button box test, which allows testing of + the various button box properties. + + * tests/testgtk.c: added GTK_BUTTONBOX_CENTER. to button box test. + Tue Feb 6 15:53:59 2007 Tim Janik <timj at imendio.com> - * gtk/gtktextview.c (gtk_text_view_motion_event): - * gtk/gtkspinbutton.c (gtk_spin_button_motion_notify): - * gtk/gtkaboutdialog.c (credits_motion_notify_event): + * gtk/gtktextview.c (gtk_text_view_motion_event): + * gtk/gtkspinbutton.c (gtk_spin_button_motion_notify): + * gtk/gtkaboutdialog.c (credits_motion_notify_event): * gtk/gtkhruler.c (gtk_hruler_motion_notify): - * gtk/gtkvruler.c (gtk_vruler_motion_notify): - * gtk/gtkentry.c (gtk_entry_motion_notify): - * gtk/gtktooltip.c (_gtk_tooltip_handle_event): - * gtk/gtkhsv.c (gtk_hsv_motion): call gdk_event_request_motions() - for new motion events after receiving motion hints. + * gtk/gtkvruler.c (gtk_vruler_motion_notify): + * gtk/gtkentry.c (gtk_entry_motion_notify): + * gtk/gtktooltip.c (_gtk_tooltip_handle_event): + * gtk/gtkhsv.c (gtk_hsv_motion): call gdk_event_request_motions() + for new motion events after receiving motion hints. - * gdk/gdkevents.[hc]: added gdk_event_request_motions(). + * gdk/gdkevents.[hc]: added gdk_event_request_motions(). 2007-02-07 Kristian Rietveld <kris at imendio.com> Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkbbox.c =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkbbox.c 2007-02-08 12:55:14 UTC (rev 9745) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkbbox.c 2007-02-08 13:00:29 UTC (rev 9746) @@ -253,7 +253,7 @@ { g_return_if_fail (GTK_IS_BUTTON_BOX (widget)); g_return_if_fail (layout_style >= GTK_BUTTONBOX_DEFAULT_STYLE && - layout_style <= GTK_BUTTONBOX_END); + layout_style <= GTK_BUTTONBOX_CENTER); if (widget->layout_style != layout_style) { Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkenums.h =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkenums.h 2007-02-08 12:55:14 UTC (rev 9745) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkenums.h 2007-02-08 13:00:29 UTC (rev 9746) @@ -78,7 +78,8 @@ GTK_BUTTONBOX_SPREAD, GTK_BUTTONBOX_EDGE, GTK_BUTTONBOX_START, - GTK_BUTTONBOX_END + GTK_BUTTONBOX_END, + GTK_BUTTONBOX_CENTER } GtkButtonBoxStyle; /* Curve types */ Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkhbbox.c =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkhbbox.c 2007-02-08 12:55:14 UTC (rev 9745) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkhbbox.c 2007-02-08 13:00:29 UTC (rev 9746) @@ -83,7 +83,7 @@ gtk_hbutton_box_set_layout_default (GtkButtonBoxStyle layout) { g_return_if_fail (layout >= GTK_BUTTONBOX_DEFAULT_STYLE && - layout <= GTK_BUTTONBOX_END); + layout <= GTK_BUTTONBOX_CENTER); default_layout_style = layout; } @@ -148,6 +148,7 @@ case GTK_BUTTONBOX_EDGE: case GTK_BUTTONBOX_START: case GTK_BUTTONBOX_END: + case GTK_BUTTONBOX_CENTER: requisition->width = nvis_children*child_width + ((nvis_children-1)*spacing); break; default: @@ -235,6 +236,16 @@ - GTK_CONTAINER (box)->border_width; secondary_x = allocation->x + GTK_CONTAINER (box)->border_width; break; + case GTK_BUTTONBOX_CENTER: + childspacing = spacing; + x = allocation->x + + (allocation->width + - (child_width * (nvis_children - n_secondaries) + + spacing * (nvis_children - n_secondaries - 1)))/2 + + (n_secondaries * child_width + n_secondaries * spacing)/2 + + GTK_CONTAINER (box)->border_width; + secondary_x = allocation->x + GTK_CONTAINER (box)->border_width; + break; default: g_assert_not_reached(); break; Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkvbbox.c =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkvbbox.c 2007-02-08 12:55:14 UTC (rev 9745) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkvbbox.c 2007-02-08 13:00:29 UTC (rev 9746) @@ -84,7 +84,7 @@ gtk_vbutton_box_set_layout_default (GtkButtonBoxStyle layout) { g_return_if_fail (layout >= GTK_BUTTONBOX_DEFAULT_STYLE && - layout <= GTK_BUTTONBOX_END); + layout <= GTK_BUTTONBOX_CENTER); default_layout_style = layout; } @@ -151,6 +151,7 @@ case GTK_BUTTONBOX_EDGE: case GTK_BUTTONBOX_START: case GTK_BUTTONBOX_END: + case GTK_BUTTONBOX_CENTER: requisition->height = nvis_children*child_height + ((nvis_children-1)*spacing); break; @@ -239,6 +240,16 @@ - GTK_CONTAINER (box)->border_width; secondary_y = allocation->y + GTK_CONTAINER (box)->border_width; break; + case GTK_BUTTONBOX_CENTER: + childspacing = spacing; + y = allocation->y + + (allocation->height + - (child_height * (nvis_children - n_secondaries) + + spacing * (nvis_children - n_secondaries - 1)))/2 + + (n_secondaries * child_height + n_secondaries * spacing)/2 + + GTK_CONTAINER (box)->border_width; + secondary_y = allocation->y + GTK_CONTAINER (box)->border_width; + break; default: g_assert_not_reached(); break; Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/tests/Makefile.am =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/tests/Makefile.am 2007-02-08 12:55:14 UTC (rev 9745) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/tests/Makefile.am 2007-02-08 13:00:29 UTC (rev 9746) @@ -34,6 +34,7 @@ print-editor \ testaccel \ testassistant \ + testbbox \ testcairo \ testcalendar \ testcombo \ @@ -94,6 +95,7 @@ testiconview_DEPENDENCIES = $(TEST_DEPS) testaccel_DEPENDENCIES = $(TEST_DEPS) testassistant_DEPENDENCIES = $(TEST_DEPS) +testbbox_DEPENDENCIES = $(TEST_DEPS) testcairo_DEPENDENCIES = $(TEST_DEPS) testcalendar_DEPENDENCIES = $(TEST_DEPS) testcombo_DEPENDENCIES = $(TEST_DEPS) @@ -144,6 +146,7 @@ print_editor_LDADD = $(LDADDS) testaccel_LDADD = $(LDADDS) testassistant_LDADD = $(LDADDS) +testbbox_LDADD = $(LDADDS) testcairo_LDADD = $(LDADDS) testcalendar_LDADD = $(LDADDS) testcombo_LDADD = $(LDADDS) @@ -261,6 +264,9 @@ testactions_SOURCES = \ testactions.c +testbbox_SOURCES = \ + testbbox.c + testiconview_SOURCES = \ testiconview.c \ prop-editor.c Added: projects/haf/branches/gtk+/maemo-gtk-2-10/tests/testbbox.c =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/tests/testbbox.c 2007-02-08 12:55:14 UTC (rev 9745) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/tests/testbbox.c 2007-02-08 13:00:29 UTC (rev 9746) @@ -0,0 +1,180 @@ +/* + * Copyright (C) 2006 Nokia Corporation. + * Author: Xan Lopez <xan.lopez at nokia.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#include <gtk/gtk.h> + +#define N_BUTTONS 3 + +GtkWidget *bbox = NULL; +GtkWidget *hbbox = NULL, *vbbox = NULL; + +static const char* styles[] = { "GTK_BUTTONBOX_DEFAULT_STYLE", + "GTK_BUTTONBOX_SPREAD", + "GTK_BUTTONBOX_EDGE", + "GTK_BUTTONBOX_START", + "GTK_BUTTONBOX_END", + "GTK_BUTTONBOX_CENTER", + NULL}; + +static const char* types[] = { "GtkHButtonBox", + "GtkVButtonBox", + NULL}; + +static void +populate_combo_with (GtkComboBox *combo, const char** elements) +{ + int i; + + for (i = 0; elements[i] != NULL; i++) { + gtk_combo_box_append_text (combo, elements[i]); + } + + gtk_combo_box_set_active (combo, 0); +} + +static void +combo_changed_cb (GtkComboBox *combo, + gpointer user_data) +{ + char *text; + int i; + + text = gtk_combo_box_get_active_text (combo); + + for (i = 0; styles[i]; i++) { + if (g_str_equal (text, styles[i])) { + gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), (GtkButtonBoxStyle)i); + } + } +} + +static void +reparent_widget (GtkWidget *widget, + GtkWidget *old_parent, + GtkWidget *new_parent) +{ + gtk_widget_ref (widget); + gtk_container_remove (GTK_CONTAINER (old_parent), widget); + gtk_container_add (GTK_CONTAINER (new_parent), widget); + gtk_widget_unref (widget); +} + +static void +combo_types_changed_cb (GtkComboBox *combo, + GtkWidget **buttons) +{ + int i; + char *text; + GtkWidget *old_parent, *new_parent; + GtkButtonBoxStyle style; + + text = gtk_combo_box_get_active_text (combo); + + if (g_str_equal (text, "GtkHButtonBox")) { + old_parent = vbbox; + new_parent = hbbox; + } else { + old_parent = hbbox; + new_parent = vbbox; + } + + bbox = new_parent; + + for (i = 0; i < N_BUTTONS; i++) { + reparent_widget (buttons[i], old_parent, new_parent); + } + + gtk_widget_hide (old_parent); + style = gtk_button_box_get_layout (GTK_BUTTON_BOX (old_parent)); + gtk_button_box_set_layout (GTK_BUTTON_BOX (new_parent), style); + gtk_widget_show (new_parent); +} + +static void +option_cb (GtkToggleButton *option, + GtkWidget *button) +{ + gboolean active = gtk_toggle_button_get_active (option); + + gtk_button_box_set_child_secondary (GTK_BUTTON_BOX (bbox), + button, active); +} + +static const char* strings[] = { "Ok", "Cancel", "Help" }; + +int +main (int argc, + char **argv) +{ + GtkWidget *window, *buttons[N_BUTTONS]; + GtkWidget *vbox, *hbox, *combo_styles, *combo_types, *option; + int i; + + gtk_init (&argc, &argv); + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + g_signal_connect (G_OBJECT (window), "delete-event", G_CALLBACK (gtk_main_quit), NULL); + + vbox = gtk_vbox_new (FALSE, 0); + gtk_container_add (GTK_CONTAINER (window), vbox); + + /* GtkHButtonBox */ + + hbbox = gtk_hbutton_box_new (); + gtk_box_pack_start (GTK_BOX (vbox), hbbox, TRUE, TRUE, 5); + + for (i = 0; i < N_BUTTONS; i++) { + buttons[i] = gtk_button_new_with_label (strings[i]); + gtk_container_add (GTK_CONTAINER (hbbox), buttons[i]); + } + + bbox = hbbox; + + /* GtkVButtonBox */ + vbbox = gtk_vbutton_box_new (); + gtk_box_pack_start (GTK_BOX (vbox), vbbox, TRUE, TRUE, 5); + + /* Options */ + + hbox = gtk_hbox_new (FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); + + combo_types = gtk_combo_box_new_text (); + populate_combo_with (GTK_COMBO_BOX (combo_types), types); + g_signal_connect (G_OBJECT (combo_types), "changed", G_CALLBACK (combo_types_changed_cb), buttons); + gtk_box_pack_start (GTK_BOX (hbox), combo_types, TRUE, TRUE, 0); + + combo_styles = gtk_combo_box_new_text (); + populate_combo_with (GTK_COMBO_BOX (combo_styles), styles); + g_signal_connect (G_OBJECT (combo_styles), "changed", G_CALLBACK (combo_changed_cb), NULL); + gtk_box_pack_start (GTK_BOX (hbox), combo_styles, TRUE, TRUE, 0); + + option = gtk_check_button_new_with_label ("Help is secondary"); + g_signal_connect (G_OBJECT (option), "toggled", G_CALLBACK (option_cb), buttons[N_BUTTONS - 1]); + + gtk_box_pack_start (GTK_BOX (hbox), option, FALSE, FALSE, 0); + + gtk_widget_show_all (window); + gtk_widget_hide (vbbox); + + gtk_main (); + + return 0; +} Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/tests/testgtk.c =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/tests/testgtk.c 2007-02-08 12:55:14 UTC (rev 9745) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/tests/testgtk.c 2007-02-08 13:00:29 UTC (rev 9746) @@ -1133,23 +1133,27 @@ vbox = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 10); gtk_container_add (GTK_CONTAINER (frame_horz), vbox); - + gtk_box_pack_start (GTK_BOX (vbox), - create_bbox (TRUE, "Spread", 40, 85, 20, GTK_BUTTONBOX_SPREAD), + create_bbox (TRUE, "Spread", 40, 85, 20, GTK_BUTTONBOX_SPREAD), TRUE, TRUE, 0); - + gtk_box_pack_start (GTK_BOX (vbox), - create_bbox (TRUE, "Edge", 40, 85, 20, GTK_BUTTONBOX_EDGE), + create_bbox (TRUE, "Edge", 40, 85, 20, GTK_BUTTONBOX_EDGE), TRUE, TRUE, 5); - + gtk_box_pack_start (GTK_BOX (vbox), - create_bbox (TRUE, "Start", 40, 85, 20, GTK_BUTTONBOX_START), + create_bbox (TRUE, "Start", 40, 85, 20, GTK_BUTTONBOX_START), TRUE, TRUE, 5); - + gtk_box_pack_start (GTK_BOX (vbox), - create_bbox (TRUE, "End", 40, 85, 20, GTK_BUTTONBOX_END), + create_bbox (TRUE, "End", 40, 85, 20, GTK_BUTTONBOX_END), TRUE, TRUE, 5); - + + gtk_box_pack_start (GTK_BOX (vbox), + create_bbox (TRUE, "Center", 40, 85, 20, GTK_BUTTONBOX_CENTER), + TRUE, TRUE, 5); + frame_vert = gtk_frame_new ("Vertical Button Boxes"); gtk_box_pack_start (GTK_BOX (main_vbox), frame_vert, TRUE, TRUE, 10); @@ -1158,20 +1162,24 @@ gtk_container_add (GTK_CONTAINER (frame_vert), hbox); gtk_box_pack_start (GTK_BOX (hbox), - create_bbox (FALSE, "Spread", 30, 85, 20, GTK_BUTTONBOX_SPREAD), + create_bbox (FALSE, "Spread", 30, 85, 20, GTK_BUTTONBOX_SPREAD), TRUE, TRUE, 0); - + gtk_box_pack_start (GTK_BOX (hbox), - create_bbox (FALSE, "Edge", 30, 85, 20, GTK_BUTTONBOX_EDGE), + create_bbox (FALSE, "Edge", 30, 85, 20, GTK_BUTTONBOX_EDGE), TRUE, TRUE, 5); - + gtk_box_pack_start (GTK_BOX (hbox), - create_bbox (FALSE, "Start", 30, 85, 20, GTK_BUTTONBOX_START), + create_bbox (FALSE, "Start", 30, 85, 20, GTK_BUTTONBOX_START), TRUE, TRUE, 5); - + gtk_box_pack_start (GTK_BOX (hbox), - create_bbox (FALSE, "End", 30, 85, 20, GTK_BUTTONBOX_END), + create_bbox (FALSE, "End", 30, 85, 20, GTK_BUTTONBOX_END), TRUE, TRUE, 5); + + gtk_box_pack_start (GTK_BOX (hbox), + create_bbox (FALSE, "Center", 30, 85, 20, GTK_BUTTONBOX_CENTER), + TRUE, TRUE, 5); } if (!GTK_WIDGET_VISIBLE (window))
- Previous message: [maemo-commits] r9745 - in projects/haf/branches/hildon-libs/hildon-1: . examples src
- Next message: [maemo-commits] r9747 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]