Skip to content

Commit 3dc1bfa

Browse files
author
kenta.hatano
committed
すべてのアプリアイコンを表示できるように(キモい)
1 parent c08fbe8 commit 3dc1bfa

3 files changed

Lines changed: 61 additions & 3 deletions

File tree

SwitchMenu/AppDelegate.m

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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;

SwitchMenu/Base.lproj/MainMenu.xib

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="12121" systemVersion="17G65" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
2+
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
33
<dependencies>
44
<deployment identifier="macosx"/>
5-
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="12121"/>
5+
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
66
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
77
</dependencies>
88
<objects>
@@ -21,6 +21,8 @@
2121
<outlet property="miAppIconSmallMono" destination="nlZ-ei-3A2" id="vyI-Ot-zdF"/>
2222
<outlet property="miHideApp" destination="Xqw-HY-SFm" id="hVJ-GJ-CPr"/>
2323
<outlet property="miHideOthers" destination="WIX-8J-irt" id="ph5-8a-LD1"/>
24+
<outlet property="miMenuTitleAllIcon" destination="M1U-46-yjx" id="BxD-nL-Cgl"/>
25+
<outlet property="miMenuTitleAllIconMono" destination="nQV-cm-rbF" id="phB-zF-Z7L"/>
2426
<outlet property="miMenuTitleAppName" destination="gcT-x2-bUe" id="ZcX-b9-bAZ"/>
2527
<outlet property="miMenuTitleAppNameIcon" destination="G4Z-eH-z1E" id="6Y3-sc-SQw"/>
2628
<outlet property="miMenuTitleAppNameIconMono" destination="e6d-rC-hXz" id="ZED-vg-mUT"/>
@@ -767,6 +769,18 @@
767769
<action selector="setMenuTitle:" target="Voe-Tx-rLC" id="AFU-n3-DRu"/>
768770
</connections>
769771
</menuItem>
772+
<menuItem title="All App Icons" tag="5" id="M1U-46-yjx">
773+
<modifierMask key="keyEquivalentModifierMask"/>
774+
<connections>
775+
<action selector="setMenuTitle:" target="Voe-Tx-rLC" id="dDQ-gd-8hI"/>
776+
</connections>
777+
</menuItem>
778+
<menuItem title="All App Icons (Grayscale)" tag="6" id="nQV-cm-rbF">
779+
<modifierMask key="keyEquivalentModifierMask"/>
780+
<connections>
781+
<action selector="setMenuTitle:" target="Voe-Tx-rLC" id="iqK-3N-OKt"/>
782+
</connections>
783+
</menuItem>
770784
<menuItem isSeparatorItem="YES" id="CYa-uN-xFL"/>
771785
<menuItem title="App Icons" enabled="NO" id="lN1-go-d0M">
772786
<modifierMask key="keyEquivalentModifierMask"/>
@@ -833,7 +847,7 @@
833847
<connections>
834848
<outlet property="delegate" destination="-2" id="Db0-MA-GtS"/>
835849
</connections>
836-
<point key="canvasLocation" x="540" y="783.5"/>
850+
<point key="canvasLocation" x="370" y="642"/>
837851
</menu>
838852
<userDefaultsController representsSharedInstance="YES" id="9su-vE-kwj"/>
839853
</objects>

0 commit comments

Comments
 (0)