From 828bc672f69ce5399cde528a5a4eba9bf207b717 Mon Sep 17 00:00:00 2001 From: Gregory John Casamento Date: Sun, 10 Apr 2011 20:14:53 +0000 Subject: [PATCH] Add method to ask if the menu should show the icon. In some themes it is redundant. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32829 72102866-910b-0410-8b05-ffd578937521 --- Headers/Additions/GNUstepGUI/GSTheme.h | 9 ++++++++ Source/GSThemeMenu.m | 5 +++++ Source/NSMenu.m | 31 ++++++++++++++++---------- 3 files changed, 33 insertions(+), 12 deletions(-) diff --git a/Headers/Additions/GNUstepGUI/GSTheme.h b/Headers/Additions/GNUstepGUI/GSTheme.h index a29497027..94e5399e5 100644 --- a/Headers/Additions/GNUstepGUI/GSTheme.h +++ b/Headers/Additions/GNUstepGUI/GSTheme.h @@ -1125,8 +1125,17 @@ withRepeatedImage: (NSImage*)image controlViewWindow: (NSWindow *)cvWin preferredEdge: (NSRectEdge)edge selectedItem: (int)selectedItem; + +/** + * Process events for popups. + */ - (BOOL) doesProcessEventsForPopUpMenu; +/** + * Display the menu icon in the application. + */ +- (BOOL) menuShouldShowIcon; + /** * Processes menu events for the theme. The default implementation * does nothing. diff --git a/Source/GSThemeMenu.m b/Source/GSThemeMenu.m index 3764dd450..2e0fab7c5 100644 --- a/Source/GSThemeMenu.m +++ b/Source/GSThemeMenu.m @@ -169,5 +169,10 @@ return NO; // themes that handle events in a popUpMenu should return YES } +- (BOOL) menuShouldShowIcon +{ + return YES; // override whether or not to show the icon in the menu. +} + @end diff --git a/Source/NSMenu.m b/Source/NSMenu.m index ce64a9336..fc28fc1ca 100644 --- a/Source/NSMenu.m +++ b/Source/NSMenu.m @@ -274,16 +274,19 @@ static BOOL menuBarVisible = YES; NSMutableArray *itemsToMove; NSImage *ti; float bar; + + if([[GSTheme theme] menuShouldShowIcon]) + { + ti = [[NSApp applicationIconImage] copy]; + if (ti == nil) + { + ti = [[NSImage imageNamed: @"GNUstep"] copy]; + } + [ti setScalesWhenResized: YES]; + bar = [NSMenuView menuBarHeight] - 4; + [ti setSize: NSMakeSize(bar, bar)]; + } - ti = [[NSApp applicationIconImage] copy]; - if (ti == nil) - { - ti = [[NSImage imageNamed: @"GNUstep"] copy]; - } - [ti setScalesWhenResized: YES]; - bar = [NSMenuView menuBarHeight] - 4; - [ti setSize: NSMakeSize(bar, bar)]; - itemsToMove = [NSMutableArray new]; if (appMenu == nil) @@ -309,9 +312,13 @@ static BOOL menuBarVisible = YES; RELEASE (appItem); } } - [appItem setImage: ti]; - RELEASE(ti); - + + if([[GSTheme theme] menuShouldShowIcon]) + { + [appItem setImage: ti]; + RELEASE(ti); + } + // Collect all simple items plus "Info" and "Services" for (i = 1; i < [_items count]; i++) {