From a82c180023aa0c6961ddb85d85193f39b9aa18dd Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Wed, 2 Jul 2008 12:05:42 +0000 Subject: [PATCH] =?UTF-8?q?Bug=20537591=20=E2=80=93=20Don't=20hardcode=20m?= =?UTF-8?q?inimum=20width=20of=20menuitems?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2008-07-02 Michael Natterer 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 --- ChangeLog | 9 +++++++++ gtk/gtkmenuitem.c | 26 +++++++++++++++++++++----- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index cc3feb34e1..a3d1bad0b7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-07-02 Michael Natterer + + 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+. + 2008-07-02 Michael Natterer * gtk/gtkfilechooserdefault.c: remove some of the million includes. 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