[maemo-commits] [maemo-commits] r18719 - in projects/haf/trunk/gtk+: . debian gtk
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Fri Jun 12 19:50:35 EEST 2009
- Previous message: [maemo-commits] r18718 - projects/haf/tags/osso-af-utils
- Next message: [maemo-commits] r18720 - in projects/haf/trunk/libmatchbox2: . matchbox/core
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: kalikiana Date: 2009-06-12 19:50:31 +0300 (Fri, 12 Jun 2009) New Revision: 18719 Modified: projects/haf/trunk/gtk+/ChangeLog projects/haf/trunk/gtk+/debian/changelog projects/haf/trunk/gtk+/gtk/gtkdialog.c projects/haf/trunk/gtk+/gtk/gtkdialog.h Log: Implement properties top-padding, left-padding, right-padding, bottom-padding and inner-spacing with appropriate default values as well as a function gtk_dialog_set_padding and gtk_dialog_get_padding. Patch by Danel Borgmann. Modified: projects/haf/trunk/gtk+/ChangeLog =================================================================== --- projects/haf/trunk/gtk+/ChangeLog 2009-06-12 15:35:28 UTC (rev 18718) +++ projects/haf/trunk/gtk+/ChangeLog 2009-06-12 16:50:31 UTC (rev 18719) @@ -1,3 +1,17 @@ +2009-06-12 Christian Dywan <christian at lanedo.com> + + Fixes: NB#98617 - Make dialogs use proper border margins + + * gtk/gtkdialog.c (gtk_dialog_class_init), (update_spacings), + (gtk_dialog_init), (gtk_dialog_set_property), + (gtk_dialog_get_property), (gtk_dialog_set_has_separator), + (gtk_dialog_set_padding), (gtk_dialog_get_padding), + (gtk_dialog_set_inner_spacing), (gtk_dialog_get_inner_spacing): + * gtk/gtkdialog.h: Implement properties top-padding, left-padding, + right-padding, bottom-padding and inner-spacing with appropriate + default values as well as a function gtk_dialog_set_padding and + gtk_dialog_get_padding. Patch by Danel Borgmann. + 2009-06-10 Claudio Saavedra <csaavedra at igalia.com> Releasing 2:2.14.3-1maemo4 Modified: projects/haf/trunk/gtk+/debian/changelog =================================================================== --- projects/haf/trunk/gtk+/debian/changelog 2009-06-12 15:35:28 UTC (rev 18718) +++ projects/haf/trunk/gtk+/debian/changelog 2009-06-12 16:50:31 UTC (rev 18719) @@ -1,3 +1,9 @@ +gtk+2.0 (2:2.14.3-1maemo5) unstable; urgency=low + + * Fixes: NB#98617 - Make dialogs use proper border margins + + -- Foo <foo at bar.com> Fri, 31 Jun 2009 18:44:00 +0100 + gtk+2.0 (2:2.14.3-1maemo4) unstable; urgency=low * Split gail into its own packages: Modified: projects/haf/trunk/gtk+/gtk/gtkdialog.c =================================================================== --- projects/haf/trunk/gtk+/gtk/gtkdialog.c 2009-06-12 15:35:28 UTC (rev 18718) +++ projects/haf/trunk/gtk+/gtk/gtkdialog.c 2009-06-12 16:50:31 UTC (rev 18719) @@ -27,6 +27,9 @@ #include <stdlib.h> #include <string.h> #include "config.h" +#ifdef MAEMO_CHANGES +#include "gtkalignment.h" +#endif /* MAEMO_CHANGES */ #include "gtkbutton.h" #include "gtkdialog.h" #include "gtkhbbox.h" @@ -49,6 +52,10 @@ typedef struct { guint ignore_separator : 1; +#ifdef MAEMO_CHANGES + GtkWidget *hbox; + GtkWidget *alignment; +#endif /* MAEMO_CHANGES */ } GtkDialogPrivate; typedef struct _ResponseData ResponseData; @@ -102,6 +109,13 @@ enum { PROP_0, +#ifdef MAEMO_CHANGES + PROP_TOP_PADDING, + PROP_BOTTOM_PADDING, + PROP_LEFT_PADDING, + PROP_RIGHT_PADDING, + PROP_INNER_SPACING, +#endif /* MAEMO_CHANGES */ PROP_HAS_SEPARATOR }; @@ -147,9 +161,65 @@ g_param_spec_boolean ("has-separator", P_("Has separator"), P_("The dialog has a separator bar above its buttons"), +#ifdef MAEMO_CHANGES + FALSE, +#else TRUE, +#endif /* MAEMO_CHANGES */ GTK_PARAM_READWRITE)); +#ifdef MAEMO_CHANGES + g_object_class_install_property (gobject_class, + PROP_TOP_PADDING, + g_param_spec_uint ("top-padding", + P_("Top Padding"), + P_("The padding to insert at the top of the dialog."), + 0, + G_MAXUINT, + 0, + GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT)); + + g_object_class_install_property (gobject_class, + PROP_BOTTOM_PADDING, + g_param_spec_uint ("bottom-padding", + P_("Bottom Padding"), + P_("The padding to insert at the bottom of the dialog."), + 0, + G_MAXUINT, + 8, + GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT)); + + g_object_class_install_property (gobject_class, + PROP_LEFT_PADDING, + g_param_spec_uint ("left-padding", + P_("Left Padding"), + P_("The padding to insert at the left of the dialog."), + 0, + G_MAXUINT, + 16, + GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT)); + + g_object_class_install_property (gobject_class, + PROP_RIGHT_PADDING, + g_param_spec_uint ("right-padding", + P_("Right Padding"), + P_("The padding to insert at the right of the dialog."), + 0, + G_MAXUINT, + 16, + GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT)); + + g_object_class_install_property (gobject_class, + PROP_INNER_SPACING, + g_param_spec_int ("inner-spacing", + P_("Inner Spacing"), + P_("The spacing between content area and action area."), + 0, + G_MAXINT, + 16, + GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT)); +#endif /* MAEMO_CHANGES */ + /** * GtkDialog::response: * @dialog: the object on which the signal is emitted @@ -246,8 +316,19 @@ gint button_spacing; gint action_area_border; gint content_area_spacing; +#ifdef MAEMO_CHANGES + GtkDialogPrivate *priv; + guint top_padding; + guint bottom_padding; + guint left_padding; + guint right_padding; +#endif /* MAEMO_CHANGES */ widget = GTK_WIDGET (dialog); + +#ifdef MAEMO_CHANGES + priv = GET_PRIVATE (dialog); +#endif /* MAEMO_CHANGES */ gtk_widget_style_get (widget, "content-area-border", &content_area_border, @@ -256,6 +337,17 @@ "action-area-border", &action_area_border, NULL); +#ifdef MAEMO_CHANGES + gtk_dialog_get_padding (dialog, &top_padding, &bottom_padding, &left_padding, &right_padding); + + gtk_alignment_set_padding (GTK_ALIGNMENT (priv->alignment), + top_padding, + bottom_padding, + left_padding, + right_padding); + + gtk_box_set_spacing (GTK_BOX (priv->hbox), gtk_dialog_get_inner_spacing (dialog)); +#endif /* MAEMO_CHANGES */ gtk_container_set_border_width (GTK_CONTAINER (dialog->vbox), content_area_border); gtk_box_set_spacing (GTK_BOX (dialog->vbox), content_area_spacing); @@ -270,12 +362,14 @@ { GtkDialogPrivate *priv; -#ifdef MAEMO_CHANGES - GtkWidget *hbox = gtk_hbox_new (FALSE, 0); -#endif /* MAEMO_CHANGES */ priv = GET_PRIVATE (dialog); priv->ignore_separator = FALSE; +#ifdef MAEMO_CHANGES + priv->hbox = gtk_hbox_new (FALSE, 0); + priv->alignment = gtk_alignment_new (0.0, 0.0, 1.0, 1.0); +#endif /* MAEMO_CHANGES */ + /* To avoid breaking old code that prevents destroy on delete event * by connecting a handler, we have to have the FIRST signal * connection on the dialog. @@ -288,11 +382,14 @@ dialog->vbox = gtk_vbox_new (FALSE, 0); #ifdef MAEMO_CHANGES - gtk_container_add (GTK_CONTAINER (dialog), hbox); - gtk_widget_show (hbox); + gtk_container_add (GTK_CONTAINER (priv->alignment), priv->hbox); + gtk_container_add (GTK_CONTAINER (dialog), priv->alignment); + gtk_widget_show (priv->hbox); + gtk_widget_show (priv->alignment); gtk_widget_show (dialog->vbox); dialog->action_area = gtk_vbutton_box_new (); + gtk_widget_set_name (dialog->action_area, "hildon-dialog-action-area"); #else gtk_container_add (GTK_CONTAINER (dialog), dialog->vbox); gtk_widget_show (dialog->vbox); @@ -304,13 +401,11 @@ GTK_BUTTONBOX_END); #ifdef MAEMO_CHANGES - gtk_box_pack_end (GTK_BOX (hbox), dialog->action_area, + gtk_box_pack_end (GTK_BOX (priv->hbox), dialog->action_area, FALSE, TRUE, 0); gtk_widget_show (dialog->action_area); - dialog->separator = gtk_vseparator_new (); - gtk_box_pack_end (GTK_BOX (hbox), dialog->separator, FALSE, TRUE, 0); - gtk_box_pack_end (GTK_BOX (hbox), dialog->vbox, TRUE, TRUE, 0); + gtk_box_pack_end (GTK_BOX (priv->hbox), dialog->vbox, TRUE, TRUE, 0); #else gtk_box_pack_end (GTK_BOX (dialog->vbox), dialog->action_area, FALSE, TRUE, 0); @@ -318,8 +413,8 @@ dialog->separator = gtk_hseparator_new (); gtk_box_pack_end (GTK_BOX (dialog->vbox), dialog->separator, FALSE, TRUE, 0); + gtk_widget_show (dialog->separator); #endif /* MAEMO_CHANGES */ - gtk_widget_show (dialog->separator); gtk_window_set_type_hint (GTK_WINDOW (dialog), GDK_WINDOW_TYPE_HINT_DIALOG); @@ -359,14 +454,56 @@ GParamSpec *pspec) { GtkDialog *dialog; +#ifdef MAEMO_CHANGES + guint padding_top; + guint padding_bottom; + guint padding_left; + guint padding_right; +#endif dialog = GTK_DIALOG (object); + +#ifdef MAEMO_CHANGES + gtk_dialog_get_padding (dialog, &padding_top, &padding_bottom, &padding_left, &padding_right); +#endif switch (prop_id) { case PROP_HAS_SEPARATOR: gtk_dialog_set_has_separator (dialog, g_value_get_boolean (value)); break; +#ifdef MAEMO_CHANGES + case PROP_TOP_PADDING: + gtk_dialog_set_padding (dialog, + g_value_get_uint (value), + padding_bottom, + padding_left, + padding_right); + break; + case PROP_BOTTOM_PADDING: + gtk_dialog_set_padding (dialog, + padding_top, + g_value_get_uint (value), + padding_left, + padding_right); + break; + case PROP_LEFT_PADDING: + gtk_dialog_set_padding (dialog, + padding_top, + padding_bottom, + g_value_get_uint (value), + padding_right); + break; + case PROP_RIGHT_PADDING: + gtk_dialog_set_padding (dialog, + padding_top, + padding_bottom, + padding_left, + g_value_get_uint (value)); + break; + case PROP_INNER_SPACING: + gtk_dialog_set_inner_spacing (dialog, g_value_get_int (value)); +#endif /* MAEMO_CHANGES */ default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -381,15 +518,43 @@ GParamSpec *pspec) { GtkDialog *dialog; +#ifdef MAEMO_CHANGES + guint padding_top; + guint padding_bottom; + guint padding_left; + guint padding_right; +#endif dialog = GTK_DIALOG (object); - + +#ifdef MAEMO_CHANGES + gtk_dialog_get_padding (dialog, &padding_top, &padding_bottom, &padding_left, &padding_right); +#endif + switch (prop_id) { case PROP_HAS_SEPARATOR: g_value_set_boolean (value, dialog->separator != NULL); break; +#ifdef MAEMO_CHANGES + case PROP_TOP_PADDING: + g_value_set_uint (value, padding_top); + break; + case PROP_BOTTOM_PADDING: + g_value_set_uint (value, padding_bottom); + break; + case PROP_LEFT_PADDING: + g_value_set_uint (value, padding_left); + break; + case PROP_RIGHT_PADDING: + g_value_set_uint (value, padding_right); + break; + case PROP_INNER_SPACING: + g_value_set_int (value, gtk_dialog_get_inner_spacing (dialog)); + break; +#endif /* MAEMO_CHANGES */ + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -917,6 +1082,15 @@ if (setting && dialog->separator == NULL) { +#ifdef MAEMO_CHANGES + dialog->separator = gtk_vseparator_new (); + gtk_box_pack_end (GTK_BOX (priv->hbox), dialog->separator, FALSE, TRUE, 0); + + /* The app programmer could screw this up, but, their own fault. + * Moves the separator just above the action area. + */ + gtk_box_reorder_child (GTK_BOX (priv->hbox), dialog->separator, 1); +#else dialog->separator = gtk_hseparator_new (); gtk_box_pack_end (GTK_BOX (dialog->vbox), dialog->separator, FALSE, TRUE, 0); @@ -924,6 +1098,7 @@ * Moves the separator just above the action area. */ gtk_box_reorder_child (GTK_BOX (dialog->vbox), dialog->separator, 1); +#endif /* MAEMO_CHANGES */ gtk_widget_show (dialog->separator); } else if (!setting && dialog->separator != NULL) @@ -951,7 +1126,96 @@ return dialog->separator != NULL; } +#ifdef MAEMO_CHANGES /** + * gtk_dialog_set_padding: + * @dialog: a #GtkDialog + * @top_padding: Padding to add at the top of the dialog. + * @bottom_padding: Padding to add at the bottom of the dialog. + * @left_padding: Padding to add at the left of the dialog. + * @right_padding: Padding to add at the right of the dialog. + * + * Sets additional padding around the dialog. + **/ +void +gtk_dialog_set_padding (GtkDialog *dialog, + guint top_padding, + guint bottom_padding, + guint left_padding, + guint right_padding) +{ + GtkDialogPrivate *priv; + + g_return_if_fail (GTK_IS_DIALOG (dialog)); + + priv = GET_PRIVATE (dialog); + + gtk_alignment_set_padding (GTK_ALIGNMENT (priv->alignment), top_padding, bottom_padding, left_padding, right_padding); +} + +/** + * gtk_dialog_get_padding: + * @dialog: a #GtkDialog + * @padding_top: location to store the padding for the top of the dialog, or %NULL + * @padding_bottom: location to store the padding for the bottom of the dialog, or %NULL + * @padding_left: location to store the padding for the left of the dialog, or %NULL + * @padding_right: location to store the padding for the right of the dialog, or %NULL + * + * Gets the padding on the different sides of the dialog. + **/ +void +gtk_dialog_get_padding (GtkDialog *dialog, + guint *top_padding, + guint *bottom_padding, + guint *left_padding, + guint *right_padding) +{ + GtkDialogPrivate *priv; + + g_return_if_fail (GTK_IS_DIALOG (dialog)); + + priv = GET_PRIVATE (dialog); + + guint t, b, l, r; + + gtk_alignment_get_padding (GTK_ALIGNMENT (priv->alignment), &t, &b, &l, &r); + + if (top_padding) + *top_padding = t; + if (bottom_padding) + *bottom_padding = b; + if (left_padding) + *left_padding = l; + if (right_padding) + *right_padding = r; +} + +void +gtk_dialog_set_inner_spacing (GtkDialog *dialog, + guint inner_spacing) +{ + GtkDialogPrivate *priv; + g_return_if_fail (GTK_IS_DIALOG (dialog)); + + priv = GET_PRIVATE (dialog); + + gtk_box_set_spacing (GTK_BOX (priv->hbox), inner_spacing); +} + +guint +gtk_dialog_get_inner_spacing (GtkDialog *dialog) +{ + GtkDialogPrivate *priv; + g_return_val_if_fail (GTK_IS_DIALOG (dialog), 0); + + priv = GET_PRIVATE (dialog); + + return gtk_box_get_spacing (GTK_BOX (priv->hbox)); +} + +#endif /* MAEMO_CHANGES */ + +/** * gtk_dialog_response: * @dialog: a #GtkDialog * @response_id: response ID Modified: projects/haf/trunk/gtk+/gtk/gtkdialog.h =================================================================== --- projects/haf/trunk/gtk+/gtk/gtkdialog.h 2009-06-12 15:35:28 UTC (rev 18718) +++ projects/haf/trunk/gtk+/gtk/gtkdialog.h 2009-06-12 16:50:31 UTC (rev 18719) @@ -156,6 +156,23 @@ gboolean setting); gboolean gtk_dialog_get_has_separator (GtkDialog *dialog); +#ifdef MAEMO_CHANGES +void gtk_dialog_set_padding (GtkDialog *dialog, + guint padding_top, + guint padding_bottom, + guint padding_left, + guint padding_right); +void gtk_dialog_get_padding (GtkDialog *dialog, + guint *padding_top, + guint *padding_bottom, + guint *padding_left, + guint *padding_right); + +void gtk_dialog_set_inner_spacing (GtkDialog *dialog, + guint inner_spacing); +guint gtk_dialog_get_inner_spacing (GtkDialog *dialog); +#endif /* MAEMO_CHANGES */ + gboolean gtk_alternative_dialog_button_order (GdkScreen *screen); void gtk_dialog_set_alternative_button_order (GtkDialog *dialog, gint first_response_id,
- Previous message: [maemo-commits] r18718 - projects/haf/tags/osso-af-utils
- Next message: [maemo-commits] r18720 - in projects/haf/trunk/libmatchbox2: . matchbox/core
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]