summaryrefslogtreecommitdiff
path: root/gtk/gtkmenuitem.c
diff options
context:
space:
mode:
authorMichael Natterer <mitch@imendio.com>2008-07-02 12:05:42 +0000
committerMichael Natterer <mitch@src.gnome.org>2008-07-02 12:05:42 +0000
commita82c180023aa0c6961ddb85d85193f39b9aa18dd (patch)
tree86806e8337670f38d4b6ae7744e56d0f0f006d0e /gtk/gtkmenuitem.c
parent1b291602bdaabce603226fd3df28190fa984e661 (diff)
downloadgtk+-a82c180023aa0c6961ddb85d85193f39b9aa18dd.tar.gz
Bug 537591 – Don't hardcode minimum width of menuitems
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+. svn path=/trunk/; revision=20733
Diffstat (limited to 'gtk/gtkmenuitem.c')
-rw-r--r--gtk/gtkmenuitem.c26
1 files changed, 21 insertions, 5 deletions
diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c
index 340bed9676..f343f93771 100644
--- a/gtk/gtkmenuitem.c
+++ b/gtk/gtkmenuitem.c
@@ -280,6 +280,20 @@ gtk_menu_item_class_init (GtkMenuItemClass *klass)
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 @@ get_minimum_width (GtkWidget *widget)
{
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