Browse Source

Initial commit of GUI app

Thomas Buck 9 years ago
parent
commit
8e2f065c97

+ 1
- 0
.gitignore View File

@@ -1,3 +1,4 @@
1 1
 .DS_Store
2 2
 *.o
3 3
 bin
4
+build

+ 297
- 0
SerialGamepad.xcodeproj/project.pbxproj View File

@@ -0,0 +1,297 @@
1
+// !$*UTF8*$!
2
+{
3
+	archiveVersion = 1;
4
+	classes = {
5
+	};
6
+	objectVersion = 46;
7
+	objects = {
8
+
9
+/* Begin PBXBuildFile section */
10
+		E9B6A1D21C1F623B00DA3C80 /* MainWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = E9B6A1D11C1F623B00DA3C80 /* MainWindow.m */; };
11
+		E9F5FFB21C1F5E2B00AA4E3B /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F5FFB11C1F5E2B00AA4E3B /* AppDelegate.m */; };
12
+		E9F5FFB51C1F5E2B00AA4E3B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F5FFB41C1F5E2B00AA4E3B /* main.m */; };
13
+		E9F5FFB71C1F5E2B00AA4E3B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E9F5FFB61C1F5E2B00AA4E3B /* Assets.xcassets */; };
14
+		E9F5FFBA1C1F5E2B00AA4E3B /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F5FFB81C1F5E2B00AA4E3B /* MainMenu.xib */; };
15
+/* End PBXBuildFile section */
16
+
17
+/* Begin PBXFileReference section */
18
+		E9B6A1D01C1F623B00DA3C80 /* MainWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainWindow.h; sourceTree = "<group>"; };
19
+		E9B6A1D11C1F623B00DA3C80 /* MainWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainWindow.m; sourceTree = "<group>"; };
20
+		E9F5FFAD1C1F5E2B00AA4E3B /* SerialGamepad.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SerialGamepad.app; sourceTree = BUILT_PRODUCTS_DIR; };
21
+		E9F5FFB01C1F5E2B00AA4E3B /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
22
+		E9F5FFB11C1F5E2B00AA4E3B /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
23
+		E9F5FFB41C1F5E2B00AA4E3B /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
24
+		E9F5FFB61C1F5E2B00AA4E3B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
25
+		E9F5FFB91C1F5E2B00AA4E3B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
26
+		E9F5FFBB1C1F5E2B00AA4E3B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
27
+/* End PBXFileReference section */
28
+
29
+/* Begin PBXFrameworksBuildPhase section */
30
+		E9F5FFAA1C1F5E2B00AA4E3B /* Frameworks */ = {
31
+			isa = PBXFrameworksBuildPhase;
32
+			buildActionMask = 2147483647;
33
+			files = (
34
+			);
35
+			runOnlyForDeploymentPostprocessing = 0;
36
+		};
37
+/* End PBXFrameworksBuildPhase section */
38
+
39
+/* Begin PBXGroup section */
40
+		E9F5FFA41C1F5E2B00AA4E3B = {
41
+			isa = PBXGroup;
42
+			children = (
43
+				E9F5FFAF1C1F5E2B00AA4E3B /* SerialGamepad */,
44
+				E9F5FFAE1C1F5E2B00AA4E3B /* Products */,
45
+			);
46
+			sourceTree = "<group>";
47
+		};
48
+		E9F5FFAE1C1F5E2B00AA4E3B /* Products */ = {
49
+			isa = PBXGroup;
50
+			children = (
51
+				E9F5FFAD1C1F5E2B00AA4E3B /* SerialGamepad.app */,
52
+			);
53
+			name = Products;
54
+			sourceTree = "<group>";
55
+		};
56
+		E9F5FFAF1C1F5E2B00AA4E3B /* SerialGamepad */ = {
57
+			isa = PBXGroup;
58
+			children = (
59
+				E9F5FFB01C1F5E2B00AA4E3B /* AppDelegate.h */,
60
+				E9F5FFB11C1F5E2B00AA4E3B /* AppDelegate.m */,
61
+				E9F5FFB61C1F5E2B00AA4E3B /* Assets.xcassets */,
62
+				E9F5FFB81C1F5E2B00AA4E3B /* MainMenu.xib */,
63
+				E9B6A1D01C1F623B00DA3C80 /* MainWindow.h */,
64
+				E9B6A1D11C1F623B00DA3C80 /* MainWindow.m */,
65
+				E9F5FFBB1C1F5E2B00AA4E3B /* Info.plist */,
66
+				E9F5FFB31C1F5E2B00AA4E3B /* Supporting Files */,
67
+			);
68
+			path = SerialGamepad;
69
+			sourceTree = "<group>";
70
+		};
71
+		E9F5FFB31C1F5E2B00AA4E3B /* Supporting Files */ = {
72
+			isa = PBXGroup;
73
+			children = (
74
+				E9F5FFB41C1F5E2B00AA4E3B /* main.m */,
75
+			);
76
+			name = "Supporting Files";
77
+			sourceTree = "<group>";
78
+		};
79
+/* End PBXGroup section */
80
+
81
+/* Begin PBXNativeTarget section */
82
+		E9F5FFAC1C1F5E2B00AA4E3B /* SerialGamepad */ = {
83
+			isa = PBXNativeTarget;
84
+			buildConfigurationList = E9F5FFBE1C1F5E2B00AA4E3B /* Build configuration list for PBXNativeTarget "SerialGamepad" */;
85
+			buildPhases = (
86
+				E9F5FFA91C1F5E2B00AA4E3B /* Sources */,
87
+				E9F5FFAA1C1F5E2B00AA4E3B /* Frameworks */,
88
+				E9F5FFAB1C1F5E2B00AA4E3B /* Resources */,
89
+			);
90
+			buildRules = (
91
+			);
92
+			dependencies = (
93
+			);
94
+			name = SerialGamepad;
95
+			productName = SerialGamepad;
96
+			productReference = E9F5FFAD1C1F5E2B00AA4E3B /* SerialGamepad.app */;
97
+			productType = "com.apple.product-type.application";
98
+		};
99
+/* End PBXNativeTarget section */
100
+
101
+/* Begin PBXProject section */
102
+		E9F5FFA51C1F5E2B00AA4E3B /* Project object */ = {
103
+			isa = PBXProject;
104
+			attributes = {
105
+				LastUpgradeCheck = 0720;
106
+				ORGANIZATIONNAME = xythobuz;
107
+				TargetAttributes = {
108
+					E9F5FFAC1C1F5E2B00AA4E3B = {
109
+						CreatedOnToolsVersion = 7.2;
110
+					};
111
+				};
112
+			};
113
+			buildConfigurationList = E9F5FFA81C1F5E2B00AA4E3B /* Build configuration list for PBXProject "SerialGamepad" */;
114
+			compatibilityVersion = "Xcode 3.2";
115
+			developmentRegion = English;
116
+			hasScannedForEncodings = 0;
117
+			knownRegions = (
118
+				en,
119
+				Base,
120
+			);
121
+			mainGroup = E9F5FFA41C1F5E2B00AA4E3B;
122
+			productRefGroup = E9F5FFAE1C1F5E2B00AA4E3B /* Products */;
123
+			projectDirPath = "";
124
+			projectRoot = "";
125
+			targets = (
126
+				E9F5FFAC1C1F5E2B00AA4E3B /* SerialGamepad */,
127
+			);
128
+		};
129
+/* End PBXProject section */
130
+
131
+/* Begin PBXResourcesBuildPhase section */
132
+		E9F5FFAB1C1F5E2B00AA4E3B /* Resources */ = {
133
+			isa = PBXResourcesBuildPhase;
134
+			buildActionMask = 2147483647;
135
+			files = (
136
+				E9F5FFB71C1F5E2B00AA4E3B /* Assets.xcassets in Resources */,
137
+				E9F5FFBA1C1F5E2B00AA4E3B /* MainMenu.xib in Resources */,
138
+			);
139
+			runOnlyForDeploymentPostprocessing = 0;
140
+		};
141
+/* End PBXResourcesBuildPhase section */
142
+
143
+/* Begin PBXSourcesBuildPhase section */
144
+		E9F5FFA91C1F5E2B00AA4E3B /* Sources */ = {
145
+			isa = PBXSourcesBuildPhase;
146
+			buildActionMask = 2147483647;
147
+			files = (
148
+				E9F5FFB51C1F5E2B00AA4E3B /* main.m in Sources */,
149
+				E9F5FFB21C1F5E2B00AA4E3B /* AppDelegate.m in Sources */,
150
+				E9B6A1D21C1F623B00DA3C80 /* MainWindow.m in Sources */,
151
+			);
152
+			runOnlyForDeploymentPostprocessing = 0;
153
+		};
154
+/* End PBXSourcesBuildPhase section */
155
+
156
+/* Begin PBXVariantGroup section */
157
+		E9F5FFB81C1F5E2B00AA4E3B /* MainMenu.xib */ = {
158
+			isa = PBXVariantGroup;
159
+			children = (
160
+				E9F5FFB91C1F5E2B00AA4E3B /* Base */,
161
+			);
162
+			name = MainMenu.xib;
163
+			sourceTree = "<group>";
164
+		};
165
+/* End PBXVariantGroup section */
166
+
167
+/* Begin XCBuildConfiguration section */
168
+		E9F5FFBC1C1F5E2B00AA4E3B /* Debug */ = {
169
+			isa = XCBuildConfiguration;
170
+			buildSettings = {
171
+				ALWAYS_SEARCH_USER_PATHS = NO;
172
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
173
+				CLANG_CXX_LIBRARY = "libc++";
174
+				CLANG_ENABLE_MODULES = YES;
175
+				CLANG_ENABLE_OBJC_ARC = YES;
176
+				CLANG_WARN_BOOL_CONVERSION = YES;
177
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
178
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
179
+				CLANG_WARN_EMPTY_BODY = YES;
180
+				CLANG_WARN_ENUM_CONVERSION = YES;
181
+				CLANG_WARN_INT_CONVERSION = YES;
182
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
183
+				CLANG_WARN_UNREACHABLE_CODE = YES;
184
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
185
+				CODE_SIGN_IDENTITY = "-";
186
+				COPY_PHASE_STRIP = NO;
187
+				DEBUG_INFORMATION_FORMAT = dwarf;
188
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
189
+				ENABLE_TESTABILITY = YES;
190
+				GCC_C_LANGUAGE_STANDARD = gnu99;
191
+				GCC_DYNAMIC_NO_PIC = NO;
192
+				GCC_NO_COMMON_BLOCKS = YES;
193
+				GCC_OPTIMIZATION_LEVEL = 0;
194
+				GCC_PREPROCESSOR_DEFINITIONS = (
195
+					"DEBUG=1",
196
+					"$(inherited)",
197
+				);
198
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
199
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
200
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
201
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
202
+				GCC_WARN_UNUSED_FUNCTION = YES;
203
+				GCC_WARN_UNUSED_VARIABLE = YES;
204
+				MACOSX_DEPLOYMENT_TARGET = 10.10;
205
+				MTL_ENABLE_DEBUG_INFO = YES;
206
+				ONLY_ACTIVE_ARCH = YES;
207
+				SDKROOT = macosx;
208
+			};
209
+			name = Debug;
210
+		};
211
+		E9F5FFBD1C1F5E2B00AA4E3B /* Release */ = {
212
+			isa = XCBuildConfiguration;
213
+			buildSettings = {
214
+				ALWAYS_SEARCH_USER_PATHS = NO;
215
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
216
+				CLANG_CXX_LIBRARY = "libc++";
217
+				CLANG_ENABLE_MODULES = YES;
218
+				CLANG_ENABLE_OBJC_ARC = YES;
219
+				CLANG_WARN_BOOL_CONVERSION = YES;
220
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
221
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
222
+				CLANG_WARN_EMPTY_BODY = YES;
223
+				CLANG_WARN_ENUM_CONVERSION = YES;
224
+				CLANG_WARN_INT_CONVERSION = YES;
225
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
226
+				CLANG_WARN_UNREACHABLE_CODE = YES;
227
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
228
+				CODE_SIGN_IDENTITY = "-";
229
+				COPY_PHASE_STRIP = NO;
230
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
231
+				ENABLE_NS_ASSERTIONS = NO;
232
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
233
+				GCC_C_LANGUAGE_STANDARD = gnu99;
234
+				GCC_NO_COMMON_BLOCKS = YES;
235
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
236
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
237
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
238
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
239
+				GCC_WARN_UNUSED_FUNCTION = YES;
240
+				GCC_WARN_UNUSED_VARIABLE = YES;
241
+				MACOSX_DEPLOYMENT_TARGET = 10.10;
242
+				MTL_ENABLE_DEBUG_INFO = NO;
243
+				SDKROOT = macosx;
244
+			};
245
+			name = Release;
246
+		};
247
+		E9F5FFBF1C1F5E2B00AA4E3B /* Debug */ = {
248
+			isa = XCBuildConfiguration;
249
+			buildSettings = {
250
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
251
+				COMBINE_HIDPI_IMAGES = YES;
252
+				INFOPLIST_FILE = SerialGamepad/Info.plist;
253
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
254
+				MACOSX_DEPLOYMENT_TARGET = 10.8;
255
+				PRODUCT_BUNDLE_IDENTIFIER = de.xythobuz.SerialGamepad;
256
+				PRODUCT_NAME = "$(TARGET_NAME)";
257
+			};
258
+			name = Debug;
259
+		};
260
+		E9F5FFC01C1F5E2B00AA4E3B /* Release */ = {
261
+			isa = XCBuildConfiguration;
262
+			buildSettings = {
263
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
264
+				COMBINE_HIDPI_IMAGES = YES;
265
+				INFOPLIST_FILE = SerialGamepad/Info.plist;
266
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
267
+				MACOSX_DEPLOYMENT_TARGET = 10.8;
268
+				PRODUCT_BUNDLE_IDENTIFIER = de.xythobuz.SerialGamepad;
269
+				PRODUCT_NAME = "$(TARGET_NAME)";
270
+			};
271
+			name = Release;
272
+		};
273
+/* End XCBuildConfiguration section */
274
+
275
+/* Begin XCConfigurationList section */
276
+		E9F5FFA81C1F5E2B00AA4E3B /* Build configuration list for PBXProject "SerialGamepad" */ = {
277
+			isa = XCConfigurationList;
278
+			buildConfigurations = (
279
+				E9F5FFBC1C1F5E2B00AA4E3B /* Debug */,
280
+				E9F5FFBD1C1F5E2B00AA4E3B /* Release */,
281
+			);
282
+			defaultConfigurationIsVisible = 0;
283
+			defaultConfigurationName = Release;
284
+		};
285
+		E9F5FFBE1C1F5E2B00AA4E3B /* Build configuration list for PBXNativeTarget "SerialGamepad" */ = {
286
+			isa = XCConfigurationList;
287
+			buildConfigurations = (
288
+				E9F5FFBF1C1F5E2B00AA4E3B /* Debug */,
289
+				E9F5FFC01C1F5E2B00AA4E3B /* Release */,
290
+			);
291
+			defaultConfigurationIsVisible = 0;
292
+			defaultConfigurationName = Release;
293
+		};
294
+/* End XCConfigurationList section */
295
+	};
296
+	rootObject = E9F5FFA51C1F5E2B00AA4E3B /* Project object */;
297
+}

