[gtk+/resolution-independence: 9/24] port GtkExpander, GtkFixed, GtkProgressBar and GtkGamma to RI



commit 30c5e6fe7a5965bd6c2fae9b54997b95b7222024
Author: David Zeuthen <davidz redhat com>
Date:   Wed Aug 13 14:22:48 2008 -0400

    port GtkExpander, GtkFixed, GtkProgressBar and GtkGamma to RI
    
    min/max for GtkExpander
    
    min/max for GtkFixed
    
    min/max for GtkProgressBar
    
    fixed gtkprogressbar.c
    
    fixed gtkfixed.c
    
    fixed gtkexpander.c
---
 docs/reference/gtk/gtk-sections.txt |    1 +
 gtk/gtk.symbols                     |    1 +
 gtk/gtkexpander.c                   |   64 +++++++++++++++++++-------------
 gtk/gtkexpander.h                   |    3 +-
 gtk/gtkfixed.c                      |   52 ++++++++++++--------------
 gtk/gtkfixed.h                      |   12 +++---
 gtk/gtkgamma.c                      |   10 +++---
 gtk/gtkprogressbar.c                |   68 +++++++++++++++++-----------------
 8 files changed, 111 insertions(+), 100 deletions(-)

diff --git a/docs/reference/gtk/gtk-sections.txt b/docs/reference/gtk/gtk-sections.txt
index 4b1cd42..92c60f4 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 ee88445..9d13ae3 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 6866f98..8977ac0 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 dc07a6c..1961882 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 96c4a8d..8b4fbb6 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 7c78247..8ceb021 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 fd03f85..9b825c0 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 96b3167..f7100da 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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]