]> Pileus Git - ~andy/gtk/commitdiff
Bug 429411 – add style properties to set minimum progressbar
authorMatthias Clasen <mclasen@redhat.com>
Sat, 2 Aug 2008 04:48:47 +0000 (04:48 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Sat, 2 Aug 2008 04:48:47 +0000 (04:48 +0000)
2008-08-02  Matthias Clasen  <mclasen@redhat.com>

        Bug 429411 – add style properties to set minimum progressbar
        width/height

        * gtk/gtkprogressbar.c: Add style properties for minimum size.
        Patch by Carlos Garnacho and Christian Dywan

svn path=/trunk/; revision=20938

ChangeLog
gtk/gtkprogressbar.c

index 4f36cb6c2ffbabe55873b814799c57dd2a9f82cd..0e0664b277acbcb1e4f0d047c6f0f70fda5ba4d2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-08-02  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 429411 – add style properties to set minimum progressbar 
+       width/height
+
+       * gtk/gtkprogressbar.c: Add style properties for minimum size.
+       Patch by Carlos Garnacho and Christian Dywan
+
 2008-08-02  Matthias Clasen  <mclasen@redhat.com>
 
        Bug 526575 – Missing return type in gtk_ui_manager_get_toplevels
index 55534c4e8a94253e9d31ad218b7bc3044557c791..bf690f2f36c35fdfc0cca1558af1cd95c19de54d 100644 (file)
@@ -38,7 +38,6 @@
 #define MIN_HORIZONTAL_BAR_HEIGHT  20
 #define MIN_VERTICAL_BAR_WIDTH     22
 #define MIN_VERTICAL_BAR_HEIGHT    80
-#define MAX_TEXT_LENGTH            80
 
 enum {
   PROP_0,
@@ -215,10 +214,63 @@ gtk_progress_bar_class_init (GtkProgressBarClass *class)
                                                              G_PARAM_READWRITE));
   gtk_widget_class_install_style_property (widget_class,
                                            g_param_spec_int ("yspacing",
-                                                             "YSpacing",
-                                                             "Extra spacing applied to the height of a progress bar.",
+                                                             P_("YSpacing"),
+                                                             P_("Extra spacing applied to the height of a progress bar."),
                                                              0, G_MAXINT, 7,
                                                              G_PARAM_READWRITE));
+
+  /**
+   * GtkProgressBar:min-horizontal-bar-width:
+   *
+   * The minimum horizontal width of the progress bar.
+   *
+   * 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));
+  /**
+   * GtkProgressBar:min-horizontal-bar-height:
+   *
+   * Minimum horizontal height of the progress bar.
+   *
+   * 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));
+  /**
+   * GtkProgressBar:min-vertical-bar-width:
+   *
+   * The minimum vertical width of the progress bar.
+   *
+   * 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));
+  /**
+   * GtkProgressBar:min-vertical-bar-height:
+   *
+   * The minimum vertical height of the progress bar.
+   *
+   * 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));
 }
 
 static void
@@ -485,6 +537,7 @@ gtk_progress_bar_size_request (GtkWidget      *widget,
   PangoLayout *layout;
   gint width, height;
   gint xspacing, yspacing;
+  gint min_width, min_height;
 
   g_return_if_fail (GTK_IS_PROGRESS_BAR (widget));
   g_return_if_fail (requisition != NULL);
@@ -537,15 +590,18 @@ gtk_progress_bar_size_request (GtkWidget      *widget,
   
   if (pbar->orientation == GTK_PROGRESS_LEFT_TO_RIGHT ||
       pbar->orientation == GTK_PROGRESS_RIGHT_TO_LEFT)
-    {
-      requisition->width = MAX (MIN_HORIZONTAL_BAR_WIDTH, width);
-      requisition->height = MAX (MIN_HORIZONTAL_BAR_HEIGHT, height);
-    }
+    gtk_widget_style_get (widget,
+                         "min-horizontal-bar-width", &min_width,
+                         "min-horizontal-bar-height", &min_height,
+                         NULL);
   else
-    {
-      requisition->width = MAX (MIN_VERTICAL_BAR_WIDTH, width);
-      requisition->height = MAX (MIN_VERTICAL_BAR_HEIGHT, height);
-    }
+    gtk_widget_style_get (widget,
+                         "min-vertical-bar-width", &min_width,
+                         "min-vertical-bar-height", &min_height,
+                         NULL);
+
+  requisition->width = MAX (min_width, width);
+  requisition->height = MAX (min_height, height);
 }
 
 static void