+ 7
- 0
SerialGamepad.xcodeproj/project.xcworkspace/contents.xcworkspacedata View File

@@ -0,0 +1,7 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<Workspace
3
+   version = "1.0">
4
+   <FileRef
5
+      location = "self:SerialGamepad.xcodeproj">
6
+   </FileRef>
7
+</Workspace>

BIN
SerialGamepad.xcodeproj/project.xcworkspace/xcuserdata/thomas.xcuserdatad/UserInterfaceState.xcuserstate View File


+ 91
- 0
SerialGamepad.xcodeproj/xcuserdata/thomas.xcuserdatad/xcschemes/SerialGamepad.xcscheme View File

@@ -0,0 +1,91 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<Scheme
3
+   LastUpgradeVersion = "0720"
4
+   version = "1.3">
5
+   <BuildAction
6
+      parallelizeBuildables = "YES"
7
+      buildImplicitDependencies = "YES">
8
+      <BuildActionEntries>
9
+         <BuildActionEntry
10
+            buildForTesting = "YES"
11
+            buildForRunning = "YES"
12
+            buildForProfiling = "YES"
13
+            buildForArchiving = "YES"
14
+            buildForAnalyzing = "YES">
15
+            <BuildableReference
16
+               BuildableIdentifier = "primary"
17
+               BlueprintIdentifier = "E9F5FFAC1C1F5E2B00AA4E3B"
18
+               BuildableName = "SerialGamepad.app"
19
+               BlueprintName = "SerialGamepad"
20
+               ReferencedContainer = "container:SerialGamepad.xcodeproj">
21
+            </BuildableReference>
22
+         </BuildActionEntry>
23
+      </BuildActionEntries>
24
+   </BuildAction>
25
+   <TestAction
26
+      buildConfiguration = "Debug"
27
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
+      shouldUseLaunchSchemeArgsEnv = "YES">
30
+      <Testables>
31
+      </Testables>
32
+      <MacroExpansion>
33
+         <BuildableReference
34
+            BuildableIdentifier = "primary"
35
+            BlueprintIdentifier = "E9F5FFAC1C1F5E2B00AA4E3B"
36
+            BuildableName = "SerialGamepad.app"
37
+            BlueprintName = "SerialGamepad"
38
+            ReferencedContainer = "container:SerialGamepad.xcodeproj">
39
+         </BuildableReference>
40
+      </MacroExpansion>
41
+      <AdditionalOptions>
42
+      </AdditionalOptions>
43
+   </TestAction>
44
+   <LaunchAction
45
+      buildConfiguration = "Debug"
46
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
47
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
48
+      launchStyle = "0"
49
+      useCustomWorkingDirectory = "NO"
50
+      ignoresPersistentStateOnLaunch = "NO"
51
+      debugDocumentVersioning = "YES"
52
+      debugServiceExtension = "internal"
53
+      allowLocationSimulation = "YES">
54
+      <BuildableProductRunnable
55
+         runnableDebuggingMode = "0">
56
+         <BuildableReference
57
+            BuildableIdentifier = "primary"
58
+            BlueprintIdentifier = "E9F5FFAC1C1F5E2B00AA4E3B"
59
+            BuildableName = "SerialGamepad.app"
60
+            BlueprintName = "SerialGamepad"
61
+            ReferencedContainer = "container:SerialGamepad.xcodeproj">
62
+         </BuildableReference>
63
+      </BuildableProductRunnable>
64
+      <AdditionalOptions>
65
+      </AdditionalOptions>
66
+   </LaunchAction>
67
+   <ProfileAction
68
+      buildConfiguration = "Release"
69
+      shouldUseLaunchSchemeArgsEnv = "YES"
70
+      savedToolIdentifier = ""
71
+      useCustomWorkingDirectory = "NO"
72
+      debugDocumentVersioning = "YES">
73
+      <BuildableProductRunnable
74
+         runnableDebuggingMode = "0">
75
+         <BuildableReference
76
+            BuildableIdentifier = "primary"
77
+            BlueprintIdentifier = "E9F5FFAC1C1F5E2B00AA4E3B"
78
+            BuildableName = "SerialGamepad.app"
79
+            BlueprintName = "SerialGamepad"
80
+            ReferencedContainer = "container:SerialGamepad.xcodeproj">
81
+         </BuildableReference>
82
+      </BuildableProductRunnable>
83
+   </ProfileAction>
84
+   <AnalyzeAction
85
+      buildConfiguration = "Debug">
86
+   </AnalyzeAction>
87
+   <ArchiveAction
88
+      buildConfiguration = "Release"
89
+      revealArchiveInOrganizer = "YES">
90
+   </ArchiveAction>
91
+</Scheme>

