[gtk+/resolution-independence: 11/24] port menu stuff to RI



commit 3b35e523fdac741919cbf03c393b4bafdc1fa93e
Author: David Zeuthen <davidz redhat com>
Date:   Wed Aug 13 14:50:32 2008 -0400

    port menu stuff to RI
    
    min/max for GtkCheckMenuItem
    
    min/max for GtkMenu
    
    min/max for GtkMenuBar
    
    min/max for GtkMenuItem
    
    fixed gtkcheckmenuitem.c
    
    fixed gtkmenubar.c
    
    fixed gtkmenu.c
    
    fixed gtkmenuitem.c
---
 gtk/gtkcheckmenuitem.c   |   12 ++++------
 gtk/gtkmenu.c            |   50 +++++++++++++++++++--------------------------
 gtk/gtkmenubar.c         |   14 +++++-------
 gtk/gtkmenuitem.c        |   36 +++++++++++++-------------------
 gtk/gtktearoffmenuitem.c |   32 ++++++++++++++--------------
 5 files changed, 63 insertions(+), 81 deletions(-)

diff --git a/gtk/gtkcheckmenuitem.c b/gtk/gtkcheckmenuitem.c
index 8bf0972..ef920c3 100644
--- a/gtk/gtkcheckmenuitem.c
+++ b/gtk/gtkcheckmenuitem.c
@@ -117,13 +117,11 @@ gtk_check_menu_item_class_init (GtkCheckMenuItemClass *klass)
                                                          GTK_PARAM_READWRITE));
   
   gtk_widget_class_install_style_property (widget_class,
-                                           g_param_spec_int ("indicator-size",
-                                                             P_("Indicator Size"),
-                                                             P_("Size of check or radio indicator"),
-                                                             0,
-                                                             G_MAXINT,
-                                                             13,
-                                                             GTK_PARAM_READABLE));
+                                           gtk_param_spec_size ("indicator-size",
+                                                                P_("Indicator Size"),
+                                                                P_("Size of check or radio indicator"),
+                                                                0, G_MAXINT, GTK_SIZE_ONE_TWELFTH_EM (13),
+                                                                GTK_PARAM_READABLE));
 
   widget_class->expose_event = gtk_check_menu_item_expose;
   
diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c
index ad439c0..c135c5b 100644
--- a/gtk/gtkmenu.c
+++ b/gtk/gtkmenu.c
@@ -588,40 +588,32 @@ gtk_menu_class_init (GtkMenuClass *class)
 						     GTK_PARAM_READWRITE));
 
   gtk_widget_class_install_style_property (widget_class,
-					   g_param_spec_int ("vertical-padding",
-							     P_("Vertical Padding"),
-							     P_("Extra space at the top and bottom of the menu"),
-							     0,
-							     G_MAXINT,
-							     1,
-							     GTK_PARAM_READABLE));
+					   gtk_param_spec_size ("vertical-padding",
+                                                                P_("Vertical Padding"),
+                                                                P_("Extra space at the top and bottom of the menu"),
+                                                                0, G_MAXINT, GTK_SIZE_ONE_TWELFTH_EM (1),
+                                                                GTK_PARAM_READABLE));
 
   gtk_widget_class_install_style_property (widget_class,
-                                           g_param_spec_int ("horizontal-padding",
-                                                             P_("Horizontal Padding"),
-                                                             P_("Extra space at the left and right edges of the menu"),
-                                                             0,
-                                                             G_MAXINT,
-                                                             0,
-                                                             GTK_PARAM_READABLE));
+                                           gtk_param_spec_size ("horizontal-padding",
+                                                                P_("Horizontal Padding"),
+                                                                P_("Extra space at the left and right edges of the menu"),
+                                                                0, G_MAXINT, 0,
+                                                                GTK_PARAM_READABLE));
 
   gtk_widget_class_install_style_property (widget_class,
-					   g_param_spec_int ("vertical-offset",
-							     P_("Vertical Offset"),
-							     P_("When the menu is a submenu, position it this number of pixels offset vertically"),
-							     G_MININT,
-							     G_MAXINT,
-							     0,
-							     GTK_PARAM_READABLE));
+					   gtk_param_spec_size ("vertical-offset",
+                                                                P_("Vertical Offset"),
+                                                                P_("When the menu is a submenu, position it this number of pixels offset vertically"),
+                                                                0, G_MAXINT, 0,
+                                                                GTK_PARAM_READABLE));
 
   gtk_widget_class_install_style_property (widget_class,
-					   g_param_spec_int ("horizontal-offset",
-							     P_("Horizontal Offset"),
-							     P_("When the menu is a submenu, position it this number of pixels offset horizontally"),
-							     G_MININT,
-							     G_MAXINT,
-							     -2,
-							     GTK_PARAM_READABLE));
+					   gtk_param_spec_size ("horizontal-offset",
+                                                                P_("Horizontal Offset"),
+                                                                P_("When the menu is a submenu, position it this number of pixels offset horizontally"),
+                                                                GTK_SIZE_MINPIXEL, G_MAXINT, GTK_SIZE_ONE_TWELFTH_EM (-2),
+                                                                GTK_PARAM_READABLE));
 
   gtk_widget_class_install_style_property (widget_class,
                                            g_param_spec_boolean ("double-arrows",
@@ -2000,7 +1992,7 @@ gtk_menu_set_tearoff_state (GtkMenu  *menu,
 		gtk_window_set_transient_for (GTK_WINDOW (menu->tearoff_window),
 					      GTK_WINDOW (toplevel));
 	      
-	      menu->tearoff_hbox = gtk_hbox_new (FALSE, FALSE);
+	      menu->tearoff_hbox = gtk_hbox_new (FALSE, 0);
 	      gtk_container_add (GTK_CONTAINER (menu->tearoff_window), menu->tearoff_hbox);
 
 	      gdk_drawable_get_size (GTK_WIDGET (menu)->window, &width, &height);
diff --git a/gtk/gtkmenubar.c b/gtk/gtkmenubar.c
index a54e456..efcf8bb 100644
--- a/gtk/gtkmenubar.c
+++ b/gtk/gtkmenubar.c
@@ -41,7 +41,7 @@
 
 
 #define BORDER_SPACING  0
-#define DEFAULT_IPADDING 1
+#define DEFAULT_IPADDING GTK_SIZE_ONE_TWELFTH_EM(1)
 
 /* Properties */
 enum {
@@ -198,13 +198,11 @@ gtk_menu_bar_class_init (GtkMenuBarClass *class)
                                                               GTK_PARAM_READABLE));
 
   gtk_widget_class_install_style_property (widget_class,
-					   g_param_spec_int ("internal-padding",
-							     P_("Internal padding"),
-							     P_("Amount of border space between the menubar shadow and the menu items"),
-							     0,
-							     G_MAXINT,
-                                                             DEFAULT_IPADDING,
-                                                             GTK_PARAM_READABLE));
+					   gtk_param_spec_size ("internal-padding",
+                                                                P_("Internal padding"),
+                                                                P_("Amount of border space between the menubar shadow and the menu items"),
+                                                                0, G_MAXINT, DEFAULT_IPADDING,
+                                                                GTK_PARAM_READABLE));
 
   gtk_settings_install_property (g_param_spec_int ("gtk-menu-bar-popup-delay",
 						   P_("Delay before drop down menus appear"),
diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c
index ced23c0..5d3cdf4 100644
--- a/gtk/gtkmenuitem.c
+++ b/gtk/gtkmenuitem.c
@@ -332,31 +332,25 @@ gtk_menu_item_class_init (GtkMenuItemClass *klass)
 						  gtk_rc_property_parse_enum);
 
   gtk_widget_class_install_style_property (widget_class,
-					   g_param_spec_int ("horizontal-padding",
-							     "Horizontal Padding",
-							     "Padding to left and right of the menu item",
-							     0,
-							     G_MAXINT,
-							     3,
-							     GTK_PARAM_READABLE));
+					   gtk_param_spec_size ("horizontal-padding",
+                                                                "Horizontal Padding",
+                                                                "Padding to left and right of the menu item",
+                                                                0, G_MAXINT, GTK_SIZE_ONE_TWELFTH_EM (3),
+                                                                GTK_PARAM_READABLE));
 
   gtk_widget_class_install_style_property (widget_class,
-					   g_param_spec_int ("toggle-spacing",
-							     "Icon Spacing",
-							     "Space between icon and label",
-							     0,
-							     G_MAXINT,
-							     5,
-							     GTK_PARAM_READABLE));
+					   gtk_param_spec_size ("toggle-spacing",
+                                                                "Icon Spacing",
+                                                                "Space between icon and label",
+                                                                0, G_MAXINT, GTK_SIZE_ONE_TWELFTH_EM (5),
+                                                                GTK_PARAM_READABLE));
 
   gtk_widget_class_install_style_property (widget_class,
-					   g_param_spec_int ("arrow-spacing",
-							     "Arrow Spacing",
-							     "Space between label and arrow",
-							     0,
-							     G_MAXINT,
-							     10,
-							     GTK_PARAM_READABLE));
+					   gtk_param_spec_size ("arrow-spacing",
+                                                                "Arrow Spacing",
+                                                                "Space between label and arrow",
+                                                                0, G_MAXINT, GTK_SIZE_ONE_TWELFTH_EM (10),
+                                                                GTK_PARAM_READABLE));
 
   gtk_widget_class_install_style_property (widget_class,
                                            g_param_spec_float ("arrow-scaling",
diff --git a/gtk/gtktearoffmenuitem.c b/gtk/gtktearoffmenuitem.c
index f661520..bec7b9a 100644
--- a/gtk/gtktearoffmenuitem.c
+++ b/gtk/gtktearoffmenuitem.c
@@ -31,9 +31,9 @@
 #include "gtkintl.h"
 #include "gtkalias.h"
 
-#define ARROW_SIZE 10
-#define TEAR_LENGTH 5
-#define BORDER_SPACING  3
+#define ARROW_SIZE GTK_SIZE_ONE_TWELFTH_EM(10)
+#define TEAR_LENGTH GTK_SIZE_ONE_TWELFTH_EM(5)
+#define BORDER_SPACING  GTK_SIZE_ONE_TWELFTH_EM(3)
 
 static void gtk_tearoff_menu_item_size_request (GtkWidget             *widget,
 				                GtkRequisition        *requisition);
@@ -79,13 +79,13 @@ gtk_tearoff_menu_item_size_request (GtkWidget      *widget,
 {
   requisition->width = (GTK_CONTAINER (widget)->border_width +
 			widget->style->xthickness +
-			BORDER_SPACING) * 2;
+			gtk_widget_size_to_pixel (widget, BORDER_SPACING)) * 2;
   requisition->height = (GTK_CONTAINER (widget)->border_width +
 			 widget->style->ythickness) * 2;
 
   if (GTK_IS_MENU (widget->parent) && GTK_MENU (widget->parent)->torn_off)
     {
-      requisition->height += ARROW_SIZE;
+      requisition->height += gtk_widget_size_to_pixel (widget, ARROW_SIZE);
     }
   else
     {
@@ -143,29 +143,29 @@ gtk_tearoff_menu_item_paint (GtkWidget   *widget,
 	  else
 	    shadow_type = GTK_SHADOW_OUT;
 
-	  if (menu_item->toggle_size > ARROW_SIZE)
+	  if (menu_item->toggle_size > gtk_widget_size_to_pixel (widget, ARROW_SIZE))
 	    {
 	      if (direction == GTK_TEXT_DIR_LTR) {
-		arrow_x = x + (menu_item->toggle_size - ARROW_SIZE)/2;
+		arrow_x = x + (menu_item->toggle_size - gtk_widget_size_to_pixel (widget, ARROW_SIZE))/2;
 		arrow_type = GTK_ARROW_LEFT;
 	      }
 	      else {
-		arrow_x = x + width - menu_item->toggle_size + (menu_item->toggle_size - ARROW_SIZE)/2; 
+		arrow_x = x + width - menu_item->toggle_size + (menu_item->toggle_size - gtk_widget_size_to_pixel (widget, ARROW_SIZE))/2; 
 		arrow_type = GTK_ARROW_RIGHT;	    
 	      }
-	      x += menu_item->toggle_size + BORDER_SPACING;
+	      x += menu_item->toggle_size + gtk_widget_size_to_pixel (widget, BORDER_SPACING);
 	    }
 	  else
 	    {
 	      if (direction == GTK_TEXT_DIR_LTR) {
-		arrow_x = ARROW_SIZE / 2;
+		arrow_x = gtk_widget_size_to_pixel (widget, ARROW_SIZE) / 2;
 		arrow_type = GTK_ARROW_LEFT;
 	      }
 	      else {
-		arrow_x = x + width - 2 * ARROW_SIZE + ARROW_SIZE / 2; 
+		arrow_x = x + width - 2 * gtk_widget_size_to_pixel (widget, ARROW_SIZE) + gtk_widget_size_to_pixel (widget, ARROW_SIZE) / 2; 
 		arrow_type = GTK_ARROW_RIGHT;	    
 	      }
-	      x += 2 * ARROW_SIZE;
+	      x += 2 * gtk_widget_size_to_pixel (widget, ARROW_SIZE);
 	    }
 
 
@@ -174,7 +174,7 @@ gtk_tearoff_menu_item_paint (GtkWidget   *widget,
 			   NULL, widget, "tearoffmenuitem",
 			   arrow_type, FALSE,
 			   arrow_x, y + height / 2 - 5, 
-			   ARROW_SIZE, ARROW_SIZE);
+			   gtk_widget_size_to_pixel (widget, ARROW_SIZE), gtk_widget_size_to_pixel (widget, ARROW_SIZE));
 	}
 
       while (x < right_max)
@@ -183,17 +183,17 @@ gtk_tearoff_menu_item_paint (GtkWidget   *widget,
 
 	  if (direction == GTK_TEXT_DIR_LTR) {
 	    x1 = x;
-	    x2 = MIN (x + TEAR_LENGTH, right_max);
+	    x2 = MIN (x + gtk_widget_size_to_pixel (widget, TEAR_LENGTH), right_max);
 	  }
 	  else {
 	    x1 = right_max - x;
-	    x2 = MAX (right_max - x - TEAR_LENGTH, 0);
+	    x2 = MAX (right_max - x - gtk_widget_size_to_pixel (widget, TEAR_LENGTH), 0);
 	  }
 	  
 	  gtk_paint_hline (widget->style, widget->window, GTK_STATE_NORMAL,
 			   NULL, widget, "tearoffmenuitem",
 			   x1, x2, y + (height - widget->style->ythickness) / 2);
-	  x += 2 * TEAR_LENGTH;
+	  x += 2 * gtk_widget_size_to_pixel (widget, TEAR_LENGTH);
 	}
     }
 }



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