]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkprogressbar.c
gtk/gtkaccellabel.c gtk/gtkaction.c gtk/gtkclist.c gtk/gtkcolorbutton.c
[~andy/gtk] / gtk / gtkprogressbar.c
index babb6ac9ec5143fd7725df4ba15ea14e1faebacf..96b316748a53f31603770acf0734cf121a5befe0 100644 (file)
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
  */
 
-#if HAVE_CONFIG_H
-#  include <config.h>
-#  if STDC_HEADERS
-#    include <string.h>
-#    include <stdio.h>
-#  endif
-#else
-#  include <stdio.h>
-#endif
+#include "config.h"
+
+#include <string.h>
+
+#undef GTK_DISABLE_DEPRECATED
+#define __GTK_PROGRESS_BAR_C__
 
 #include "gtkprogressbar.h"
 #include "gtkprivate.h"
@@ -44,7 +41,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,
@@ -221,10 +217,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
@@ -344,7 +393,7 @@ gtk_progress_bar_new (void)
 {
   GtkWidget *pbar;
 
-  pbar = gtk_widget_new (GTK_TYPE_PROGRESS_BAR, NULL);
+  pbar = g_object_new (GTK_TYPE_PROGRESS_BAR, NULL);
 
   return pbar;
 }
@@ -356,7 +405,7 @@ gtk_progress_bar_new_with_adjustment (GtkAdjustment *adjustment)
 
   g_return_val_if_fail (GTK_IS_ADJUSTMENT (adjustment), NULL);
 
-  pbar = gtk_widget_new (GTK_TYPE_PROGRESS_BAR,
+  pbar = g_object_new (GTK_TYPE_PROGRESS_BAR,
                         "adjustment", adjustment,
                         NULL);
 
@@ -491,6 +540,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);
@@ -543,15 +593,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
@@ -1328,5 +1381,4 @@ gtk_progress_bar_get_ellipsize (GtkProgressBar *pbar)
   return pbar->ellipsize;
 }
 
-#define __GTK_PROGRESS_BAR_C__
 #include "gtkaliasdef.c"