+ 22
- 0
SerialGamepad.xcodeproj/xcuserdata/thomas.xcuserdatad/xcschemes/xcschememanagement.plist View File

@@ -0,0 +1,22 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+<plist version="1.0">
4
+<dict>
5
+	<key>SchemeUserState</key>
6
+	<dict>
7
+		<key>SerialGamepad.xcscheme</key>
8
+		<dict>
9
+			<key>orderHint</key>
10
+			<integer>0</integer>
11
+		</dict>
12
+	</dict>
13
+	<key>SuppressBuildableAutocreation</key>
14
+	<dict>
15
+		<key>E9F5FFAC1C1F5E2B00AA4E3B</key>
16
+		<dict>
17
+			<key>primary</key>
18
+			<true/>
19
+		</dict>
20
+	</dict>
21
+</dict>
22
+</plist>

+ 15
- 0
SerialGamepad/AppDelegate.h View File

@@ -0,0 +1,15 @@
1
+//
2
+//  AppDelegate.h
3
+//  SerialGamepad
4
+//
5
+//  Created by Thomas Buck on 14.12.15.
6
+//  Copyright © 2015 xythobuz. All rights reserved.
7
+//
8
+
9
+#import <Cocoa/Cocoa.h>
10
+
11
+@interface AppDelegate : NSObject <NSApplicationDelegate>
12
+
13
+
14
+@end
15
+

+ 30
- 0
SerialGamepad/AppDelegate.m View File

@@ -0,0 +1,30 @@
1
+//
2
+//  AppDelegate.m
3
+//  SerialGamepad
4
+//
5
+//  Created by Thomas Buck on 14.12.15.
6
+//  Copyright © 2015 xythobuz. All rights reserved.
7
+//
8
+
9
+#import "AppDelegate.h"
10
+
11
+@interface AppDelegate ()
12
+
13
+@property (weak) IBOutlet NSWindow *window;
14
+@end
15
+
16
+@implementation AppDelegate
17
+
18
+- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)application {
19
+    return YES;
20
+}
21
+
22
+- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
23
+    // Insert code here to initialize your application
24
+}
25
+
26
+- (void)applicationWillTerminate:(NSNotification *)aNotification {
27
+    // Insert code here to tear down your application
28
+}
29
+
30
+@end

+ 58
- 0
SerialGamepad/Assets.xcassets/AppIcon.appiconset/Contents.json View File

@@ -0,0 +1,58 @@
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
+}

+ 747
- 0
SerialGamepad/Base.lproj/MainMenu.xib View File

