diff options
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkbbox.c | 2 | ||||
-rw-r--r-- | gtk/gtkenums.h | 3 | ||||
-rw-r--r-- | gtk/gtkhbbox.c | 13 | ||||
-rw-r--r-- | gtk/gtkvbbox.c | 13 |
4 files changed, 27 insertions, 4 deletions
diff --git a/gtk/gtkbbox.c b/gtk/gtkbbox.c index c546a344b4..657263c57e 100644 --- a/gtk/gtkbbox.c +++ b/gtk/gtkbbox.c @@ -253,7 +253,7 @@ gtk_button_box_set_layout (GtkButtonBox *widget, { 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) { diff --git a/gtk/gtkenums.h b/gtk/gtkenums.h index a3a5e068ce..6fabacf5b8 100644 --- a/gtk/gtkenums.h +++ b/gtk/gtkenums.h @@ -78,7 +78,8 @@ typedef enum GTK_BUTTONBOX_SPREAD, GTK_BUTTONBOX_EDGE, GTK_BUTTONBOX_START, - GTK_BUTTONBOX_END + GTK_BUTTONBOX_END, + GTK_BUTTONBOX_CENTER } GtkButtonBoxStyle; /* Curve types */ diff --git a/gtk/gtkhbbox.c b/gtk/gtkhbbox.c index 694ea02a8d..399ae19c04 100644 --- a/gtk/gtkhbbox.c +++ b/gtk/gtkhbbox.c @@ -83,7 +83,7 @@ void 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 @@ gtk_hbutton_box_size_request (GtkWidget *widget, 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_hbutton_box_size_allocate (GtkWidget *widget, - 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; diff --git a/gtk/gtkvbbox.c b/gtk/gtkvbbox.c index 4f5957cd6c..c7b7256807 100644 --- a/gtk/gtkvbbox.c +++ b/gtk/gtkvbbox.c @@ -84,7 +84,7 @@ void 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 @@ gtk_vbutton_box_size_request (GtkWidget *widget, 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_vbutton_box_size_allocate (GtkWidget *widget, - 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; |