diff --git a/docs/reference/gtk/gtk-sections.txt b/docs/reference/gtk/gtk-sections.txt index 4b1cd42eb5..92c60f4fd7 100644 --- a/docs/reference/gtk/gtk-sections.txt +++ b/docs/reference/gtk/gtk-sections.txt @@ -1417,6 +1417,7 @@ gtk_expander_set_expanded gtk_expander_get_expanded gtk_expander_set_spacing gtk_expander_get_spacing +gtk_expander_get_spacing_unit gtk_expander_set_label gtk_expander_get_label gtk_expander_set_use_underline diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols index ee88445228..9d13ae3cdc 100644 --- a/gtk/gtk.symbols +++ b/gtk/gtk.symbols @@ -1435,6 +1435,7 @@ gtk_expander_get_expanded gtk_expander_get_label gtk_expander_get_label_widget gtk_expander_get_spacing +gtk_expander_get_spacing_unit gtk_expander_get_type G_GNUC_CONST gtk_expander_get_use_markup gtk_expander_get_use_underline diff --git a/gtk/gtkexpander.c b/gtk/gtkexpander.c index 6866f982c9..8977ac0f56 100644 --- a/gtk/gtkexpander.c +++ b/gtk/gtkexpander.c @@ -38,8 +38,8 @@ #define GTK_EXPANDER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GTK_TYPE_EXPANDER, GtkExpanderPrivate)) -#define DEFAULT_EXPANDER_SIZE 10 -#define DEFAULT_EXPANDER_SPACING 2 +#define DEFAULT_EXPANDER_SIZE GTK_SIZE_ONE_TWELFTH_EM(10) +#define DEFAULT_EXPANDER_SPACING GTK_SIZE_ONE_TWELFTH_EM(2) enum { @@ -215,13 +215,11 @@ gtk_expander_class_init (GtkExpanderClass *klass) g_object_class_install_property (gobject_class, PROP_SPACING, - g_param_spec_int ("spacing", - P_("Spacing"), - P_("Space to put between the label and the child"), - 0, - G_MAXINT, - 0, - GTK_PARAM_READWRITE)); + gtk_param_spec_size ("spacing", + P_("Spacing"), + P_("Space to put between the label and the child"), + 0, G_MAXINT, 0, + GTK_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_LABEL_WIDGET, @@ -232,22 +230,18 @@ gtk_expander_class_init (GtkExpanderClass *klass) GTK_PARAM_READWRITE)); gtk_widget_class_install_style_property (widget_class, - g_param_spec_int ("expander-size", - P_("Expander Size"), - P_("Size of the expander arrow"), - 0, - G_MAXINT, - DEFAULT_EXPANDER_SIZE, - GTK_PARAM_READABLE)); + gtk_param_spec_size ("expander-size", + P_("Expander Size"), + P_("Size of the expander arrow"), + 0, G_MAXINT, DEFAULT_EXPANDER_SIZE, + GTK_PARAM_READABLE)); gtk_widget_class_install_style_property (widget_class, - g_param_spec_int ("expander-spacing", - P_("Indicator Spacing"), - P_("Spacing around expander arrow"), - 0, - G_MAXINT, - DEFAULT_EXPANDER_SPACING, - GTK_PARAM_READABLE)); + gtk_param_spec_size ("expander-spacing", + P_("Indicator Spacing"), + P_("Spacing around expander arrow"), + 0, G_MAXINT, DEFAULT_EXPANDER_SPACING, + GTK_PARAM_READABLE)); widget_class->activate_signal = g_signal_new (I_("activate"), @@ -330,7 +324,7 @@ gtk_expander_set_property (GObject *object, gtk_expander_set_use_markup (expander, g_value_get_boolean (value)); break; case PROP_SPACING: - gtk_expander_set_spacing (expander, g_value_get_int (value)); + gtk_expander_set_spacing (expander, gtk_value_get_size (value)); break; case PROP_LABEL_WIDGET: gtk_expander_set_label_widget (expander, g_value_get_object (value)); @@ -365,7 +359,7 @@ gtk_expander_get_property (GObject *object, g_value_set_boolean (value, priv->use_markup); break; case PROP_SPACING: - g_value_set_int (value, priv->spacing); + gtk_value_set_size (value, priv->spacing, expander); break; case PROP_LABEL_WIDGET: g_value_set_object (value, @@ -1459,7 +1453,7 @@ gtk_expander_get_expanded (GtkExpander *expander) **/ void gtk_expander_set_spacing (GtkExpander *expander, - gint spacing) + GtkSize spacing) { g_return_if_fail (GTK_IS_EXPANDER (expander)); g_return_if_fail (spacing >= 0); @@ -1489,6 +1483,24 @@ gtk_expander_get_spacing (GtkExpander *expander) { g_return_val_if_fail (GTK_IS_EXPANDER (expander), 0); + return gtk_widget_size_to_pixel (expander, expander->priv->spacing); +} + +/** + * gtk_expander_get_spacing_unit: + * @expander: a #GtkExpander + * + * Like gtk_expander_set_spacing() but preserves the unit. + * + * Return value: spacing between the expander and child. + * + * Since: 2.14 + **/ +GtkSize +gtk_expander_get_spacing_unit (GtkExpander *expander) +{ + g_return_val_if_fail (GTK_IS_EXPANDER (expander), 0); + return expander->priv->spacing; } diff --git a/gtk/gtkexpander.h b/gtk/gtkexpander.h index dc07a6ce71..1961882ebd 100644 --- a/gtk/gtkexpander.h +++ b/gtk/gtkexpander.h @@ -71,8 +71,9 @@ gboolean gtk_expander_get_expanded (GtkExpander *expander); /* Spacing between the expander/label and the child */ void gtk_expander_set_spacing (GtkExpander *expander, - gint spacing); + GtkSize spacing); gint gtk_expander_get_spacing (GtkExpander *expander); +GtkSize gtk_expander_get_spacing_unit (GtkExpander *expander); void gtk_expander_set_label (GtkExpander *expander, const gchar *label); diff --git a/gtk/gtkfixed.c b/gtk/gtkfixed.c index 96c4a8d9e3..8b4fbb6abe 100644 --- a/gtk/gtkfixed.c +++ b/gtk/gtkfixed.c @@ -86,23 +86,19 @@ gtk_fixed_class_init (GtkFixedClass *class) gtk_container_class_install_child_property (container_class, CHILD_PROP_X, - g_param_spec_int ("x", - P_("X position"), - P_("X position of child widget"), - G_MININT, - G_MAXINT, - 0, - GTK_PARAM_READWRITE)); + gtk_param_spec_size ("x", + P_("X position"), + P_("X position of child widget"), + 0, G_MAXINT, 0, + GTK_PARAM_READWRITE)); gtk_container_class_install_child_property (container_class, CHILD_PROP_Y, - g_param_spec_int ("y", - P_("Y position"), - P_("Y position of child widget"), - G_MININT, - G_MAXINT, - 0, - GTK_PARAM_READWRITE)); + gtk_param_spec_size ("y", + P_("Y position"), + P_("Y position of child widget"), + 0, G_MAXINT, 0, + GTK_PARAM_READWRITE)); } static GType @@ -149,8 +145,8 @@ get_child (GtkFixed *fixed, void gtk_fixed_put (GtkFixed *fixed, GtkWidget *widget, - gint x, - gint y) + GtkSize x, + GtkSize y) { GtkFixedChild *child_info; @@ -171,9 +167,9 @@ static void gtk_fixed_move_internal (GtkFixed *fixed, GtkWidget *widget, gboolean change_x, - gint x, + GtkSize x, gboolean change_y, - gint y) + GtkSize y) { GtkFixedChild *child; @@ -208,8 +204,8 @@ gtk_fixed_move_internal (GtkFixed *fixed, void gtk_fixed_move (GtkFixed *fixed, GtkWidget *widget, - gint x, - gint y) + GtkSize x, + GtkSize y) { gtk_fixed_move_internal (fixed, widget, TRUE, x, TRUE, y); } @@ -226,14 +222,14 @@ gtk_fixed_set_child_property (GtkContainer *container, case CHILD_PROP_X: gtk_fixed_move_internal (GTK_FIXED (container), child, - TRUE, g_value_get_int (value), + TRUE, gtk_value_get_size (value), FALSE, 0); break; case CHILD_PROP_Y: gtk_fixed_move_internal (GTK_FIXED (container), child, FALSE, 0, - TRUE, g_value_get_int (value)); + TRUE, gtk_value_get_size (value)); break; default: GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID (container, property_id, pspec); @@ -255,10 +251,10 @@ gtk_fixed_get_child_property (GtkContainer *container, switch (property_id) { case CHILD_PROP_X: - g_value_set_int (value, fixed_child->x); + gtk_value_set_size (value, fixed_child->x, container); break; case CHILD_PROP_Y: - g_value_set_int (value, fixed_child->y); + gtk_value_set_size (value, fixed_child->y, container); break; default: GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID (container, property_id, pspec); @@ -324,10 +320,10 @@ gtk_fixed_size_request (GtkWidget *widget, gtk_widget_size_request (child->widget, &child_requisition); requisition->height = MAX (requisition->height, - child->y + + gtk_widget_size_to_pixel (fixed, child->y) + child_requisition.height); requisition->width = MAX (requisition->width, - child->x + + gtk_widget_size_to_pixel (fixed, child->x) + child_requisition.width); } } @@ -372,8 +368,8 @@ gtk_fixed_size_allocate (GtkWidget *widget, if (GTK_WIDGET_VISIBLE (child->widget)) { gtk_widget_get_child_requisition (child->widget, &child_requisition); - child_allocation.x = child->x + border_width; - child_allocation.y = child->y + border_width; + child_allocation.x = gtk_widget_size_to_pixel (fixed, child->x) + border_width; + child_allocation.y = gtk_widget_size_to_pixel (fixed, child->y) + border_width; if (GTK_WIDGET_NO_WINDOW (widget)) { diff --git a/gtk/gtkfixed.h b/gtk/gtkfixed.h index 7c782473cd..8ceb021942 100644 --- a/gtk/gtkfixed.h +++ b/gtk/gtkfixed.h @@ -64,8 +64,8 @@ struct _GtkFixedClass struct _GtkFixedChild { GtkWidget *widget; - gint x; - gint y; + GtkSize x; + GtkSize y; }; @@ -73,12 +73,12 @@ GType gtk_fixed_get_type (void) G_GNUC_CONST; GtkWidget* gtk_fixed_new (void); void gtk_fixed_put (GtkFixed *fixed, GtkWidget *widget, - gint x, - gint y); + GtkSize x, + GtkSize y); void gtk_fixed_move (GtkFixed *fixed, GtkWidget *widget, - gint x, - gint y); + GtkSize x, + GtkSize y); void gtk_fixed_set_has_window (GtkFixed *fixed, gboolean has_window); gboolean gtk_fixed_get_has_window (GtkFixed *fixed); diff --git a/gtk/gtkgamma.c b/gtk/gtkgamma.c index fd03f857ef..9b825c0ebf 100644 --- a/gtk/gtkgamma.c +++ b/gtk/gtkgamma.c @@ -258,7 +258,7 @@ gtk_gamma_curve_init (GtkGammaCurve *curve) curve->gamma = 1.0; curve->table = gtk_table_new (1, 2, FALSE); - gtk_table_set_col_spacings (GTK_TABLE (curve->table), 3); + gtk_table_set_col_spacings (GTK_TABLE (curve->table), GTK_SIZE_ONE_TWELFTH_EM (3)); gtk_container_add (GTK_CONTAINER (curve), curve->table); curve->curve = gtk_curve_new (); @@ -266,7 +266,7 @@ gtk_gamma_curve_init (GtkGammaCurve *curve) G_CALLBACK (curve_type_changed_callback), curve); gtk_table_attach_defaults (GTK_TABLE (curve->table), curve->curve, 0, 1, 0, 1); - vbox = gtk_vbox_new (/* homogeneous */ FALSE, /* spacing */ 3); + vbox = gtk_vbox_new (/* homogeneous */ FALSE, /* spacing */ GTK_SIZE_ONE_TWELFTH_EM (3)); gtk_table_attach (GTK_TABLE (curve->table), vbox, 1, 2, 0, 1, 0, 0, 0, 0); /* toggle buttons: */ @@ -412,18 +412,18 @@ button_clicked_callback (GtkWidget *w, gpointer data) vbox = GTK_DIALOG (c->gamma_dialog)->vbox; hbox = gtk_hbox_new (/* homogeneous */ FALSE, 0); - gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 2); + gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, GTK_SIZE_ONE_TWELFTH_EM (2)); gtk_widget_show (hbox); label = gtk_label_new_with_mnemonic (_("_Gamma value")); - gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, GTK_SIZE_ONE_TWELFTH_EM (2)); gtk_widget_show (label); sprintf (buf, "%g", c->gamma); c->gamma_text = gtk_entry_new (); gtk_label_set_mnemonic_widget (GTK_LABEL (label), c->gamma_text); gtk_entry_set_text (GTK_ENTRY (c->gamma_text), buf); - gtk_box_pack_start (GTK_BOX (hbox), c->gamma_text, TRUE, TRUE, 2); + gtk_box_pack_start (GTK_BOX (hbox), c->gamma_text, TRUE, TRUE, GTK_SIZE_ONE_TWELFTH_EM (2)); gtk_widget_show (c->gamma_text); /* fill in action area: */ diff --git a/gtk/gtkprogressbar.c b/gtk/gtkprogressbar.c index 96b316748a..f7100da71c 100644 --- a/gtk/gtkprogressbar.c +++ b/gtk/gtkprogressbar.c @@ -37,10 +37,10 @@ #include "gtkalias.h" -#define MIN_HORIZONTAL_BAR_WIDTH 150 -#define MIN_HORIZONTAL_BAR_HEIGHT 20 -#define MIN_VERTICAL_BAR_WIDTH 22 -#define MIN_VERTICAL_BAR_HEIGHT 80 +#define MIN_HORIZONTAL_BAR_WIDTH GTK_SIZE_ONE_TWELFTH_EM(150) +#define MIN_HORIZONTAL_BAR_HEIGHT GTK_SIZE_ONE_TWELFTH_EM(20) +#define MIN_VERTICAL_BAR_WIDTH GTK_SIZE_ONE_TWELFTH_EM(22) +#define MIN_VERTICAL_BAR_HEIGHT GTK_SIZE_ONE_TWELFTH_EM(80) enum { PROP_0, @@ -210,17 +210,17 @@ gtk_progress_bar_class_init (GtkProgressBarClass *class) PANGO_ELLIPSIZE_NONE, GTK_PARAM_READWRITE)); gtk_widget_class_install_style_property (widget_class, - g_param_spec_int ("xspacing", - P_("XSpacing"), - P_("Extra spacing applied to the width of a progress bar."), - 0, G_MAXINT, 7, - G_PARAM_READWRITE)); + gtk_param_spec_size ("xspacing", + P_("XSpacing"), + P_("Extra spacing applied to the width of a progress bar."), + 0, G_MAXINT, GTK_SIZE_ONE_TWELFTH_EM (7), + G_PARAM_READWRITE)); gtk_widget_class_install_style_property (widget_class, - g_param_spec_int ("yspacing", - P_("YSpacing"), - P_("Extra spacing applied to the height of a progress bar."), - 0, G_MAXINT, 7, - G_PARAM_READWRITE)); + gtk_param_spec_size ("yspacing", + P_("YSpacing"), + P_("Extra spacing applied to the height of a progress bar."), + 0, G_MAXINT, GTK_SIZE_ONE_TWELFTH_EM (7), + G_PARAM_READWRITE)); /** * GtkProgressBar:min-horizontal-bar-width: @@ -230,11 +230,11 @@ gtk_progress_bar_class_init (GtkProgressBarClass *class) * Since: 2.14 */ gtk_widget_class_install_style_property (widget_class, - g_param_spec_int ("min-horizontal-bar-width", - P_("Min horizontal bar width"), - P_("The minimum horizontal width of the progress bar"), - 1, G_MAXINT, MIN_HORIZONTAL_BAR_WIDTH, - G_PARAM_READWRITE)); + gtk_param_spec_size ("min-horizontal-bar-width", + P_("Min horizontal bar width"), + P_("The minimum horizontal width of the progress bar"), + 0, G_MAXINT, MIN_HORIZONTAL_BAR_WIDTH, + G_PARAM_READWRITE)); /** * GtkProgressBar:min-horizontal-bar-height: * @@ -243,11 +243,11 @@ gtk_progress_bar_class_init (GtkProgressBarClass *class) * Since: 2.14 */ gtk_widget_class_install_style_property (widget_class, - g_param_spec_int ("min-horizontal-bar-height", - P_("Min horizontal bar height"), - P_("Minimum horizontal height of the progress bar"), - 1, G_MAXINT, MIN_HORIZONTAL_BAR_HEIGHT, - G_PARAM_READWRITE)); + gtk_param_spec_size ("min-horizontal-bar-height", + P_("Min horizontal bar height"), + P_("Minimum horizontal height of the progress bar"), + 0, G_MAXINT, MIN_HORIZONTAL_BAR_HEIGHT, + G_PARAM_READWRITE)); /** * GtkProgressBar:min-vertical-bar-width: * @@ -256,11 +256,11 @@ gtk_progress_bar_class_init (GtkProgressBarClass *class) * Since: 2.14 */ gtk_widget_class_install_style_property (widget_class, - g_param_spec_int ("min-vertical-bar-width", - P_("Min vertical bar width"), - P_("The minimum vertical width of the progress bar"), - 1, G_MAXINT, MIN_VERTICAL_BAR_WIDTH, - G_PARAM_READWRITE)); + gtk_param_spec_size ("min-vertical-bar-width", + P_("Min vertical bar width"), + P_("The minimum vertical width of the progress bar"), + 0, G_MAXINT, MIN_VERTICAL_BAR_WIDTH, + G_PARAM_READWRITE)); /** * GtkProgressBar:min-vertical-bar-height: * @@ -269,11 +269,11 @@ gtk_progress_bar_class_init (GtkProgressBarClass *class) * Since: 2.14 */ gtk_widget_class_install_style_property (widget_class, - g_param_spec_int ("min-vertical-bar-height", - P_("Min vertical bar height"), - P_("The minimum vertical height of the progress bar"), - 1, G_MAXINT, MIN_VERTICAL_BAR_HEIGHT, - G_PARAM_READWRITE)); + gtk_param_spec_size ("min-vertical-bar-height", + P_("Min vertical bar height"), + P_("The minimum vertical height of the progress bar"), + 0, G_MAXINT, MIN_VERTICAL_BAR_HEIGHT, + G_PARAM_READWRITE)); } static void