gtk+ r20733 - in trunk: . gtk



Author: mitch
Date: Wed Jul  2 12:05:42 2008
New Revision: 20733
URL: http://svn.gnome.org/viewvc/gtk+?rev=20733&view=rev

Log:
2008-07-02  Michael Natterer  <mitch imendio com>

	Bug 537591 â Don't hardcode minimum width of menuitems

	* gtk/gtkmenuitem.c: applied patch from Christian Dywan which
	introduces a "width-chars" style property which replaces the
	hardcoded minimum width of menuitems with submenu. Patch
	extracted from Maemo-GTK+.



Modified:
   trunk/ChangeLog
   trunk/gtk/gtkmenuitem.c

Modified: trunk/gtk/gtkmenuitem.c
==============================================================================
--- trunk/gtk/gtkmenuitem.c	(original)
+++ trunk/gtk/gtkmenuitem.c	Wed Jul  2 12:05:42 2008
@@ -280,6 +280,20 @@
                                                                P_("Amount of space used up by arrow, relative to the menu item's font size"),
                                                                0.0, 2.0, 0.8,
                                                                GTK_PARAM_READABLE));
+
+  /**
+   * GtkMenuItem:width-chars:
+   *
+   * The minimum desired width of the menu item in characters.
+   *
+   * Since: 2.14
+   **/
+  gtk_widget_class_install_style_property (widget_class,
+                                           g_param_spec_int ("width-chars",
+                                                             P_("Width in Characters"),
+                                                             P_("The minimum desired width of the menu item in characters"),
+                                                             0, G_MAXINT, 12,
+                                                             GTK_PARAM_READABLE));
 }
 
 static void
@@ -597,19 +611,21 @@
 {
   PangoContext *context;
   PangoFontMetrics *metrics;
-  gint height;
+  gint width;
+  gint width_chars;
 
   context = gtk_widget_get_pango_context (widget);
   metrics = pango_context_get_metrics (context,
 				       widget->style->font_desc,
 				       pango_context_get_language (context));
 
-  height = pango_font_metrics_get_ascent (metrics) +
-      pango_font_metrics_get_descent (metrics);
-  
+  width = pango_font_metrics_get_approximate_char_width (metrics);
+
   pango_font_metrics_unref (metrics);
 
-  return PANGO_PIXELS (7 * height);
+  gtk_widget_style_get (widget, "width-chars", &width_chars, NULL);
+
+  return PANGO_PIXELS (width_chars * width);
 }
 
 static void



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