mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 11:25:00 +00:00
Bug 415810 - "Respect the user's settings of icons in menus" [p=ventnor.bugzilla@yahoo.com.au (Michael Ventnor) r+sr=roc r=Enn a1.9=schrep]
This commit is contained in:
parent
037d698cbf
commit
e1bee5ad78
@ -777,6 +777,11 @@ InitSystemMetrics()
|
||||
sSystemMetrics->AppendElement(do_GetAtom("scrollbar-thumb-proportional"));
|
||||
}
|
||||
|
||||
lookAndFeel->GetMetric(nsILookAndFeel::eMetric_ImagesInMenus, metricResult);
|
||||
if (metricResult) {
|
||||
sSystemMetrics->AppendElement(do_GetAtom("images-in-menus"));
|
||||
}
|
||||
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
|
@ -304,6 +304,17 @@ menuitem.menuitem-non-iconic {
|
||||
-moz-binding: url("chrome://global/content/bindings/menu.xml#menubutton-item");
|
||||
}
|
||||
|
||||
%ifdef MOZ_WIDGET_GTK2
|
||||
/********* detection of system setting to use icons in menus ***********/
|
||||
menuitem:not([type]):not(:-moz-system-metric(images-in-menus)) > .menu-iconic-left {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
menu:not(:-moz-system-metric(images-in-menus)) > .menu-iconic-left {
|
||||
visibility: hidden;
|
||||
}
|
||||
%endif
|
||||
|
||||
/********* menuseparator ***********/
|
||||
|
||||
menuseparator {
|
||||
|
@ -244,7 +244,12 @@ public:
|
||||
eMetric_IMERawInputUnderlineStyle,
|
||||
eMetric_IMESelectedRawTextUnderlineStyle,
|
||||
eMetric_IMEConvertedTextUnderlineStyle,
|
||||
eMetric_IMESelectedConvertedTextUnderline
|
||||
eMetric_IMESelectedConvertedTextUnderline,
|
||||
|
||||
/**
|
||||
* If this metric != 0, show icons in menus.
|
||||
*/
|
||||
eMetric_ImagesInMenus
|
||||
} nsMetricID;
|
||||
|
||||
enum {
|
||||
|
@ -81,6 +81,7 @@ static GtkWidget* gMenuBarWidget;
|
||||
static GtkWidget* gMenuBarItemWidget;
|
||||
static GtkWidget* gMenuPopupWidget;
|
||||
static GtkWidget* gMenuItemWidget;
|
||||
static GtkWidget* gImageMenuItemWidget;
|
||||
static GtkWidget* gCheckMenuItemWidget;
|
||||
static GtkWidget* gTreeViewWidget;
|
||||
static GtkWidget* gTreeHeaderCellWidget;
|
||||
@ -437,6 +438,19 @@ ensure_menu_item_widget()
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
static gint
|
||||
ensure_image_menu_item_widget()
|
||||
{
|
||||
if (!gImageMenuItemWidget) {
|
||||
ensure_menu_popup_widget();
|
||||
gImageMenuItemWidget = gtk_image_menu_item_new();
|
||||
gtk_menu_shell_append(GTK_MENU_SHELL(gMenuPopupWidget),
|
||||
gImageMenuItemWidget);
|
||||
gtk_widget_realize(gImageMenuItemWidget);
|
||||
}
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
static gint
|
||||
ensure_menu_separator_widget()
|
||||
{
|
||||
@ -2662,6 +2676,19 @@ moz_gtk_get_scrollbar_metrics(MozGtkScrollbarMetrics *metrics)
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
gboolean
|
||||
moz_gtk_images_in_menus()
|
||||
{
|
||||
gboolean result;
|
||||
GtkSettings* settings;
|
||||
|
||||
ensure_image_menu_item_widget();
|
||||
settings = gtk_widget_get_settings(gImageMenuItemWidget);
|
||||
|
||||
g_object_get(settings, "gtk-menu-images", &result, NULL);
|
||||
return result;
|
||||
}
|
||||
|
||||
gint
|
||||
moz_gtk_widget_paint(GtkThemeWidgetType widget, GdkDrawable* drawable,
|
||||
GdkRectangle* rect, GdkRectangle* cliprect,
|
||||
@ -2906,6 +2933,7 @@ moz_gtk_shutdown()
|
||||
gMenuBarItemWidget = NULL;
|
||||
gMenuPopupWidget = NULL;
|
||||
gMenuItemWidget = NULL;
|
||||
gImageMenuItemWidget = NULL;
|
||||
gCheckMenuItemWidget = NULL;
|
||||
gTreeViewWidget = NULL;
|
||||
gTreeHeaderCellWidget = NULL;
|
||||
|
@ -404,6 +404,12 @@ GtkWidget* moz_gtk_get_scrollbar_widget(void);
|
||||
*/
|
||||
gint moz_gtk_get_tab_thickness(void);
|
||||
|
||||
/**
|
||||
* Get a boolean which indicates whether or not to use images in menus.
|
||||
* If TRUE, use images in menus.
|
||||
*/
|
||||
gboolean moz_gtk_images_in_menus(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
@ -536,7 +536,9 @@ NS_IMETHODIMP nsLookAndFeel::GetMetric(const nsMetricID aID, PRInt32 & aMetric)
|
||||
case eMetric_IMESelectedConvertedTextUnderline:
|
||||
aMetric = NS_UNDERLINE_STYLE_NONE;
|
||||
break;
|
||||
|
||||
case eMetric_ImagesInMenus:
|
||||
aMetric = moz_gtk_images_in_menus();
|
||||
break;
|
||||
default:
|
||||
aMetric = 0;
|
||||
res = NS_ERROR_FAILURE;
|
||||
|
Loading…
Reference in New Issue
Block a user