@@ -0,0 +1,747 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9531" systemVersion="14F1505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
3
+    <dependencies>
4
+        <deployment identifier="macosx"/>
5
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9531"/>
6
+    </dependencies>
7
+    <objects>
8
+        <customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
9
+            <connections>
10
+                <outlet property="delegate" destination="Voe-Tx-rLC" id="GzC-gU-4Uq"/>
11
+            </connections>
12
+        </customObject>
13
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
14
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
15
+        <customObject id="Voe-Tx-rLC" customClass="AppDelegate">
16
+            <connections>
17
+                <outlet property="window" destination="QvC-M9-y7g" id="gIp-Ho-8D9"/>
18
+            </connections>
19
+        </customObject>
20
+        <customObject id="YLy-65-1bz" customClass="NSFontManager"/>
21
+        <menu title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
22
+            <items>
23
+                <menuItem title="SerialGamepad" id="1Xt-HY-uBw">
24
+                    <modifierMask key="keyEquivalentModifierMask"/>
25
+                    <menu key="submenu" title="SerialGamepad" systemMenu="apple" id="uQy-DD-JDr">
26
+                        <items>
27
+                            <menuItem title="About SerialGamepad" id="5kV-Vb-QxS">
28
+                                <modifierMask key="keyEquivalentModifierMask"/>
29
+                                <connections>
30
+                                    <action selector="orderFrontStandardAboutPanel:" target="-1" id="Exp-CZ-Vem"/>
31
+                                </connections>
32
+                            </menuItem>
33
+                            <menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
34
+                            <menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW"/>
35
+                            <menuItem isSeparatorItem="YES" id="wFC-TO-SCJ"/>
36
+                            <menuItem title="Services" id="NMo-om-nkz">
37
+                                <modifierMask key="keyEquivalentModifierMask"/>
38
+                                <menu key="submenu" title="Services" systemMenu="services" id="hz9-B4-Xy5"/>
39
+                            </menuItem>
40
+                            <menuItem isSeparatorItem="YES" id="4je-JR-u6R"/>
41
+                            <menuItem title="Hide SerialGamepad" keyEquivalent="h" id="Olw-nP-bQN">
42
+                                <connections>
43
+                                    <action selector="hide:" target="-1" id="PnN-Uc-m68"/>
44
+                                </connections>
45
+                            </menuItem>
46
+                            <menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
47
+                                <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
48
+                                <connections>
49
+                                    <action selector="hideOtherApplications:" target="-1" id="VT4-aY-XCT"/>
50
+                                </connections>
51
+                            </menuItem>
52
+                            <menuItem title="Show All" id="Kd2-mp-pUS">
53
+                                <modifierMask key="keyEquivalentModifierMask"/>
54
+                                <connections>
55
+                                    <action selector="unhideAllApplications:" target="-1" id="Dhg-Le-xox"/>
56
+                                </connections>
57
+                            </menuItem>
58
+                            <menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
59
+                            <menuItem title="Quit SerialGamepad" keyEquivalent="q" id="4sb-4s-VLi">
60
+                                <connections>
61
+                                    <action selector="terminate:" target="-1" id="Te7-pn-YzF"/>
62
+                                </connections>
63
+                            </menuItem>
64
+                        </items>
65
+                    </menu>
66
+                </menuItem>
67
+                <menuItem title="File" id="dMs-cI-mzQ">
68
+                    <modifierMask key="keyEquivalentModifierMask"/>
69
+                    <menu key="submenu" title="File" id="bib-Uj-vzu">
70
+                        <items>
71
+                            <menuItem title="New" keyEquivalent="n" id="Was-JA-tGl">
72
+                                <connections>
73
+                                    <action selector="newDocument:" target="-1" id="4Si-XN-c54"/>
74
+                                </connections>
75
+                            </menuItem>
76
+                            <menuItem title="Open…" keyEquivalent="o" id="IAo-SY-fd9">
77
+                                <connections>
78
+                                    <action selector="openDocument:" target="-1" id="bVn-NM-KNZ"/>
79
+                                </connections>
80
+                            </menuItem>
81
+                            <menuItem title="Open Recent" id="tXI-mr-wws">
82
+                                <modifierMask key="keyEquivalentModifierMask"/>
83
+                                <menu key="submenu" title="Open Recent" systemMenu="recentDocuments" id="oas-Oc-fiZ">
84
+                                    <items>
85
+                                        <menuItem title="Clear Menu" id="vNY-rz-j42">
86
+                                            <modifierMask key="keyEquivalentModifierMask"/>
87
+                                            <connections>
88
+                                                <action selector="clearRecentDocuments:" target="-1" id="Daa-9d-B3U"/>
89
+                                            </connections>
90
+                                        </menuItem>
91
+                                    </items>
92
+                                </menu>
93
+                            </menuItem>
94
+                            <menuItem isSeparatorItem="YES" id="m54-Is-iLE"/>
95
+                            <menuItem title="Close" keyEquivalent="w" id="DVo-aG-piG">
96
+                                <connections>
97
+                                    <action selector="performClose:" target="-1" id="HmO-Ls-i7Q"/>
98
+                                </connections>
99
+                            </menuItem>
100
+                            <menuItem title="Save…" keyEquivalent="s" id="pxx-59-PXV">
101
+                                <connections>
102
+                                    <action selector="saveDocument:" target="-1" id="teZ-XB-qJY"/>
103
+                                </connections>
104
+                            </menuItem>
105
+                            <menuItem title="Save As…" keyEquivalent="S" id="Bw7-FT-i3A">
106
+                                <connections>
107
+                                    <action selector="saveDocumentAs:" target="-1" id="mDf-zr-I0C"/>
108
+                                </connections>
109
+                            </menuItem>
110
+                            <menuItem title="Revert to Saved" id="KaW-ft-85H">
111
+                                <modifierMask key="keyEquivalentModifierMask"/>
112
+                                <connections>
113
+                                    <action selector="revertDocumentToSaved:" target="-1" id="iJ3-Pv-kwq"/>
114
+                                </connections>
115
+                            </menuItem>
116
+                            <menuItem isSeparatorItem="YES" id="aJh-i4-bef"/>
117
+                            <menuItem title="Page Setup…" keyEquivalent="P" id="qIS-W8-SiK">
118
+                                <modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
119
+                                <connections>
120
+                                    <action selector="runPageLayout:" target="-1" id="Din-rz-gC5"/>
121
+                                </connections>
122
+                            </menuItem>
123
+                            <menuItem title="Print…" keyEquivalent="p" id="aTl-1u-JFS">
124
+                                <connections>
125
+                                    <action selector="print:" target="-1" id="qaZ-4w-aoO"/>
126
+                                </connections>
127
+                            </menuItem>
128
+                        </items>
129
+                    </menu>
130
+                </menuItem>
131
+                <menuItem title="Edit" id="5QF-Oa-p0T">
132
+                    <modifierMask key="keyEquivalentModifierMask"/>
133
+                    <menu key="submenu" title="Edit" id="W48-6f-4Dl">
134
+                        <items>
135
+                            <menuItem title="Undo" keyEquivalent="z" id="dRJ-4n-Yzg">
136
+                                <connections>
137
+                                    <action selector="undo:" target="-1" id="M6e-cu-g7V"/>
138
+                                </connections>
139
+                            </menuItem>
140
+                            <menuItem title="Redo" keyEquivalent="Z" id="6dh-zS-Vam">
141
+                                <connections>
142
+                                    <action selector="redo:" target="-1" id="oIA-Rs-6OD"/>
143
+                                </connections>
144
+                            </menuItem>
145
+                            <menuItem isSeparatorItem="YES" id="WRV-NI-Exz"/>
146
+                            <menuItem title="Cut" keyEquivalent="x" id="uRl-iY-unG">
147
+                                <connections>
148
+                                    <action selector="cut:" target="-1" id="YJe-68-I9s"/>
149
+                                </connections>
150
+                            </menuItem>
151
+                            <menuItem title="Copy" keyEquivalent="c" id="x3v-GG-iWU">
152
+                                <connections>
153
+                                    <action selector="copy:" target="-1" id="G1f-GL-Joy"/>
154
+                                </connections>
155
+                            </menuItem>
156
+                            <menuItem title="Paste" keyEquivalent="v" id="gVA-U4-sdL">
157
+                                <connections>
158
+                                    <action selector="paste:" target="-1" id="UvS-8e-Qdg"/>
159
+                                </connections>
160
+                            </menuItem>
161
+                            <menuItem title="Paste and Match Style" keyEquivalent="V" id="WeT-3V-zwk">
162
+                                <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
163
+                                <connections>
164
+                                    <action selector="pasteAsPlainText:" target="-1" id="cEh-KX-wJQ"/>
165
+                                </connections>
166
+                            </menuItem>
167
+                            <menuItem title="Delete" id="pa3-QI-u2k">
168
+                                <modifierMask key="keyEquivalentModifierMask"/>
169
+                                <connections>
170
+                                    <action selector="delete:" target="-1" id="0Mk-Ml-PaM"/>
171
+                                </connections>
172
+                            </menuItem>
173
+                            <menuItem title="Select All" keyEquivalent="a" id="Ruw-6m-B2m">
174
+                                <connections>
175
+                                    <action selector="selectAll:" target="-1" id="VNm-Mi-diN"/>
176
+                                </connections>
177
+                            </menuItem>
178
+                            <menuItem isSeparatorItem="YES" id="uyl-h8-XO2"/>
179
+                            <menuItem title="Find" id="4EN-yA-p0u">
180
+                                <modifierMask key="keyEquivalentModifierMask"/>
181
+                                <menu key="submenu" title="Find" id="1b7-l0-nxx">
182
+                                    <items>
183
+                                        <menuItem title="Find…" tag="1" keyEquivalent="f" id="Xz5-n4-O0W">
184
+                                            <connections>
185
+                                                <action selector="performFindPanelAction:" target="-1" id="cD7-Qs-BN4"/>
186
+                                            </connections>
187
+                                        </menuItem>
188
+                                        <menuItem title="Find and Replace…" tag="12" keyEquivalent="f" id="YEy-JH-Tfz">
189
+                                            <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
190
+                                            <connections>
191
+                                                <action selector="performFindPanelAction:" target="-1" id="WD3-Gg-5AJ"/>
192
+                                            </connections>
193
+                                        </menuItem>
194
+                                        <menuItem title="Find Next" tag="2" keyEquivalent="g" id="q09-fT-Sye">
195
+                                            <connections>
196
+                                                <action selector="performFindPanelAction:" target="-1" id="NDo-RZ-v9R"/>
197
+                                            </connections>
198
+                                        </menuItem>
199
+                                        <menuItem title="Find Previous" tag="3" keyEquivalent="G" id="OwM-mh-QMV">
200
+                                            <connections>
201
+                                                <action selector="performFindPanelAction:" target="-1" id="HOh-sY-3ay"/>
202
+                                            </connections>
203
+                                        </menuItem>
204
+                                        <menuItem title="Use Selection for Find" tag="7" keyEquivalent="e" id="buJ-ug-pKt">
205
+                                            <connections>
206
+                                                <action selector="performFindPanelAction:" target="-1" id="U76-nv-p5D"/>
207
+                                            </connections>
208
+                                        </menuItem>
209
+                                        <menuItem title="Jump to Selection" keyEquivalent="j" id="S0p-oC-mLd">
210
+                                            <connections>
211
+                                                <action selector="centerSelectionInVisibleArea:" target="-1" id="IOG-6D-g5B"/>
212
+                                            </connections>
213
+                                        </menuItem>
214
+                                    </items>
215
+                                </menu>
216
+                            </menuItem>
217
+                            <menuItem title="Spelling and Grammar" id="Dv1-io-Yv7">
218
+                                <modifierMask key="keyEquivalentModifierMask"/>
219
+                                <menu key="submenu" title="Spelling" id="3IN-sU-3Bg">
220
+                                    <items>
221
+                                        <menuItem title="Show Spelling and Grammar" keyEquivalent=":" id="HFo-cy-zxI">
222
+                                            <connections>
223
+                                                <action selector="showGuessPanel:" target="-1" id="vFj-Ks-hy3"/>
224
+                                            </connections>
225
+                                        </menuItem>
226
+                                        <menuItem title="Check Document Now" keyEquivalent=";" id="hz2-CU-CR7">
227
+                                            <connections>
228
+                                                <action selector="checkSpelling:" target="-1" id="fz7-VC-reM"/>
229
+                                            </connections>
230
+                                        </menuItem>
231
+                                        <menuItem isSeparatorItem="YES" id="bNw-od-mp5"/>
232
+                                        <menuItem title="Check Spelling While Typing" id="rbD-Rh-wIN">
233
+                                            <modifierMask key="keyEquivalentModifierMask"/>
234
+                                            <connections>
235
+                                                <action selector="toggleContinuousSpellChecking:" target="-1" id="7w6-Qz-0kB"/>
236
+                                            </connections>
237
+                                        </menuItem>
238
+                                        <menuItem title="Check Grammar With Spelling" id="mK6-2p-4JG">
239
+                                            <modifierMask key="keyEquivalentModifierMask"/>
240
+                                            <connections>
241
+                                                <action selector="toggleGrammarChecking:" target="-1" id="muD-Qn-j4w"/>
242
+                                            </connections>
243
+                                        </menuItem>
244
+                                        <menuItem title="Correct Spelling Automatically" id="78Y-hA-62v">
245
+                                            <modifierMask key="keyEquivalentModifierMask"/>
246
+                                            <connections>
247
+                                                <action selector="toggleAutomaticSpellingCorrection:" target="-1" id="2lM-Qi-WAP"/>
248
+                                            </connections>
249
+                                        </menuItem>
250
+                                    </items>
251
+                                </menu>
252
+                            </menuItem>
253
+                            <menuItem title="Substitutions" id="9ic-FL-obx">
254
+                                <modifierMask key="keyEquivalentModifierMask"/>
255
+                                <menu key="submenu" title="Substitutions" id="FeM-D8-WVr">
256
+                                    <items>
257
+                                        <menuItem title="Show Substitutions" id="z6F-FW-3nz">
258
+                                            <modifierMask key="keyEquivalentModifierMask"/>
259
+                                            <connections>
260
+                                                <action selector="orderFrontSubstitutionsPanel:" target="-1" id="oku-mr-iSq"/>
261
+                                            </connections>
262
+                                        </menuItem>
263
+                                        <menuItem isSeparatorItem="YES" id="gPx-C9-uUO"/>
264
+                                        <menuItem title="Smart Copy/Paste" id="9yt-4B-nSM">
265
+                                            <modifierMask key="keyEquivalentModifierMask"/>
266
+                                            <connections>
267
+                                                <action selector="toggleSmartInsertDelete:" target="-1" id="3IJ-Se-DZD"/>
268
+                                            </connections>
269
+                                        </menuItem>
270
+                                        <menuItem title="Smart Quotes" id="hQb-2v-fYv">
271
+                                            <modifierMask key="keyEquivalentModifierMask"/>
272
+                                            <connections>
273
+                                                <action selector="toggleAutomaticQuoteSubstitution:" target="-1" id="ptq-xd-QOA"/>
274
+                                            </connections>
275
+                                        </menuItem>
276
+                                        <menuItem title="Smart Dashes" id="rgM-f4-ycn">
277
+                                            <modifierMask key="keyEquivalentModifierMask"/>
278
+                                            <connections>
279
+                                                <action selector="toggleAutomaticDashSubstitution:" target="-1" id="oCt-pO-9gS"/>
280
+                                            </connections>
281
+                                        </menuItem>
282
+                                        <menuItem title="Smart Links" id="cwL-P1-jid">
283
+                                            <modifierMask key="keyEquivalentModifierMask"/>
284
+                                            <connections>
285
+                                                <action selector="toggleAutomaticLinkDetection:" target="-1" id="Gip-E3-Fov"/>
286
+                                            </connections>
287
+                                        </menuItem>
288
+                                        <menuItem title="Data Detectors" id="tRr-pd-1PS">
289
+                                            <modifierMask key="keyEquivalentModifierMask"/>
290
+                                            <connections>
291
+                                                <action selector="toggleAutomaticDataDetection:" target="-1" id="R1I-Nq-Kbl"/>
292
+                                            </connections>
293
+                                        </menuItem>
294
+                                        <menuItem title="Text Replacement" id="HFQ-gK-NFA">
295
+                                            <modifierMask key="keyEquivalentModifierMask"/>
296
+                                            <connections>
297
+                                                <action selector="toggleAutomaticTextReplacement:" target="-1" id="DvP-Fe-Py6"/>
298
+                                            </connections>
299
+                                        </menuItem>
300
+                                    </items>
301
+                                </menu>
302
+                            </menuItem>
303
+                            <menuItem title="Transformations" id="2oI-Rn-ZJC">
304
+                                <modifierMask key="keyEquivalentModifierMask"/>
305
+                                <menu key="submenu" title="Transformations" id="c8a-y6-VQd">
306
+                                    <items>
307
+                                        <menuItem title="Make Upper Case" id="vmV-6d-7jI">
308
+                                            <modifierMask key="keyEquivalentModifierMask"/>
309
+                                            <connections>
310
+                                                <action selector="uppercaseWord:" target="-1" id="sPh-Tk-edu"/>
311
+                                            </connections>
312
+                                        </menuItem>
313
+                                        <menuItem title="Make Lower Case" id="d9M-CD-aMd">
314
+                                            <modifierMask key="keyEquivalentModifierMask"/>
315
+                                            <connections>
316
+                                                <action selector="lowercaseWord:" target="-1" id="iUZ-b5-hil"/>
317
+                                            </connections>
318
+                                        </menuItem>
319
+                                        <menuItem title="Capitalize" id="UEZ-Bs-lqG">
320
+                                            <modifierMask key="keyEquivalentModifierMask"/>
321
+                                            <connections>
322
+                                                <action selector="capitalizeWord:" target="-1" id="26H-TL-nsh"/>
323
+                                            </connections>
324
+                                        </menuItem>
325
+                                    </items>
326
+                                </menu>
327
+                            </menuItem>
328
+                            <menuItem title="Speech" id="xrE-MZ-jX0">
329
+                                <modifierMask key="keyEquivalentModifierMask"/>
330
+                                <menu key="submenu" title="Speech" id="3rS-ZA-NoH">
331
+                                    <items>
332
+                                        <menuItem title="Start Speaking" id="Ynk-f8-cLZ">
333
+                                            <modifierMask key="keyEquivalentModifierMask"/>
334
+                                            <connections>
335
+                                                <action selector="startSpeaking:" target="-1" id="654-Ng-kyl"/>
336
+                                            </connections>
337
+                                        </menuItem>
338
+                                        <menuItem title="Stop Speaking" id="Oyz-dy-DGm">
339
+                                            <modifierMask key="keyEquivalentModifierMask"/>
340
+                                            <connections>
341
+                                                <action selector="stopSpeaking:" target="-1" id="dX8-6p-jy9"/>
342
+                                            </connections>
343
+                                        </menuItem>
344
+                                    </items>
345
+                                </menu>
346
+                            </menuItem>
347
+                        </items>
348
+                    </menu>
349
+                </menuItem>
350
+                <menuItem title="Format" id="jxT-CU-nIS">
351
+                    <modifierMask key="keyEquivalentModifierMask"/>
352
+                    <menu key="submenu" title="Format" id="GEO-Iw-cKr">
353
+                        <items>
354
+                            <menuItem title="Font" id="Gi5-1S-RQB">
355
+                                <modifierMask key="keyEquivalentModifierMask"/>
356
+                                <menu key="submenu" title="Font" systemMenu="font" id="aXa-aM-Jaq">
357
+                                    <items>
358
+                                        <menuItem title="Show Fonts" keyEquivalent="t" id="Q5e-8K-NDq">
359
+                                            <connections>
360
+                                                <action selector="orderFrontFontPanel:" target="YLy-65-1bz" id="WHr-nq-2xA"/>
361
+                                            </connections>
362
+                                        </menuItem>
363
+                                        <menuItem title="Bold" tag="2" keyEquivalent="b" id="GB9-OM-e27">
364
+                                            <connections>
365
+                                                <action selector="addFontTrait:" target="YLy-65-1bz" id="hqk-hr-sYV"/>
366
+                                            </connections>
367
+                                        </menuItem>
368
+                                        <menuItem title="Italic" tag="1" keyEquivalent="i" id="Vjx-xi-njq">
369
+                                            <connections>
370
+                                                <action selector="addFontTrait:" target="YLy-65-1bz" id="IHV-OB-c03"/>
371
+                                            </connections>
372
+                                        </menuItem>
373
+                                        <menuItem title="Underline" keyEquivalent="u" id="WRG-CD-K1S">
374
+                                            <connections>
375
+                                                <action selector="underline:" target="-1" id="FYS-2b-JAY"/>
376
+                                            </connections>
377
+                                        </menuItem>
378
+                                        <menuItem isSeparatorItem="YES" id="5gT-KC-WSO"/>
379
+                                        <menuItem title="Bigger" tag="3" keyEquivalent="+" id="Ptp-SP-VEL">
380
+                                            <connections>
381
+                                                <action selector="modifyFont:" target="YLy-65-1bz" id="Uc7-di-UnL"/>
382
+                                            </connections>
383
+                                        </menuItem>
384
+                                        <menuItem title="Smaller" tag="4" keyEquivalent="-" id="i1d-Er-qST">
385
+                                            <connections>
386
+                                                <action selector="modifyFont:" target="YLy-65-1bz" id="HcX-Lf-eNd"/>
387
+                                            </connections>
388
+                                        </menuItem>
389
+                                        <menuItem isSeparatorItem="YES" id="kx3-Dk-x3B"/>
390
+                                        <menuItem title="Kern" id="jBQ-r6-VK2">
391
+                                            <modifierMask key="keyEquivalentModifierMask"/>
392
+                                            <menu key="submenu" title="Kern" id="tlD-Oa-oAM">
393
+                                                <items>
394
+                                                    <menuItem title="Use Default" id="GUa-eO-cwY">
395
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
396
+                                                        <connections>
397
+                                                            <action selector="useStandardKerning:" target="-1" id="6dk-9l-Ckg"/>
398
+                                                        </connections>
399
+                                                    </menuItem>
400
+                                                    <menuItem title="Use None" id="cDB-IK-hbR">
401
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
402
+                                                        <connections>
403
+                                                            <action selector="turnOffKerning:" target="-1" id="U8a-gz-Maa"/>
404
+                                                        </connections>
405
+                                                    </menuItem>
406
+                                                    <menuItem title="Tighten" id="46P-cB-AYj">
407
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
408
+                                                        <connections>
409
+                                                            <action selector="tightenKerning:" target="-1" id="hr7-Nz-8ro"/>
410
+                                                        </connections>
411
+                                                    </menuItem>
412
+                                                    <menuItem title="Loosen" id="ogc-rX-tC1">
413
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
414
+                                                        <connections>
415
+                                                            <action selector="loosenKerning:" target="-1" id="8i4-f9-FKE"/>
416
+                                                        </connections>
417
+                                                    </menuItem>
418
+                                                </items>
419
+                                            </menu>
420
+                                        </menuItem>
421
+                                        <menuItem title="Ligatures" id="o6e-r0-MWq">
422
+                                            <modifierMask key="keyEquivalentModifierMask"/>
423
+                                            <menu key="submenu" title="Ligatures" id="w0m-vy-SC9">
424
+                                                <items>
425
+                                                    <menuItem title="Use Default" id="agt-UL-0e3">
426
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
427
+                                                        <connections>
428
+                                                            <action selector="useStandardLigatures:" target="-1" id="7uR-wd-Dx6"/>
429
+                                                        </connections>
430
+                                                    </menuItem>
431
+                                                    <menuItem title="Use None" id="J7y-lM-qPV">
432
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
433
+                                                        <connections>
434
+                                                            <action selector="turnOffLigatures:" target="-1" id="iX2-gA-Ilz"/>
435
+                                                        </connections>
436
+                                                    </menuItem>
437
+                                                    <menuItem title="Use All" id="xQD-1f-W4t">
438
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
439
+                                                        <connections>
440
+                                                            <action selector="useAllLigatures:" target="-1" id="KcB-kA-TuK"/>
441
+                                                        </connections>
442
+                                                    </menuItem>
443
+                                                </items>
444
+                                            </menu>
445
+                                        </menuItem>
446
+                                        <menuItem title="Baseline" id="OaQ-X3-Vso">
447
+                                            <modifierMask key="keyEquivalentModifierMask"/>
448
+                                            <menu key="submenu" title="Baseline" id="ijk-EB-dga">
449
+                                                <items>
450
+                                                    <menuItem title="Use Default" id="3Om-Ey-2VK">
451
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
452
+                                                        <connections>
453
+                                                            <action selector="unscript:" target="-1" id="0vZ-95-Ywn"/>
454
+                                                        </connections>
455
+                                                    </menuItem>
456
+                                                    <menuItem title="Superscript" id="Rqc-34-cIF">
457
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
458
+                                                        <connections>
459
+                                                            <action selector="superscript:" target="-1" id="3qV-fo-wpU"/>
460
+                                                        </connections>
461
+                                                    </menuItem>
462
+                                                    <menuItem title="Subscript" id="I0S-gh-46l">
463
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
464
+                                                        <connections>
465
+                                                            <action selector="subscript:" target="-1" id="Q6W-4W-IGz"/>
466
+                                                        </connections>
467
+                                                    </menuItem>
468
+                                                    <menuItem title="Raise" id="2h7-ER-AoG">
469
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
470
+                                                        <connections>
471
+                                                            <action selector="raiseBaseline:" target="-1" id="4sk-31-7Q9"/>
472
+                                                        </connections>
473
+                                                    </menuItem>
474
+                                                    <menuItem title="Lower" id="1tx-W0-xDw">
475
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
476
+                                                        <connections>
477
+                                                            <action selector="lowerBaseline:" target="-1" id="OF1-bc-KW4"/>
478
+                                                        </connections>
479
+                                                    </menuItem>
480
+                                                </items>
481
+                                            </menu>
482
+                                        </menuItem>
483
+                                        <menuItem isSeparatorItem="YES" id="Ndw-q3-faq"/>
484
+                                        <menuItem title="Show Colors" keyEquivalent="C" id="bgn-CT-cEk">
485
+                                            <connections>
486
+                                                <action selector="orderFrontColorPanel:" target="-1" id="mSX-Xz-DV3"/>
487
+                                            </connections>
488
+                                        </menuItem>
489
+                                        <menuItem isSeparatorItem="YES" id="iMs-zA-UFJ"/>
490
+                                        <menuItem title="Copy Style" keyEquivalent="c" id="5Vv-lz-BsD">
491
+                                            <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
492
+                                            <connections>
493
+                                                <action selector="copyFont:" target="-1" id="GJO-xA-L4q"/>
494
+                                            </connections>
495
+                                        </menuItem>
496
+                                        <menuItem title="Paste Style" keyEquivalent="v" id="vKC-jM-MkH">
497
+                                            <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
498
+                                            <connections>
499
+                                                <action selector="pasteFont:" target="-1" id="JfD-CL-leO"/>
500
+                                            </connections>
501
+                                        </menuItem>
502
+                                    </items>
503
+                                </menu>
504
+                            </menuItem>
505
+                            <menuItem title="Text" id="Fal-I4-PZk">
506
+                                <modifierMask key="keyEquivalentModifierMask"/>
507
+                                <menu key="submenu" title="Text" id="d9c-me-L2H">
508
+                                    <items>
509
+                                        <menuItem title="Align Left" keyEquivalent="{" id="ZM1-6Q-yy1">
510
+                                            <connections>
511
+                                                <action selector="alignLeft:" target="-1" id="zUv-R1-uAa"/>
512
+                                            </connections>
513
+                                        </menuItem>
514
+                                        <menuItem title="Center" keyEquivalent="|" id="VIY-Ag-zcb">
515
+                                            <connections>
516
+                                                <action selector="alignCenter:" target="-1" id="spX-mk-kcS"/>
517
+                                            </connections>
518
+                                        </menuItem>
519
+                                        <menuItem title="Justify" id="J5U-5w-g23">
520
+                                            <modifierMask key="keyEquivalentModifierMask"/>
521
+                                            <connections>
522
+                                                <action selector="alignJustified:" target="-1" id="ljL-7U-jND"/>
523
+                                            </connections>
524
+                                        </menuItem>
525
+                                        <menuItem title="Align Right" keyEquivalent="}" id="wb2-vD-lq4">
526
+                                            <connections>
527
+                                                <action selector="alignRight:" target="-1" id="r48-bG-YeY"/>
528
+                                            </connections>
529
+                                        </menuItem>
530
+                                        <menuItem isSeparatorItem="YES" id="4s2-GY-VfK"/>
531
+                                        <menuItem title="Writing Direction" id="H1b-Si-o9J">
532
+                                            <modifierMask key="keyEquivalentModifierMask"/>
533
+                                            <menu key="submenu" title="Writing Direction" id="8mr-sm-Yjd">
534
+                                                <items>
535
+                                                    <menuItem title="Paragraph" enabled="NO" id="ZvO-Gk-QUH">
536
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
537
+                                                    </menuItem>
538
+                                                    <menuItem id="YGs-j5-SAR">
539
+                                                        <string key="title">	Default</string>
540
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
541
+                                                        <connections>
542
+                                                            <action selector="makeBaseWritingDirectionNatural:" target="-1" id="qtV-5e-UBP"/>
543
+                                                        </connections>
544
+                                                    </menuItem>
545
+                                                    <menuItem id="Lbh-J2-qVU">
546
+                                                        <string key="title">	Left to Right</string>
547
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
548
+                                                        <connections>
549
+                                                            <action selector="makeBaseWritingDirectionLeftToRight:" target="-1" id="S0X-9S-QSf"/>
550
+                                                        </connections>
551
+                                                    </menuItem>
552
+                                                    <menuItem id="jFq-tB-4Kx">
553
+                                                        <string key="title">	Right to Left</string>
554
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
555
+                                                        <connections>
556
+                                                            <action selector="makeBaseWritingDirectionRightToLeft:" target="-1" id="5fk-qB-AqJ"/>
557
+                                                        </connections>
558
+                                                    </menuItem>
559
+                                                    <menuItem isSeparatorItem="YES" id="swp-gr-a21"/>
560
+                                                    <menuItem title="Selection" enabled="NO" id="cqv-fj-IhA">
561
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
562
+                                                    </menuItem>
563
+                                                    <menuItem id="Nop-cj-93Q">
564
+                                                        <string key="title">	Default</string>
565
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
566
+                                                        <connections>
567
+                                                            <action selector="makeTextWritingDirectionNatural:" target="-1" id="lPI-Se-ZHp"/>
568
+                                                        </connections>
569
+                                                    </menuItem>
570
+                                                    <menuItem id="BgM-ve-c93">
571
+                                                        <string key="title">	Left to Right</string>
572
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
573
+                                                        <connections>
574
+                                                            <action selector="makeTextWritingDirectionLeftToRight:" target="-1" id="caW-Bv-w94"/>
575
+                                                        </connections>
576
+                                                    </menuItem>
577
+                                                    <menuItem id="RB4-Sm-HuC">
578
+                                                        <string key="title">	Right to Left</string>
579
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
580
+                                                        <connections>
581
+                                                            <action selector="makeTextWritingDirectionRightToLeft:" target="-1" id="EXD-6r-ZUu"/>
582
+                                                        </connections>
583
+                                                    </menuItem>
584
+                                                </items>
585
+                                            </menu>
586
+                                        </menuItem>
587
+                                        <menuItem isSeparatorItem="YES" id="fKy-g9-1gm"/>
588
+                                        <menuItem title="Show Ruler" id="vLm-3I-IUL">
589
+                                            <modifierMask key="keyEquivalentModifierMask"/>
590
+                                            <connections>
591
+                                                <action selector="toggleRuler:" target="-1" id="FOx-HJ-KwY"/>
592
+                                            </connections>
593
+                                        </menuItem>
594
+                                        <menuItem title="Copy Ruler" keyEquivalent="c" id="MkV-Pr-PK5">
595
+                                            <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
596
+                                            <connections>
597
+                                                <action selector="copyRuler:" target="-1" id="71i-fW-3W2"/>
598
+                                            </connections>
599
+                                        </menuItem>
600
+                                        <menuItem title="Paste Ruler" keyEquivalent="v" id="LVM-kO-fVI">
601
+                                            <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
602
+                                            <connections>
603
+                                                <action selector="pasteRuler:" target="-1" id="cSh-wd-qM2"/>
604
+                                            </connections>
605
+                                        </menuItem>
606
+                                    </items>
607
+                                </menu>
608
+                            </menuItem>
609
+                        </items>
610
+                    </menu>
611
+                </menuItem>
612
+                <menuItem title="View" id="H8h-7b-M4v">
613
+                    <modifierMask key="keyEquivalentModifierMask"/>
614
+                    <menu key="submenu" title="View" id="HyV-fh-RgO">
615
+                        <items>
616
+                            <menuItem title="Show Toolbar" keyEquivalent="t" id="snW-S8-Cw5">
617
+                                <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
618
+                                <connections>
619
+                                    <action selector="toggleToolbarShown:" target="-1" id="BXY-wc-z0C"/>
620
+                                </connections>
621
+                            </menuItem>
622
+                            <menuItem title="Customize Toolbar…" id="1UK-8n-QPP">
623
+                                <modifierMask key="keyEquivalentModifierMask"/>
624
+                                <connections>
625
+                                    <action selector="runToolbarCustomizationPalette:" target="-1" id="pQI-g3-MTW"/>
626
+                                </connections>
627
+                            </menuItem>
628
+                        </items>
629
+                    </menu>
630
+                </menuItem>
631
+                <menuItem title="Window" id="aUF-d1-5bR">
632
+                    <modifierMask key="keyEquivalentModifierMask"/>
633
+                    <menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
634
+                        <items>
635
+                            <menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
636
+                                <connections>
637
+                                    <action selector="performMiniaturize:" target="-1" id="VwT-WD-YPe"/>
638
+                                </connections>
639
+                            </menuItem>
640
+                            <menuItem title="Zoom" id="R4o-n2-Eq4">
641
+                                <modifierMask key="keyEquivalentModifierMask"/>
642
+                                <connections>
643
+                                    <action selector="performZoom:" target="-1" id="DIl-cC-cCs"/>
644
+                                </connections>
645
+                            </menuItem>
646
+                            <menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
647
+                            <menuItem title="Bring All to Front" id="LE2-aR-0XJ">
648
+                                <modifierMask key="keyEquivalentModifierMask"/>
649
+                                <connections>
650
+                                    <action selector="arrangeInFront:" target="-1" id="DRN-fu-gQh"/>
651
+                                </connections>
652
+                            </menuItem>
653
+                        </items>
654
+                    </menu>
655
+                </menuItem>
656
+                <menuItem title="Help" id="wpr-3q-Mcd">
657
+                    <modifierMask key="keyEquivalentModifierMask"/>
658
+                    <menu key="submenu" title="Help" systemMenu="help" id="F2S-fz-NVQ">
659
+                        <items>
660
+                            <menuItem title="SerialGamepad Help" keyEquivalent="?" id="FKE-Sm-Kum">
661
+                                <connections>
662
+                                    <action selector="showHelp:" target="-1" id="y7X-2Q-9no"/>
663
+                                </connections>
664
+                            </menuItem>
665
+                        </items>
666
+                    </menu>
667
+                </menuItem>
668
+            </items>
669
+        </menu>
670
+        <window title="SerialGamepad" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="QvC-M9-y7g" customClass="MainWindow">
671
+            <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
672
+            <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
673
+            <rect key="contentRect" x="335" y="390" width="330" height="258"/>
674
+            <rect key="screenRect" x="0.0" y="0.0" width="1920" height="1057"/>
675
+            <view key="contentView" id="EiT-Mj-1SZ">
676
+                <rect key="frame" x="0.0" y="0.0" width="330" height="258"/>
677
+                <autoresizingMask key="autoresizingMask"/>
678
+                <subviews>
679
+                    <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fCd-m1-NwV">
680
+                        <rect key="frame" x="14" y="169" width="152" height="32"/>
681
+                        <buttonCell key="cell" type="push" title="Connect" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="adp-gD-EEf">
682
+                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
683
+                            <font key="font" metaFont="system"/>
684
+                        </buttonCell>
685
+                        <connections>
686
+                            <action selector="connectButtonPressed:" target="QvC-M9-y7g" id="3UW-Gk-OUp"/>
687
+                        </connections>
688
+                    </button>
689
+                    <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="v8W-R7-l4G">
690
+                        <rect key="frame" x="164" y="169" width="152" height="32"/>
691
+                        <buttonCell key="cell" type="push" title="Create" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="EEe-0L-Dx7">
692
+                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
693
+                            <font key="font" metaFont="system"/>
694
+                        </buttonCell>
695
+                        <connections>
696
+                            <action selector="createButtonPressed:" target="QvC-M9-y7g" id="Iff-L2-DFe"/>
697
+                        </connections>
698
+                    </button>
699
+                    <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5dN-Rl-Vkt">
700
+                        <rect key="frame" x="18" y="214" width="295" height="26"/>
701
+                        <popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="ofz-Zj-Lba">
702
+                            <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
703
+                            <font key="font" metaFont="menu"/>
704
+                            <menu key="menu" id="hsu-7G-Ltg"/>
705
+                        </popUpButtonCell>
706
+                    </popUpButton>
707
+                    <levelIndicator verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Bo5-fb-a0u">
708
+                        <rect key="frame" x="20" y="140" width="290" height="16"/>
709
+                        <levelIndicatorCell key="cell" alignment="left" doubleValue="-511" minValue="-511" maxValue="511" warningValue="2000" criticalValue="2000" levelIndicatorStyle="continuousCapacity" id="xcx-tB-hUl"/>
710
+                    </levelIndicator>
711
+                    <levelIndicator verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="LlC-lV-IAQ">
712
+                        <rect key="frame" x="20" y="116" width="290" height="16"/>
713
+                        <levelIndicatorCell key="cell" alignment="left" doubleValue="-511" minValue="-511" maxValue="511" warningValue="2000" criticalValue="2000" levelIndicatorStyle="continuousCapacity" id="sb6-cl-NKs"/>
714
+                    </levelIndicator>
715
+                    <levelIndicator verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="URz-Id-X9n">
716
+                        <rect key="frame" x="20" y="92" width="290" height="16"/>
717
+                        <levelIndicatorCell key="cell" alignment="left" doubleValue="-511" minValue="-511" maxValue="511" warningValue="2000" criticalValue="2000" levelIndicatorStyle="continuousCapacity" id="Sov-4g-u59"/>
718
+                    </levelIndicator>
719
+                    <levelIndicator verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="txY-x4-Zyp">
720
+                        <rect key="frame" x="20" y="68" width="290" height="16"/>
721
+                        <levelIndicatorCell key="cell" alignment="left" doubleValue="-511" minValue="-511" maxValue="511" warningValue="2000" criticalValue="2000" levelIndicatorStyle="continuousCapacity" id="RKp-wa-VLB"/>
722
+                    </levelIndicator>
723
+                    <levelIndicator verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="VyV-eY-7y9">
724
+                        <rect key="frame" x="20" y="44" width="290" height="16"/>
725
+                        <levelIndicatorCell key="cell" alignment="left" doubleValue="-511" minValue="-511" maxValue="511" warningValue="2000" criticalValue="2000" levelIndicatorStyle="continuousCapacity" id="CyL-Tq-w7d"/>
726
+                    </levelIndicator>
727
+                    <levelIndicator verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vCW-tD-iWD">
728
+                        <rect key="frame" x="20" y="20" width="290" height="16"/>
729
+                        <levelIndicatorCell key="cell" alignment="left" doubleValue="-511" minValue="-511" maxValue="511" warningValue="2000" criticalValue="2000" levelIndicatorStyle="continuousCapacity" id="nfv-aV-cRB"/>
730
+                    </levelIndicator>
731
+                </subviews>
732
+            </view>
733
+            <connections>
734
+                <outlet property="connectButton" destination="fCd-m1-NwV" id="3l3-JM-thL"/>
735
+                <outlet property="createButton" destination="v8W-R7-l4G" id="dGA-CN-AUM"/>
736
+                <outlet property="level1" destination="Bo5-fb-a0u" id="EHR-Gm-wah"/>
737
+                <outlet property="level2" destination="LlC-lV-IAQ" id="iMK-OU-OLi"/>
738
+                <outlet property="level3" destination="URz-Id-X9n" id="dgR-4v-LBR"/>
739
+                <outlet property="level4" destination="txY-x4-Zyp" id="XfN-HH-2lT"/>
740
+                <outlet property="level5" destination="VyV-eY-7y9" id="Ea2-ot-aqN"/>
741
+                <outlet property="level6" destination="vCW-tD-iWD" id="Il2-Xb-sB9"/>
742
+                <outlet property="portList" destination="ofz-Zj-Lba" id="lNL-1h-cEf"/>
743
+            </connections>
744
+            <point key="canvasLocation" x="598" y="439"/>
745
+        </window>
746
+    </objects>
747
+</document>

