├── HotelX.xcodeproj
├── xcuserdata
│ └── randy.xcuserdatad
│ │ ├── xcdebugger
│ │ └── Breakpoints_v2.xcbkptlist
│ │ └── xcschemes
│ │ ├── xcschememanagement.plist
│ │ └── Statut.xcscheme
├── project.xcworkspace
│ └── contents.xcworkspacedata
└── project.pbxproj
├── Statut
├── Settings.swift
├── PopupViewController.swift
├── EventMonitor.swift
├── Info.plist
├── AppDelegate.swift
├── PopupViewController.xib
└── Base.lproj
│ └── MainMenu.xib
├── readme.md
└── .gitignore
/HotelX.xcodeproj/xcuserdata/randy.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/HotelX.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Statut/Settings.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Settings.swift
3 | // Statut
4 | //
5 | // Created by 卢涛南 on 15/12/30.
6 | // Copyright © 2015年 randy. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | class Settings {
12 | static var popupWidth: CGFloat = 380
13 | static var popupHeight: CGFloat = 200
14 | static var url: String = "http://localhost:2000"
15 | }
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | # HotelX
2 |
3 | OS X menu bar app for [hotel](https://github.com/typicode/hotel), based on [Statut](https://github.com/djyde/Statut). Only 1.6MB
4 |
5 | # Screenshot
6 |
7 | 
8 |
9 | # Download
10 |
11 | [Download latest release](https://github.com/djyde/HotelX/releases)
12 |
13 | # License
14 |
15 | MIT License
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .AppleDouble
3 | .LSOverride
4 | *.xcuserstate
5 | # Icon must end with two \r
6 | Icon
7 |
8 |
9 | # Thumbnails
10 | ._*
11 |
12 | # Files that might appear in the root of a volume
13 | .DocumentRevisions-V100
14 | .fseventsd
15 | .Spotlight-V100
16 | .TemporaryItems
17 | .Trashes
18 | .VolumeIcon.icns
19 |
20 | # Directories potentially created on remote AFP share
21 | .AppleDB
22 | .AppleDesktop
23 | Network Trash Folder
24 | Temporary Items
25 | .apdisk
--------------------------------------------------------------------------------
/Statut/PopupViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PopupViewController.swift
3 | // Statut
4 | //
5 | // Created by 卢涛南 on 15/12/30.
6 | // Copyright © 2015年 randy. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 | import WebKit
11 |
12 | class PopupViewController: NSViewController {
13 |
14 | @IBOutlet weak var mainWebView: WebView!
15 |
16 | override func viewDidLoad() {
17 | super.viewDidLoad()
18 | // Do view setup here.
19 | mainWebView.mainFrame.loadRequest(NSURLRequest(URL: NSURL(string: Settings.url )!))
20 | }
21 |
22 | override func viewDidAppear() {
23 |
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/HotelX.xcodeproj/xcuserdata/randy.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Statut.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 252709091C33AA1400068C6D
16 |
17 | primary
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Statut/EventMonitor.swift:
--------------------------------------------------------------------------------
1 | //
2 | // EventMonitor.swift
3 | // Statut
4 | //
5 | // Created by 卢涛南 on 15/12/30.
6 | // Copyright © 2015年 randy. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class EventMonitor {
12 | private var monitor: AnyObject?
13 | private let mask: NSEventMask
14 | private let handler: NSEvent? -> ()
15 |
16 | internal init(mask: NSEventMask, handler: NSEvent? -> ()) {
17 | self.mask = mask
18 | self.handler = handler
19 | }
20 |
21 | deinit {
22 | stop()
23 | }
24 |
25 | internal func start() {
26 | monitor = NSEvent.addGlobalMonitorForEventsMatchingMask(mask, handler: handler)
27 | }
28 |
29 | internal func stop() {
30 | if monitor != nil {
31 | NSEvent.removeMonitor(monitor!)
32 | monitor = nil
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Statut/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LSUIElement
6 |
7 | NSAppTransportSecurity
8 |
9 | NSAllowsArbitraryLoads
10 |
11 |
12 | CFBundleDevelopmentRegion
13 | en
14 | CFBundleExecutable
15 | $(EXECUTABLE_NAME)
16 | CFBundleIconFile
17 |
18 | CFBundleIdentifier
19 | $(PRODUCT_BUNDLE_IDENTIFIER)
20 | CFBundleInfoDictionaryVersion
21 | 6.0
22 | CFBundleName
23 | $(PRODUCT_NAME)
24 | CFBundlePackageType
25 | APPL
26 | CFBundleShortVersionString
27 | 0.1.2
28 | CFBundleSignature
29 | ????
30 | CFBundleVersion
31 | Build201512301836
32 | LSMinimumSystemVersion
33 | $(MACOSX_DEPLOYMENT_TARGET)
34 | NSHumanReadableCopyright
35 | Copyright © 2015年 randy. All rights reserved.
36 | NSMainNibFile
37 | MainMenu
38 | NSPrincipalClass
39 | NSApplication
40 |
41 |
42 |
--------------------------------------------------------------------------------
/Statut/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.swift
3 | // Statut
4 | //
5 | // Created by 卢涛南 on 15/12/30.
6 | // Copyright © 2015年 randy. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | @NSApplicationMain
12 | class AppDelegate: NSObject, NSApplicationDelegate {
13 |
14 | @IBOutlet weak var window: NSWindow!
15 |
16 | let popover = NSPopover()
17 |
18 | let statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-2)
19 |
20 | var eventMonitor: EventMonitor?
21 |
22 |
23 | func applicationDidFinishLaunching(aNotification: NSNotification) {
24 | if let button = statusItem.button {
25 | button.image = NSImage(named: "StatusBarButtonImage")
26 | button.action = Selector("togglePopover:")
27 | }
28 |
29 | popover.contentViewController = PopupViewController(nibName: "PopupViewController", bundle: nil)
30 |
31 | initialPopupSize()
32 |
33 | eventMonitor = EventMonitor(mask: [.LeftMouseDownMask, .RightMouseDownMask]) { [unowned self] event in
34 | if self.popover.shown {
35 | self.closePopover(event)
36 | }
37 | }
38 | eventMonitor?.start()
39 | }
40 |
41 | func initialPopupSize(){
42 | popover.contentSize.width = Settings.popupWidth
43 | popover.contentSize.height = Settings.popupHeight
44 | }
45 |
46 | func applicationWillTerminate(aNotification: NSNotification) {
47 | // Insert code here to tear down your application
48 | }
49 |
50 | func showPopover(sender: AnyObject?){
51 | if let button = statusItem.button {
52 | popover.showRelativeToRect(button.bounds, ofView: button, preferredEdge: NSRectEdge.MinY)
53 | }
54 | eventMonitor?.start()
55 | }
56 |
57 | func closePopover(sender: AnyObject?){
58 | popover.performClose(sender)
59 | eventMonitor?.stop()
60 | }
61 |
62 | func togglePopover(sender: AnyObject?) {
63 | if (popover.shown) {
64 | closePopover(sender)
65 | } else {
66 | showPopover(sender)
67 | }
68 | }
69 | }
70 |
71 |
--------------------------------------------------------------------------------
/HotelX.xcodeproj/xcuserdata/randy.xcuserdatad/xcschemes/Statut.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
54 |
56 |
62 |
63 |
64 |
65 |
66 |
67 |
73 |
75 |
81 |
82 |
83 |
84 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/Statut/PopupViewController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/HotelX.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 2527090E1C33AA1400068C6D /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2527090D1C33AA1400068C6D /* AppDelegate.swift */; };
11 | 252709131C33AA1400068C6D /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 252709111C33AA1400068C6D /* MainMenu.xib */; };
12 | 252709201C33AF2C00068C6D /* PopupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2527091E1C33AF2C00068C6D /* PopupViewController.swift */; };
13 | 252709211C33AF2C00068C6D /* PopupViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2527091F1C33AF2C00068C6D /* PopupViewController.xib */; };
14 | 252709231C33C96900068C6D /* EventMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 252709221C33C96900068C6D /* EventMonitor.swift */; };
15 | 252709251C33D49200068C6D /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 252709241C33D49200068C6D /* Settings.swift */; };
16 | 252709271C33DC9200068C6D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 252709261C33DC9200068C6D /* Assets.xcassets */; };
17 | /* End PBXBuildFile section */
18 |
19 | /* Begin PBXFileReference section */
20 | 2527090A1C33AA1400068C6D /* HotelX.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HotelX.app; sourceTree = BUILT_PRODUCTS_DIR; };
21 | 2527090D1C33AA1400068C6D /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
22 | 252709121C33AA1400068C6D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; };
23 | 252709141C33AA1400068C6D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
24 | 2527091E1C33AF2C00068C6D /* PopupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PopupViewController.swift; sourceTree = ""; };
25 | 2527091F1C33AF2C00068C6D /* PopupViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PopupViewController.xib; sourceTree = ""; };
26 | 252709221C33C96900068C6D /* EventMonitor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EventMonitor.swift; sourceTree = ""; };
27 | 252709241C33D49200068C6D /* Settings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Settings.swift; sourceTree = ""; };
28 | 252709261C33DC9200068C6D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = ../../../.Trash/Assets.xcassets; sourceTree = ""; };
29 | /* End PBXFileReference section */
30 |
31 | /* Begin PBXFrameworksBuildPhase section */
32 | 252709071C33AA1400068C6D /* Frameworks */ = {
33 | isa = PBXFrameworksBuildPhase;
34 | buildActionMask = 2147483647;
35 | files = (
36 | );
37 | runOnlyForDeploymentPostprocessing = 0;
38 | };
39 | /* End PBXFrameworksBuildPhase section */
40 |
41 | /* Begin PBXGroup section */
42 | 252709011C33AA1400068C6D = {
43 | isa = PBXGroup;
44 | children = (
45 | 2527090C1C33AA1400068C6D /* Statut */,
46 | 2527090B1C33AA1400068C6D /* Products */,
47 | );
48 | sourceTree = "";
49 | };
50 | 2527090B1C33AA1400068C6D /* Products */ = {
51 | isa = PBXGroup;
52 | children = (
53 | 2527090A1C33AA1400068C6D /* HotelX.app */,
54 | );
55 | name = Products;
56 | sourceTree = "";
57 | };
58 | 2527090C1C33AA1400068C6D /* Statut */ = {
59 | isa = PBXGroup;
60 | children = (
61 | 252709261C33DC9200068C6D /* Assets.xcassets */,
62 | 2527090D1C33AA1400068C6D /* AppDelegate.swift */,
63 | 252709111C33AA1400068C6D /* MainMenu.xib */,
64 | 2527091E1C33AF2C00068C6D /* PopupViewController.swift */,
65 | 252709241C33D49200068C6D /* Settings.swift */,
66 | 252709221C33C96900068C6D /* EventMonitor.swift */,
67 | 2527091F1C33AF2C00068C6D /* PopupViewController.xib */,
68 | 252709141C33AA1400068C6D /* Info.plist */,
69 | );
70 | path = Statut;
71 | sourceTree = "";
72 | };
73 | /* End PBXGroup section */
74 |
75 | /* Begin PBXNativeTarget section */
76 | 252709091C33AA1400068C6D /* HotelX */ = {
77 | isa = PBXNativeTarget;
78 | buildConfigurationList = 252709171C33AA1400068C6D /* Build configuration list for PBXNativeTarget "HotelX" */;
79 | buildPhases = (
80 | 252709061C33AA1400068C6D /* Sources */,
81 | 252709071C33AA1400068C6D /* Frameworks */,
82 | 252709081C33AA1400068C6D /* Resources */,
83 | );
84 | buildRules = (
85 | );
86 | dependencies = (
87 | );
88 | name = HotelX;
89 | productName = Statut;
90 | productReference = 2527090A1C33AA1400068C6D /* HotelX.app */;
91 | productType = "com.apple.product-type.application";
92 | };
93 | /* End PBXNativeTarget section */
94 |
95 | /* Begin PBXProject section */
96 | 252709021C33AA1400068C6D /* Project object */ = {
97 | isa = PBXProject;
98 | attributes = {
99 | LastSwiftUpdateCheck = 0720;
100 | LastUpgradeCheck = 0720;
101 | ORGANIZATIONNAME = randy;
102 | TargetAttributes = {
103 | 252709091C33AA1400068C6D = {
104 | CreatedOnToolsVersion = 7.2;
105 | };
106 | };
107 | };
108 | buildConfigurationList = 252709051C33AA1400068C6D /* Build configuration list for PBXProject "HotelX" */;
109 | compatibilityVersion = "Xcode 3.2";
110 | developmentRegion = English;
111 | hasScannedForEncodings = 0;
112 | knownRegions = (
113 | en,
114 | Base,
115 | );
116 | mainGroup = 252709011C33AA1400068C6D;
117 | productRefGroup = 2527090B1C33AA1400068C6D /* Products */;
118 | projectDirPath = "";
119 | projectRoot = "";
120 | targets = (
121 | 252709091C33AA1400068C6D /* HotelX */,
122 | );
123 | };
124 | /* End PBXProject section */
125 |
126 | /* Begin PBXResourcesBuildPhase section */
127 | 252709081C33AA1400068C6D /* Resources */ = {
128 | isa = PBXResourcesBuildPhase;
129 | buildActionMask = 2147483647;
130 | files = (
131 | 252709131C33AA1400068C6D /* MainMenu.xib in Resources */,
132 | 252709271C33DC9200068C6D /* Assets.xcassets in Resources */,
133 | 252709211C33AF2C00068C6D /* PopupViewController.xib in Resources */,
134 | );
135 | runOnlyForDeploymentPostprocessing = 0;
136 | };
137 | /* End PBXResourcesBuildPhase section */
138 |
139 | /* Begin PBXSourcesBuildPhase section */
140 | 252709061C33AA1400068C6D /* Sources */ = {
141 | isa = PBXSourcesBuildPhase;
142 | buildActionMask = 2147483647;
143 | files = (
144 | 252709231C33C96900068C6D /* EventMonitor.swift in Sources */,
145 | 2527090E1C33AA1400068C6D /* AppDelegate.swift in Sources */,
146 | 252709251C33D49200068C6D /* Settings.swift in Sources */,
147 | 252709201C33AF2C00068C6D /* PopupViewController.swift in Sources */,
148 | );
149 | runOnlyForDeploymentPostprocessing = 0;
150 | };
151 | /* End PBXSourcesBuildPhase section */
152 |
153 | /* Begin PBXVariantGroup section */
154 | 252709111C33AA1400068C6D /* MainMenu.xib */ = {
155 | isa = PBXVariantGroup;
156 | children = (
157 | 252709121C33AA1400068C6D /* Base */,
158 | );
159 | name = MainMenu.xib;
160 | sourceTree = "";
161 | };
162 | /* End PBXVariantGroup section */
163 |
164 | /* Begin XCBuildConfiguration section */
165 | 252709151C33AA1400068C6D /* Debug */ = {
166 | isa = XCBuildConfiguration;
167 | buildSettings = {
168 | ALWAYS_SEARCH_USER_PATHS = NO;
169 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
170 | CLANG_CXX_LIBRARY = "libc++";
171 | CLANG_ENABLE_MODULES = YES;
172 | CLANG_ENABLE_OBJC_ARC = YES;
173 | CLANG_WARN_BOOL_CONVERSION = YES;
174 | CLANG_WARN_CONSTANT_CONVERSION = YES;
175 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
176 | CLANG_WARN_EMPTY_BODY = YES;
177 | CLANG_WARN_ENUM_CONVERSION = YES;
178 | CLANG_WARN_INT_CONVERSION = YES;
179 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
180 | CLANG_WARN_UNREACHABLE_CODE = YES;
181 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
182 | CODE_SIGN_IDENTITY = "-";
183 | COPY_PHASE_STRIP = NO;
184 | DEBUG_INFORMATION_FORMAT = dwarf;
185 | ENABLE_STRICT_OBJC_MSGSEND = YES;
186 | ENABLE_TESTABILITY = YES;
187 | GCC_C_LANGUAGE_STANDARD = gnu99;
188 | GCC_DYNAMIC_NO_PIC = NO;
189 | GCC_NO_COMMON_BLOCKS = YES;
190 | GCC_OPTIMIZATION_LEVEL = 0;
191 | GCC_PREPROCESSOR_DEFINITIONS = (
192 | "DEBUG=1",
193 | "$(inherited)",
194 | );
195 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
196 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
197 | GCC_WARN_UNDECLARED_SELECTOR = YES;
198 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
199 | GCC_WARN_UNUSED_FUNCTION = YES;
200 | GCC_WARN_UNUSED_VARIABLE = YES;
201 | MACOSX_DEPLOYMENT_TARGET = 10.10;
202 | MTL_ENABLE_DEBUG_INFO = YES;
203 | ONLY_ACTIVE_ARCH = YES;
204 | SDKROOT = macosx;
205 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
206 | };
207 | name = Debug;
208 | };
209 | 252709161C33AA1400068C6D /* Release */ = {
210 | isa = XCBuildConfiguration;
211 | buildSettings = {
212 | ALWAYS_SEARCH_USER_PATHS = NO;
213 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
214 | CLANG_CXX_LIBRARY = "libc++";
215 | CLANG_ENABLE_MODULES = YES;
216 | CLANG_ENABLE_OBJC_ARC = YES;
217 | CLANG_WARN_BOOL_CONVERSION = YES;
218 | CLANG_WARN_CONSTANT_CONVERSION = YES;
219 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
220 | CLANG_WARN_EMPTY_BODY = YES;
221 | CLANG_WARN_ENUM_CONVERSION = YES;
222 | CLANG_WARN_INT_CONVERSION = YES;
223 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
224 | CLANG_WARN_UNREACHABLE_CODE = YES;
225 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
226 | CODE_SIGN_IDENTITY = "-";
227 | COPY_PHASE_STRIP = NO;
228 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
229 | ENABLE_NS_ASSERTIONS = NO;
230 | ENABLE_STRICT_OBJC_MSGSEND = YES;
231 | GCC_C_LANGUAGE_STANDARD = gnu99;
232 | GCC_NO_COMMON_BLOCKS = YES;
233 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
234 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
235 | GCC_WARN_UNDECLARED_SELECTOR = YES;
236 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
237 | GCC_WARN_UNUSED_FUNCTION = YES;
238 | GCC_WARN_UNUSED_VARIABLE = YES;
239 | MACOSX_DEPLOYMENT_TARGET = 10.10;
240 | MTL_ENABLE_DEBUG_INFO = NO;
241 | SDKROOT = macosx;
242 | };
243 | name = Release;
244 | };
245 | 252709181C33AA1400068C6D /* Debug */ = {
246 | isa = XCBuildConfiguration;
247 | buildSettings = {
248 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
249 | COMBINE_HIDPI_IMAGES = YES;
250 | INFOPLIST_FILE = Statut/Info.plist;
251 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
252 | MACOSX_DEPLOYMENT_TARGET = 10.10;
253 | PRODUCT_BUNDLE_IDENTIFIER = io.github.djyde.Statut;
254 | PRODUCT_NAME = HotelX;
255 | };
256 | name = Debug;
257 | };
258 | 252709191C33AA1400068C6D /* Release */ = {
259 | isa = XCBuildConfiguration;
260 | buildSettings = {
261 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
262 | COMBINE_HIDPI_IMAGES = YES;
263 | INFOPLIST_FILE = Statut/Info.plist;
264 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
265 | MACOSX_DEPLOYMENT_TARGET = 10.10;
266 | PRODUCT_BUNDLE_IDENTIFIER = io.github.djyde.Statut;
267 | PRODUCT_NAME = HotelX;
268 | };
269 | name = Release;
270 | };
271 | /* End XCBuildConfiguration section */
272 |
273 | /* Begin XCConfigurationList section */
274 | 252709051C33AA1400068C6D /* Build configuration list for PBXProject "HotelX" */ = {
275 | isa = XCConfigurationList;
276 | buildConfigurations = (
277 | 252709151C33AA1400068C6D /* Debug */,
278 | 252709161C33AA1400068C6D /* Release */,
279 | );
280 | defaultConfigurationIsVisible = 0;
281 | defaultConfigurationName = Release;
282 | };
283 | 252709171C33AA1400068C6D /* Build configuration list for PBXNativeTarget "HotelX" */ = {
284 | isa = XCConfigurationList;
285 | buildConfigurations = (
286 | 252709181C33AA1400068C6D /* Debug */,
287 | 252709191C33AA1400068C6D /* Release */,
288 | );
289 | defaultConfigurationIsVisible = 0;
290 | defaultConfigurationName = Release;
291 | };
292 | /* End XCConfigurationList section */
293 | };
294 | rootObject = 252709021C33AA1400068C6D /* Project object */;
295 | }
296 |
--------------------------------------------------------------------------------
/Statut/Base.lproj/MainMenu.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
670 |
671 |
672 |
673 |
674 |
675 |
676 |
677 |
678 |
679 |
680 |
681 |
682 |
--------------------------------------------------------------------------------