gtk+ r21508 - in trunk: . gtk
- From: cdywan svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk+ r21508 - in trunk: . gtk
- Date: Wed, 24 Sep 2008 08:41:46 +0000 (UTC)
Author: cdywan
Date: Wed Sep 24 08:41:46 2008
New Revision: 21508
URL: http://svn.gnome.org/viewvc/gtk+?rev=21508&view=rev
Log:
Bug 408244 â add GtkDialog::content-area-spacing
* gtk/gtkbox.c (gtk_box_init), (gtk_box_set_spacing),
(_gtk_box_set_spacing_set), (_gtk_box_get_spacing_set):
* gtk/gtkbox.h:
* gtk/gtkdialog.c (gtk_dialog_class_init), (update_spacings):
Implement "content-area-spacing" style property in GtkDialog
and internal helper _gtk_box_get_spacing_set in GtkBox.
Patch by Tim Janik, Sven Herzberg and myself.
Modified:
trunk/ChangeLog
trunk/gtk/gtkbox.c
trunk/gtk/gtkbox.h
trunk/gtk/gtkdialog.c
Modified: trunk/gtk/gtkbox.c
==============================================================================
--- trunk/gtk/gtkbox.c (original)
+++ trunk/gtk/gtkbox.c Wed Sep 24 08:41:46 2008
@@ -101,7 +101,7 @@
G_MAXINT,
0,
GTK_PARAM_READWRITE));
-
+
g_object_class_install_property (gobject_class,
PROP_HOMOGENEOUS,
g_param_spec_boolean ("homogeneous",
@@ -155,6 +155,7 @@
box->children = NULL;
box->spacing = 0;
+ box->spacing_set = FALSE;
box->homogeneous = FALSE;
}
@@ -531,7 +532,10 @@
if (spacing != box->spacing)
{
box->spacing = spacing;
+ box->spacing_set = TRUE;
+
g_object_notify (G_OBJECT (box), "spacing");
+
gtk_widget_queue_resize (GTK_WIDGET (box));
}
}
@@ -552,6 +556,23 @@
return box->spacing;
}
+void
+_gtk_box_set_spacing_set (GtkBox *box,
+ gboolean spacing_set)
+{
+ g_return_if_fail (GTK_IS_BOX (box));
+
+ box->spacing_set = spacing_set;
+}
+
+gboolean
+_gtk_box_get_spacing_set (GtkBox *box)
+{
+ g_return_val_if_fail (GTK_IS_BOX (box), FALSE);
+
+ return box->spacing_set;
+}
+
/**
* gtk_box_reorder_child:
* @box: a #GtkBox
Modified: trunk/gtk/gtkbox.h
==============================================================================
--- trunk/gtk/gtkbox.h (original)
+++ trunk/gtk/gtkbox.h Wed Sep 24 08:41:46 2008
@@ -59,6 +59,7 @@
GList *GSEAL (children);
gint16 GSEAL (spacing);
guint GSEAL (homogeneous) : 1;
+ guint GSEAL (spacing_set) : 1;
};
struct _GtkBoxClass
@@ -115,6 +116,9 @@
gboolean fill,
guint padding,
GtkPackType pack_type);
+gboolean _gtk_box_get_spacing_set (GtkBox* box);
+void _gtk_box_set_spacing_set (GtkBox *box,
+ gboolean spacing_set);
G_END_DECLS
Modified: trunk/gtk/gtkdialog.c
==============================================================================
--- trunk/gtk/gtkdialog.c (original)
+++ trunk/gtk/gtkdialog.c Wed Sep 24 08:41:46 2008
@@ -194,6 +194,24 @@
G_MAXINT,
2,
GTK_PARAM_READABLE));
+ /**
+ * GtkDialog:content-area-spacing:
+ *
+ * The default spacing used between elements of the
+ * content area of the dialog, as returned by
+ * gtk_dialog_get_content_area(), unless gtk_box_set_spacing()
+ * was called on that widget directly.
+ *
+ * Since: 2.16
+ */
+ gtk_widget_class_install_style_property (widget_class,
+ g_param_spec_int ("content-area-spacing",
+ P_("Content area spacing"),
+ P_("Spacing between elements of the main dialog area"),
+ 0,
+ G_MAXINT,
+ 0,
+ GTK_PARAM_READABLE));
gtk_widget_class_install_style_property (widget_class,
g_param_spec_int ("button-spacing",
P_("Button spacing"),
@@ -220,21 +238,25 @@
static void
update_spacings (GtkDialog *dialog)
{
- GtkWidget *widget;
gint content_area_border;
+ gint content_area_spacing;
gint button_spacing;
gint action_area_border;
-
- widget = GTK_WIDGET (dialog);
- gtk_widget_style_get (widget,
+ gtk_widget_style_get (GTK_WIDGET (dialog),
"content-area-border", &content_area_border,
+ "content-area-spacing", &content_area_spacing,
"button-spacing", &button_spacing,
"action-area-border", &action_area_border,
NULL);
gtk_container_set_border_width (GTK_CONTAINER (dialog->vbox),
content_area_border);
+ if (!_gtk_box_get_spacing_set (GTK_BOX (dialog->vbox)))
+ {
+ gtk_box_set_spacing (GTK_BOX (dialog->vbox), content_area_spacing);
+ _gtk_box_set_spacing_set (GTK_BOX (dialog->vbox), FALSE);
+ }
gtk_box_set_spacing (GTK_BOX (dialog->action_area),
button_spacing);
gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]