+ 36
- 0
SerialGamepad/Info.plist View File

@@ -0,0 +1,36 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+<plist version="1.0">
4
+<dict>
5
+	<key>CFBundleDevelopmentRegion</key>
6
+	<string>en</string>
7
+	<key>CFBundleExecutable</key>
8
+	<string>$(EXECUTABLE_NAME)</string>
9
+	<key>CFBundleIconFile</key>
10
+	<string></string>
11
+	<key>CFBundleIdentifier</key>
12
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
13
+	<key>CFBundleInfoDictionaryVersion</key>
14
+	<string>6.0</string>
15
+	<key>CFBundleName</key>
16
+	<string>$(PRODUCT_NAME)</string>
17
+	<key>CFBundlePackageType</key>
18
+	<string>APPL</string>
19
+	<key>CFBundleShortVersionString</key>
20
+	<string>1.0</string>
21
+	<key>CFBundleSignature</key>
22
+	<string>????</string>
23
+	<key>CFBundleVersion</key>
24
+	<string>1</string>
25
+	<key>LSApplicationCategoryType</key>
26
+	<string>public.app-category.utilities</string>
27
+	<key>LSMinimumSystemVersion</key>
28
+	<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
29
+	<key>NSHumanReadableCopyright</key>
30
+	<string>Copyright © 2015 xythobuz. All rights reserved.</string>
31
+	<key>NSMainNibFile</key>
32
+	<string>MainMenu</string>
33
+	<key>NSPrincipalClass</key>
34
+	<string>NSApplication</string>
35
+</dict>
36
+</plist>

