├── img
├── icon1.png
├── icon2.png
└── readmeImg
│ ├── 01.png
│ ├── 02.png
│ ├── 03.png
│ ├── 04.png
│ ├── 05.png
│ ├── 06.png
│ └── 07.png
├── MacMenubarApp
├── Images.xcassets
│ ├── statusIcon1.imageset
│ │ ├── icon1.png
│ │ └── Contents.json
│ ├── statusIcon2.imageset
│ │ ├── icon2.png
│ │ └── Contents.json
│ └── AppIcon.appiconset
│ │ └── Contents.json
├── Info.plist
├── AppDelegate.swift
└── Base.lproj
│ └── MainMenu.xib
├── MacMenubarApp.xcodeproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcuserdata
│ │ └── alessandro.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcshareddata
│ │ └── MacMenubarApp.xccheckout
├── xcuserdata
│ └── alessandro.xcuserdatad
│ │ └── xcschemes
│ │ ├── xcschememanagement.plist
│ │ └── MacMenubarApp.xcscheme
└── project.pbxproj
├── README.md
└── MacMenubarAppTests
├── Info.plist
└── MacMenubarAppTests.swift
/img/icon1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alessandroiori/osx-mac-menubar-app/HEAD/img/icon1.png
--------------------------------------------------------------------------------
/img/icon2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alessandroiori/osx-mac-menubar-app/HEAD/img/icon2.png
--------------------------------------------------------------------------------
/img/readmeImg/01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alessandroiori/osx-mac-menubar-app/HEAD/img/readmeImg/01.png
--------------------------------------------------------------------------------
/img/readmeImg/02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alessandroiori/osx-mac-menubar-app/HEAD/img/readmeImg/02.png
--------------------------------------------------------------------------------
/img/readmeImg/03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alessandroiori/osx-mac-menubar-app/HEAD/img/readmeImg/03.png
--------------------------------------------------------------------------------
/img/readmeImg/04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alessandroiori/osx-mac-menubar-app/HEAD/img/readmeImg/04.png
--------------------------------------------------------------------------------
/img/readmeImg/05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alessandroiori/osx-mac-menubar-app/HEAD/img/readmeImg/05.png
--------------------------------------------------------------------------------
/img/readmeImg/06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alessandroiori/osx-mac-menubar-app/HEAD/img/readmeImg/06.png
--------------------------------------------------------------------------------
/img/readmeImg/07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alessandroiori/osx-mac-menubar-app/HEAD/img/readmeImg/07.png
--------------------------------------------------------------------------------
/MacMenubarApp/Images.xcassets/statusIcon1.imageset/icon1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alessandroiori/osx-mac-menubar-app/HEAD/MacMenubarApp/Images.xcassets/statusIcon1.imageset/icon1.png
--------------------------------------------------------------------------------
/MacMenubarApp/Images.xcassets/statusIcon2.imageset/icon2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alessandroiori/osx-mac-menubar-app/HEAD/MacMenubarApp/Images.xcassets/statusIcon2.imageset/icon2.png
--------------------------------------------------------------------------------
/MacMenubarApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/MacMenubarApp.xcodeproj/project.xcworkspace/xcuserdata/alessandro.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alessandroiori/osx-mac-menubar-app/HEAD/MacMenubarApp.xcodeproj/project.xcworkspace/xcuserdata/alessandro.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/MacMenubarApp/Images.xcassets/statusIcon1.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "icon1.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/MacMenubarApp/Images.xcassets/statusIcon2.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "icon2.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/MacMenubarApp.xcodeproj/xcuserdata/alessandro.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | MacMenubarApp.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | D2EC3B001AF67AD0001A8F14
16 |
17 | primary
18 |
19 |
20 | D2EC3B101AF67AD0001A8F14
21 |
22 | primary
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## OS X Mac Menubar App
2 | This demo application shows the hidden files in the Finder.
3 |
4 | 
5 |
6 | 
7 |
8 | 
9 |
10 | 
11 |
12 | 
13 |
14 | 
15 |
16 |
--------------------------------------------------------------------------------
/MacMenubarAppTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | it.alessandroiori.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/MacMenubarAppTests/MacMenubarAppTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MacMenubarAppTests.swift
3 | // MacMenubarAppTests
4 | //
5 | // Created by Alessandro on 03/05/15.
6 | // Copyright (c) 2015 Alessandro Iori. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 | import XCTest
11 |
12 | class MacMenubarAppTests: XCTestCase {
13 |
14 | override func setUp() {
15 | super.setUp()
16 | // Put setup code here. This method is called before the invocation of each test method in the class.
17 | }
18 |
19 | override func tearDown() {
20 | // Put teardown code here. This method is called after the invocation of each test method in the class.
21 | super.tearDown()
22 | }
23 |
24 | func testExample() {
25 | // This is an example of a functional test case.
26 | XCTAssert(true, "Pass")
27 | }
28 |
29 | func testPerformanceExample() {
30 | // This is an example of a performance test case.
31 | self.measureBlock() {
32 | // Put the code you want to measure the time of here.
33 | }
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/MacMenubarApp/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "mac",
5 | "size" : "16x16",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "mac",
10 | "size" : "16x16",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "mac",
15 | "size" : "32x32",
16 | "scale" : "1x"
17 | },
18 | {
19 | "idiom" : "mac",
20 | "size" : "32x32",
21 | "scale" : "2x"
22 | },
23 | {
24 | "idiom" : "mac",
25 | "size" : "128x128",
26 | "scale" : "1x"
27 | },
28 | {
29 | "idiom" : "mac",
30 | "size" : "128x128",
31 | "scale" : "2x"
32 | },
33 | {
34 | "idiom" : "mac",
35 | "size" : "256x256",
36 | "scale" : "1x"
37 | },
38 | {
39 | "idiom" : "mac",
40 | "size" : "256x256",
41 | "scale" : "2x"
42 | },
43 | {
44 | "idiom" : "mac",
45 | "size" : "512x512",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "mac",
50 | "size" : "512x512",
51 | "scale" : "2x"
52 | }
53 | ],
54 | "info" : {
55 | "version" : 1,
56 | "author" : "xcode"
57 | }
58 | }
--------------------------------------------------------------------------------
/MacMenubarApp/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | it.alessandroiori.$(PRODUCT_NAME:rfc1034identifier)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | $(MACOSX_DEPLOYMENT_TARGET)
27 | LSUIElement
28 |
29 | NSHumanReadableCopyright
30 | Copyright © 2015 Alessandro Iori. All rights reserved.
31 | NSMainNibFile
32 | MainMenu
33 | NSPrincipalClass
34 | NSApplication
35 |
36 |
37 |
--------------------------------------------------------------------------------
/MacMenubarApp.xcodeproj/project.xcworkspace/xcshareddata/MacMenubarApp.xccheckout:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDESourceControlProjectFavoriteDictionaryKey
6 |
7 | IDESourceControlProjectIdentifier
8 | 51B8D8D9-6912-404A-83AC-C64036539AD2
9 | IDESourceControlProjectName
10 | MacMenubarApp
11 | IDESourceControlProjectOriginsDictionary
12 |
13 | A367305F03C7EC126E625242C9A72564C0AABD14
14 | https://github.com/alessandroiori/MacMenubarApp.git
15 |
16 | IDESourceControlProjectPath
17 | MacMenubarApp.xcodeproj
18 | IDESourceControlProjectRelativeInstallPathDictionary
19 |
20 | A367305F03C7EC126E625242C9A72564C0AABD14
21 | ../..
22 |
23 | IDESourceControlProjectURL
24 | https://github.com/alessandroiori/MacMenubarApp.git
25 | IDESourceControlProjectVersion
26 | 111
27 | IDESourceControlProjectWCCIdentifier
28 | A367305F03C7EC126E625242C9A72564C0AABD14
29 | IDESourceControlProjectWCConfigurations
30 |
31 |
32 | IDESourceControlRepositoryExtensionIdentifierKey
33 | public.vcs.git
34 | IDESourceControlWCCIdentifierKey
35 | A367305F03C7EC126E625242C9A72564C0AABD14
36 | IDESourceControlWCCName
37 | MacMenubarApp
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/MacMenubarApp/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.swift
3 | // MacMenubarApp
4 | //
5 | // Created by Alessandro Iori on 03/05/15.
6 | //
7 | // https://github.com/alessandroiori
8 | //
9 |
10 | import Cocoa
11 |
12 | @NSApplicationMain
13 | class AppDelegate: NSObject, NSApplicationDelegate {
14 |
15 | @IBOutlet weak var window: NSWindow!
16 | @IBOutlet weak var statusMenu: NSMenu!
17 |
18 | let statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-1)
19 | let icon1 = NSImage(named: "statusIcon1")
20 | let icon2 = NSImage(named: "statusIcon2")
21 |
22 | func KillAllFinder(){
23 | let killtask = NSTask()
24 | killtask.launchPath = "/usr/bin/killall"
25 | killtask.arguments = ["Finder"]
26 | killtask.launch()
27 | }
28 |
29 | func FinderShow(YN: String){
30 | let task = NSTask()
31 | task.launchPath = "/usr/bin/defaults"
32 | task.arguments = ["write", "com.apple.finder", "AppleShowAllFiles", YN]
33 | task.launch()
34 | task.waitUntilExit()
35 | }
36 |
37 | func applicationDidFinishLaunching(aNotification: NSNotification) {
38 | icon1?.setTemplate(true)
39 | icon2?.setTemplate(true)
40 |
41 | statusItem.image = icon1
42 | statusItem.menu = statusMenu
43 | }
44 |
45 | @IBAction func menuClicked(sender: NSMenuItem) {
46 |
47 | if(sender.state == NSOnState){
48 | statusItem.image = icon1
49 | sender.state = NSOffState
50 | FinderShow("NO")
51 | } else {
52 | statusItem.image = icon2
53 | sender.state = NSOnState
54 | FinderShow("YES")
55 | }
56 |
57 | KillAllFinder()
58 | }
59 |
60 | @IBAction func menuQuitClicked(sender: AnyObject) {
61 | FinderShow("NO")
62 | KillAllFinder()
63 |
64 | NSApplication.sharedApplication().terminate(self)
65 | }
66 | }
67 |
68 |
--------------------------------------------------------------------------------
/MacMenubarApp.xcodeproj/xcuserdata/alessandro.xcuserdatad/xcschemes/MacMenubarApp.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
38 |
39 |
44 |
45 |
47 |
53 |
54 |
55 |
56 |
57 |
63 |
64 |
65 |
66 |
75 |
77 |
83 |
84 |
85 |
86 |
87 |
88 |
94 |
96 |
102 |
103 |
104 |
105 |
107 |
108 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/MacMenubarApp.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | D2EC3B071AF67AD0001A8F14 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2EC3B061AF67AD0001A8F14 /* AppDelegate.swift */; };
11 | D2EC3B091AF67AD0001A8F14 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D2EC3B081AF67AD0001A8F14 /* Images.xcassets */; };
12 | D2EC3B0C1AF67AD0001A8F14 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = D2EC3B0A1AF67AD0001A8F14 /* MainMenu.xib */; };
13 | D2EC3B181AF67AD0001A8F14 /* MacMenubarAppTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2EC3B171AF67AD0001A8F14 /* MacMenubarAppTests.swift */; };
14 | /* End PBXBuildFile section */
15 |
16 | /* Begin PBXContainerItemProxy section */
17 | D2EC3B121AF67AD0001A8F14 /* PBXContainerItemProxy */ = {
18 | isa = PBXContainerItemProxy;
19 | containerPortal = D2EC3AF91AF67AD0001A8F14 /* Project object */;
20 | proxyType = 1;
21 | remoteGlobalIDString = D2EC3B001AF67AD0001A8F14;
22 | remoteInfo = MacMenubarApp;
23 | };
24 | /* End PBXContainerItemProxy section */
25 |
26 | /* Begin PBXFileReference section */
27 | D2EC3B011AF67AD0001A8F14 /* MacMenubarApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MacMenubarApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
28 | D2EC3B051AF67AD0001A8F14 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
29 | D2EC3B061AF67AD0001A8F14 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
30 | D2EC3B081AF67AD0001A8F14 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; };
31 | D2EC3B0B1AF67AD0001A8F14 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; };
32 | D2EC3B111AF67AD0001A8F14 /* MacMenubarAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MacMenubarAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
33 | D2EC3B161AF67AD0001A8F14 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
34 | D2EC3B171AF67AD0001A8F14 /* MacMenubarAppTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MacMenubarAppTests.swift; sourceTree = ""; };
35 | /* End PBXFileReference section */
36 |
37 | /* Begin PBXFrameworksBuildPhase section */
38 | D2EC3AFE1AF67AD0001A8F14 /* Frameworks */ = {
39 | isa = PBXFrameworksBuildPhase;
40 | buildActionMask = 2147483647;
41 | files = (
42 | );
43 | runOnlyForDeploymentPostprocessing = 0;
44 | };
45 | D2EC3B0E1AF67AD0001A8F14 /* Frameworks */ = {
46 | isa = PBXFrameworksBuildPhase;
47 | buildActionMask = 2147483647;
48 | files = (
49 | );
50 | runOnlyForDeploymentPostprocessing = 0;
51 | };
52 | /* End PBXFrameworksBuildPhase section */
53 |
54 | /* Begin PBXGroup section */
55 | D2EC3AF81AF67AD0001A8F14 = {
56 | isa = PBXGroup;
57 | children = (
58 | D2EC3B031AF67AD0001A8F14 /* MacMenubarApp */,
59 | D2EC3B141AF67AD0001A8F14 /* MacMenubarAppTests */,
60 | D2EC3B021AF67AD0001A8F14 /* Products */,
61 | );
62 | sourceTree = "";
63 | };
64 | D2EC3B021AF67AD0001A8F14 /* Products */ = {
65 | isa = PBXGroup;
66 | children = (
67 | D2EC3B011AF67AD0001A8F14 /* MacMenubarApp.app */,
68 | D2EC3B111AF67AD0001A8F14 /* MacMenubarAppTests.xctest */,
69 | );
70 | name = Products;
71 | sourceTree = "";
72 | };
73 | D2EC3B031AF67AD0001A8F14 /* MacMenubarApp */ = {
74 | isa = PBXGroup;
75 | children = (
76 | D2EC3B061AF67AD0001A8F14 /* AppDelegate.swift */,
77 | D2EC3B081AF67AD0001A8F14 /* Images.xcassets */,
78 | D2EC3B0A1AF67AD0001A8F14 /* MainMenu.xib */,
79 | D2EC3B041AF67AD0001A8F14 /* Supporting Files */,
80 | );
81 | path = MacMenubarApp;
82 | sourceTree = "";
83 | };
84 | D2EC3B041AF67AD0001A8F14 /* Supporting Files */ = {
85 | isa = PBXGroup;
86 | children = (
87 | D2EC3B051AF67AD0001A8F14 /* Info.plist */,
88 | );
89 | name = "Supporting Files";
90 | sourceTree = "";
91 | };
92 | D2EC3B141AF67AD0001A8F14 /* MacMenubarAppTests */ = {
93 | isa = PBXGroup;
94 | children = (
95 | D2EC3B171AF67AD0001A8F14 /* MacMenubarAppTests.swift */,
96 | D2EC3B151AF67AD0001A8F14 /* Supporting Files */,
97 | );
98 | path = MacMenubarAppTests;
99 | sourceTree = "";
100 | };
101 | D2EC3B151AF67AD0001A8F14 /* Supporting Files */ = {
102 | isa = PBXGroup;
103 | children = (
104 | D2EC3B161AF67AD0001A8F14 /* Info.plist */,
105 | );
106 | name = "Supporting Files";
107 | sourceTree = "";
108 | };
109 | /* End PBXGroup section */
110 |
111 | /* Begin PBXNativeTarget section */
112 | D2EC3B001AF67AD0001A8F14 /* MacMenubarApp */ = {
113 | isa = PBXNativeTarget;
114 | buildConfigurationList = D2EC3B1B1AF67AD0001A8F14 /* Build configuration list for PBXNativeTarget "MacMenubarApp" */;
115 | buildPhases = (
116 | D2EC3AFD1AF67AD0001A8F14 /* Sources */,
117 | D2EC3AFE1AF67AD0001A8F14 /* Frameworks */,
118 | D2EC3AFF1AF67AD0001A8F14 /* Resources */,
119 | );
120 | buildRules = (
121 | );
122 | dependencies = (
123 | );
124 | name = MacMenubarApp;
125 | productName = MacMenubarApp;
126 | productReference = D2EC3B011AF67AD0001A8F14 /* MacMenubarApp.app */;
127 | productType = "com.apple.product-type.application";
128 | };
129 | D2EC3B101AF67AD0001A8F14 /* MacMenubarAppTests */ = {
130 | isa = PBXNativeTarget;
131 | buildConfigurationList = D2EC3B1E1AF67AD0001A8F14 /* Build configuration list for PBXNativeTarget "MacMenubarAppTests" */;
132 | buildPhases = (
133 | D2EC3B0D1AF67AD0001A8F14 /* Sources */,
134 | D2EC3B0E1AF67AD0001A8F14 /* Frameworks */,
135 | D2EC3B0F1AF67AD0001A8F14 /* Resources */,
136 | );
137 | buildRules = (
138 | );
139 | dependencies = (
140 | D2EC3B131AF67AD0001A8F14 /* PBXTargetDependency */,
141 | );
142 | name = MacMenubarAppTests;
143 | productName = MacMenubarAppTests;
144 | productReference = D2EC3B111AF67AD0001A8F14 /* MacMenubarAppTests.xctest */;
145 | productType = "com.apple.product-type.bundle.unit-test";
146 | };
147 | /* End PBXNativeTarget section */
148 |
149 | /* Begin PBXProject section */
150 | D2EC3AF91AF67AD0001A8F14 /* Project object */ = {
151 | isa = PBXProject;
152 | attributes = {
153 | LastUpgradeCheck = 0630;
154 | ORGANIZATIONNAME = "Alessandro Iori";
155 | TargetAttributes = {
156 | D2EC3B001AF67AD0001A8F14 = {
157 | CreatedOnToolsVersion = 6.3.1;
158 | };
159 | D2EC3B101AF67AD0001A8F14 = {
160 | CreatedOnToolsVersion = 6.3.1;
161 | TestTargetID = D2EC3B001AF67AD0001A8F14;
162 | };
163 | };
164 | };
165 | buildConfigurationList = D2EC3AFC1AF67AD0001A8F14 /* Build configuration list for PBXProject "MacMenubarApp" */;
166 | compatibilityVersion = "Xcode 3.2";
167 | developmentRegion = English;
168 | hasScannedForEncodings = 0;
169 | knownRegions = (
170 | en,
171 | Base,
172 | );
173 | mainGroup = D2EC3AF81AF67AD0001A8F14;
174 | productRefGroup = D2EC3B021AF67AD0001A8F14 /* Products */;
175 | projectDirPath = "";
176 | projectRoot = "";
177 | targets = (
178 | D2EC3B001AF67AD0001A8F14 /* MacMenubarApp */,
179 | D2EC3B101AF67AD0001A8F14 /* MacMenubarAppTests */,
180 | );
181 | };
182 | /* End PBXProject section */
183 |
184 | /* Begin PBXResourcesBuildPhase section */
185 | D2EC3AFF1AF67AD0001A8F14 /* Resources */ = {
186 | isa = PBXResourcesBuildPhase;
187 | buildActionMask = 2147483647;
188 | files = (
189 | D2EC3B091AF67AD0001A8F14 /* Images.xcassets in Resources */,
190 | D2EC3B0C1AF67AD0001A8F14 /* MainMenu.xib in Resources */,
191 | );
192 | runOnlyForDeploymentPostprocessing = 0;
193 | };
194 | D2EC3B0F1AF67AD0001A8F14 /* Resources */ = {
195 | isa = PBXResourcesBuildPhase;
196 | buildActionMask = 2147483647;
197 | files = (
198 | );
199 | runOnlyForDeploymentPostprocessing = 0;
200 | };
201 | /* End PBXResourcesBuildPhase section */
202 |
203 | /* Begin PBXSourcesBuildPhase section */
204 | D2EC3AFD1AF67AD0001A8F14 /* Sources */ = {
205 | isa = PBXSourcesBuildPhase;
206 | buildActionMask = 2147483647;
207 | files = (
208 | D2EC3B071AF67AD0001A8F14 /* AppDelegate.swift in Sources */,
209 | );
210 | runOnlyForDeploymentPostprocessing = 0;
211 | };
212 | D2EC3B0D1AF67AD0001A8F14 /* Sources */ = {
213 | isa = PBXSourcesBuildPhase;
214 | buildActionMask = 2147483647;
215 | files = (
216 | D2EC3B181AF67AD0001A8F14 /* MacMenubarAppTests.swift in Sources */,
217 | );
218 | runOnlyForDeploymentPostprocessing = 0;
219 | };
220 | /* End PBXSourcesBuildPhase section */
221 |
222 | /* Begin PBXTargetDependency section */
223 | D2EC3B131AF67AD0001A8F14 /* PBXTargetDependency */ = {
224 | isa = PBXTargetDependency;
225 | target = D2EC3B001AF67AD0001A8F14 /* MacMenubarApp */;
226 | targetProxy = D2EC3B121AF67AD0001A8F14 /* PBXContainerItemProxy */;
227 | };
228 | /* End PBXTargetDependency section */
229 |
230 | /* Begin PBXVariantGroup section */
231 | D2EC3B0A1AF67AD0001A8F14 /* MainMenu.xib */ = {
232 | isa = PBXVariantGroup;
233 | children = (
234 | D2EC3B0B1AF67AD0001A8F14 /* Base */,
235 | );
236 | name = MainMenu.xib;
237 | sourceTree = "";
238 | };
239 | /* End PBXVariantGroup section */
240 |
241 | /* Begin XCBuildConfiguration section */
242 | D2EC3B191AF67AD0001A8F14 /* Debug */ = {
243 | isa = XCBuildConfiguration;
244 | buildSettings = {
245 | ALWAYS_SEARCH_USER_PATHS = NO;
246 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
247 | CLANG_CXX_LIBRARY = "libc++";
248 | CLANG_ENABLE_MODULES = YES;
249 | CLANG_ENABLE_OBJC_ARC = YES;
250 | CLANG_WARN_BOOL_CONVERSION = YES;
251 | CLANG_WARN_CONSTANT_CONVERSION = YES;
252 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
253 | CLANG_WARN_EMPTY_BODY = YES;
254 | CLANG_WARN_ENUM_CONVERSION = YES;
255 | CLANG_WARN_INT_CONVERSION = YES;
256 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
257 | CLANG_WARN_UNREACHABLE_CODE = YES;
258 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
259 | CODE_SIGN_IDENTITY = "-";
260 | COPY_PHASE_STRIP = NO;
261 | DEBUG_INFORMATION_FORMAT = dwarf;
262 | ENABLE_STRICT_OBJC_MSGSEND = YES;
263 | GCC_C_LANGUAGE_STANDARD = gnu99;
264 | GCC_DYNAMIC_NO_PIC = NO;
265 | GCC_NO_COMMON_BLOCKS = YES;
266 | GCC_OPTIMIZATION_LEVEL = 0;
267 | GCC_PREPROCESSOR_DEFINITIONS = (
268 | "DEBUG=1",
269 | "$(inherited)",
270 | );
271 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
272 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
273 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
274 | GCC_WARN_UNDECLARED_SELECTOR = YES;
275 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
276 | GCC_WARN_UNUSED_FUNCTION = YES;
277 | GCC_WARN_UNUSED_VARIABLE = YES;
278 | MACOSX_DEPLOYMENT_TARGET = 10.10;
279 | MTL_ENABLE_DEBUG_INFO = YES;
280 | ONLY_ACTIVE_ARCH = YES;
281 | SDKROOT = macosx;
282 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
283 | };
284 | name = Debug;
285 | };
286 | D2EC3B1A1AF67AD0001A8F14 /* Release */ = {
287 | isa = XCBuildConfiguration;
288 | buildSettings = {
289 | ALWAYS_SEARCH_USER_PATHS = NO;
290 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
291 | CLANG_CXX_LIBRARY = "libc++";
292 | CLANG_ENABLE_MODULES = YES;
293 | CLANG_ENABLE_OBJC_ARC = YES;
294 | CLANG_WARN_BOOL_CONVERSION = YES;
295 | CLANG_WARN_CONSTANT_CONVERSION = YES;
296 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
297 | CLANG_WARN_EMPTY_BODY = YES;
298 | CLANG_WARN_ENUM_CONVERSION = YES;
299 | CLANG_WARN_INT_CONVERSION = YES;
300 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
301 | CLANG_WARN_UNREACHABLE_CODE = YES;
302 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
303 | CODE_SIGN_IDENTITY = "-";
304 | COPY_PHASE_STRIP = NO;
305 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
306 | ENABLE_NS_ASSERTIONS = NO;
307 | ENABLE_STRICT_OBJC_MSGSEND = YES;
308 | GCC_C_LANGUAGE_STANDARD = gnu99;
309 | GCC_NO_COMMON_BLOCKS = YES;
310 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
311 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
312 | GCC_WARN_UNDECLARED_SELECTOR = YES;
313 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
314 | GCC_WARN_UNUSED_FUNCTION = YES;
315 | GCC_WARN_UNUSED_VARIABLE = YES;
316 | MACOSX_DEPLOYMENT_TARGET = 10.10;
317 | MTL_ENABLE_DEBUG_INFO = NO;
318 | SDKROOT = macosx;
319 | };
320 | name = Release;
321 | };
322 | D2EC3B1C1AF67AD0001A8F14 /* Debug */ = {
323 | isa = XCBuildConfiguration;
324 | buildSettings = {
325 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
326 | COMBINE_HIDPI_IMAGES = YES;
327 | INFOPLIST_FILE = MacMenubarApp/Info.plist;
328 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
329 | PRODUCT_NAME = "$(TARGET_NAME)";
330 | };
331 | name = Debug;
332 | };
333 | D2EC3B1D1AF67AD0001A8F14 /* Release */ = {
334 | isa = XCBuildConfiguration;
335 | buildSettings = {
336 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
337 | COMBINE_HIDPI_IMAGES = YES;
338 | INFOPLIST_FILE = MacMenubarApp/Info.plist;
339 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
340 | PRODUCT_NAME = "$(TARGET_NAME)";
341 | };
342 | name = Release;
343 | };
344 | D2EC3B1F1AF67AD0001A8F14 /* Debug */ = {
345 | isa = XCBuildConfiguration;
346 | buildSettings = {
347 | BUNDLE_LOADER = "$(TEST_HOST)";
348 | COMBINE_HIDPI_IMAGES = YES;
349 | FRAMEWORK_SEARCH_PATHS = (
350 | "$(DEVELOPER_FRAMEWORKS_DIR)",
351 | "$(inherited)",
352 | );
353 | GCC_PREPROCESSOR_DEFINITIONS = (
354 | "DEBUG=1",
355 | "$(inherited)",
356 | );
357 | INFOPLIST_FILE = MacMenubarAppTests/Info.plist;
358 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
359 | PRODUCT_NAME = "$(TARGET_NAME)";
360 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MacMenubarApp.app/Contents/MacOS/MacMenubarApp";
361 | };
362 | name = Debug;
363 | };
364 | D2EC3B201AF67AD0001A8F14 /* Release */ = {
365 | isa = XCBuildConfiguration;
366 | buildSettings = {
367 | BUNDLE_LOADER = "$(TEST_HOST)";
368 | COMBINE_HIDPI_IMAGES = YES;
369 | FRAMEWORK_SEARCH_PATHS = (
370 | "$(DEVELOPER_FRAMEWORKS_DIR)",
371 | "$(inherited)",
372 | );
373 | INFOPLIST_FILE = MacMenubarAppTests/Info.plist;
374 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
375 | PRODUCT_NAME = "$(TARGET_NAME)";
376 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MacMenubarApp.app/Contents/MacOS/MacMenubarApp";
377 | };
378 | name = Release;
379 | };
380 | /* End XCBuildConfiguration section */
381 |
382 | /* Begin XCConfigurationList section */
383 | D2EC3AFC1AF67AD0001A8F14 /* Build configuration list for PBXProject "MacMenubarApp" */ = {
384 | isa = XCConfigurationList;
385 | buildConfigurations = (
386 | D2EC3B191AF67AD0001A8F14 /* Debug */,
387 | D2EC3B1A1AF67AD0001A8F14 /* Release */,
388 | );
389 | defaultConfigurationIsVisible = 0;
390 | defaultConfigurationName = Release;
391 | };
392 | D2EC3B1B1AF67AD0001A8F14 /* Build configuration list for PBXNativeTarget "MacMenubarApp" */ = {
393 | isa = XCConfigurationList;
394 | buildConfigurations = (
395 | D2EC3B1C1AF67AD0001A8F14 /* Debug */,
396 | D2EC3B1D1AF67AD0001A8F14 /* Release */,
397 | );
398 | defaultConfigurationIsVisible = 0;
399 | };
400 | D2EC3B1E1AF67AD0001A8F14 /* Build configuration list for PBXNativeTarget "MacMenubarAppTests" */ = {
401 | isa = XCConfigurationList;
402 | buildConfigurations = (
403 | D2EC3B1F1AF67AD0001A8F14 /* Debug */,
404 | D2EC3B201AF67AD0001A8F14 /* Release */,
405 | );
406 | defaultConfigurationIsVisible = 0;
407 | };
408 | /* End XCConfigurationList section */
409 | };
410 | rootObject = D2EC3AF91AF67AD0001A8F14 /* Project object */;
411 | }
412 |
--------------------------------------------------------------------------------
/MacMenubarApp/Base.lproj/MainMenu.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
669 |
670 |
671 |
677 |
678 |
684 |
685 |
686 |
687 |
688 |
689 |
--------------------------------------------------------------------------------