diff options
author | Michael Natterer <mitch@imendio.com> | 2008-07-02 12:05:42 +0000 |
---|---|---|
committer | Michael Natterer <mitch@src.gnome.org> | 2008-07-02 12:05:42 +0000 |
commit | a82c180023aa0c6961ddb85d85193f39b9aa18dd (patch) | |
tree | 86806e8337670f38d4b6ae7744e56d0f0f006d0e /gtk/gtkmenuitem.c | |
parent | 1b291602bdaabce603226fd3df28190fa984e661 (diff) | |
download | gtk+-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.c | 26 |
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 |