+ 23
- 0
SerialGamepad/MainWindow.h View File

@@ -0,0 +1,23 @@
1
+//
2
+//  MainWindow.h
3
+//  SerialGamepad
4
+//
5
+//  Created by Thomas Buck on 14.12.15.
6
+//  Copyright © 2015 xythobuz. All rights reserved.
7
+//
8
+
9
+#import <Cocoa/Cocoa.h>
10
+
11
+@interface MainWindow : NSWindow
12
+
13
+@property (weak) IBOutlet NSPopUpButtonCell *portList;
14
+@property (weak) IBOutlet NSButton *connectButton;
15
+@property (weak) IBOutlet NSButton *createButton;
16
+@property (weak) IBOutlet NSLevelIndicator *level1;
17
+@property (weak) IBOutlet NSLevelIndicator *level2;
18
+@property (weak) IBOutlet NSLevelIndicator *level3;
19
+@property (weak) IBOutlet NSLevelIndicator *level4;
20
+@property (weak) IBOutlet NSLevelIndicator *level5;
21
+@property (weak) IBOutlet NSLevelIndicator *level6;
22
+
23
+@end

+ 19
- 0
SerialGamepad/MainWindow.m View File

@@ -0,0 +1,19 @@
1
+//
2
+//  MainWindow.m
3
+//  SerialGamepad
4
+//
5
+//  Created by Thomas Buck on 14.12.15.
6
+//  Copyright © 2015 xythobuz. All rights reserved.
7
+//
8
+
9
+#import "MainWindow.h"
10
+
11
+@implementation MainWindow
12
+
13
+- (IBAction)connectButtonPressed:(id)sender {
14
+}
15
+
16
+- (IBAction)createButtonPressed:(id)sender {
17
+}
18
+
19
+@end

+ 13
- 0
SerialGamepad/main.m View File

@@ -0,0 +1,13 @@
1
+//
2
+//  main.m
3
+//  SerialGamepad
4
+//
5
+//  Created by Thomas Buck on 14.12.15.
6
+//  Copyright © 2015 xythobuz. All rights reserved.
7
+//
8
+
9
+#import <Cocoa/Cocoa.h>
10
+
11
+int main(int argc, const char * argv[]) {
12
+    return NSApplicationMain(argc, argv);
13
+}

Loading…
Cancel
Save