@@ -27,6 +27,8 @@ @interface AppDelegate ()
2727@property (weak ) IBOutlet NSMenuItem *miMenuTitleIconMono;
2828@property (weak ) IBOutlet NSMenuItem *miMenuTitleAppNameIcon;
2929@property (weak ) IBOutlet NSMenuItem *miMenuTitleAppNameIconMono;
30+ @property (weak ) IBOutlet NSMenuItem *miMenuTitleAllIcon;
31+ @property (weak ) IBOutlet NSMenuItem *miMenuTitleAllIconMono;
3032@property (weak ) IBOutlet NSMenuItem *miAppIconLarge;
3133@property (weak ) IBOutlet NSMenuItem *miAppIconSmall;
3234@property (weak ) IBOutlet NSMenuItem *miAppIconSmallMono;
@@ -123,6 +125,16 @@ - (void)changeMenuTitle
123125 monochrome: YES translucent: NO ];
124126 break ;
125127 }
128+ case 5 : {
129+ self.sbItem .title = @" " ;
130+ self.sbItem .image = [self makeAllAppsImageMonochrome: NO ];
131+ break ;
132+ }
133+ case 6 : {
134+ self.sbItem .title = @" " ;
135+ self.sbItem .image = [self makeAllAppsImageMonochrome: YES ];
136+ break ;
137+ }
126138 default :
127139 break ;
128140 }
@@ -472,6 +484,36 @@ + (NSImage *)resizeImage:(NSImage *)image small:(BOOL)small
472484 return resultImage;
473485}
474486
487+ - (NSImage *)makeAllAppsImageMonochrome : (BOOL )monochrome {
488+ NSImage *tmpImage = [[NSImage alloc ] initWithSize: NSMakeSize (SMALL_ICON_WIDTH * [self .apps count ], SMALL_ICON_WIDTH)];
489+ [tmpImage lockFocus ];
490+
491+ NSInteger appIndex = 0 ;
492+ for (NSRunningApplication *app in self.apps ) {
493+ NSImage *appImage = app.icon ;
494+ BOOL translucent = [app isHidden ];
495+
496+ [appImage drawInRect: NSMakeRect (SMALL_ICON_WIDTH * appIndex, 0 , SMALL_ICON_WIDTH, SMALL_ICON_WIDTH)
497+ fromRect: NSMakeRect (0 , 0 , appImage.size.width, appImage.size.height)
498+ operation: NSCompositeSourceOver
499+ fraction: translucent ? 0 .3f : 1 .0f ];
500+
501+ if ([app ownsMenuBar ]) {
502+ [[NSColor blackColor ] set ];
503+ NSRectFill (NSMakeRect (SMALL_ICON_WIDTH * appIndex, 0 , SMALL_ICON_WIDTH, 1 ));
504+ }
505+
506+ appIndex++;
507+ }
508+ [tmpImage unlockFocus ];
509+
510+ if (monochrome) {
511+ tmpImage = [tmpImage grayscaleImage ];
512+ }
513+
514+ return tmpImage;
515+ }
516+
475517#pragma mark - User Defaults
476518
477519#define UD [NSUserDefaults standardUserDefaults ]
@@ -500,6 +542,8 @@ - (void)recheckMenuItems {
500542 self.miMenuTitleIconMono .state = self.iMenuTitle == 2 ? NSOnState : NSOffState ;
501543 self.miMenuTitleAppNameIcon .state = self.iMenuTitle == 3 ? NSOnState : NSOffState ;
502544 self.miMenuTitleAppNameIconMono .state = self.iMenuTitle == 4 ? NSOnState : NSOffState ;
545+ self.miMenuTitleAllIcon .state = self.iMenuTitle == 5 ? NSOnState : NSOffState ;
546+ self.miMenuTitleAllIconMono .state = self.iMenuTitle == 6 ? NSOnState : NSOffState ;
503547
504548 self.miAppIconLarge .state = self.iIconSmall == 0 ? NSOnState : NSOffState ;
505549 self.miAppIconSmall .state = self.iIconSmall == 1 ? NSOnState : NSOffState ;
0 commit comments