├── .gitignore
├── File Templates
└── Cocoa-Python
│ ├── Pure Python file.xctemplate
│ ├── TemplateInfo.plist
│ └── class.py
│ ├── Python NSDocument subclass.xctemplate
│ ├── TemplateInfo.plist
│ └── class.py
│ ├── Python NSObject subclass.xctemplate
│ ├── TemplateInfo.plist
│ └── class.py
│ ├── Python NSView subclass.xctemplate
│ ├── TemplateInfo.plist
│ └── class.py
│ └── Python NSWindowController subclass.xctemplate
│ ├── TemplateInfo.plist
│ └── class.py
├── Project Templates
└── Cocoa-Python
│ ├── Cocoa-Python Application Base.xctemplate
│ ├── Credits.rtf
│ └── TemplateInfo.plist
│ ├── Cocoa-Python Application.xctemplate
│ ├── AppDelegate.py
│ ├── MainMenuApp.xib
│ ├── TemplateInfo.plist
│ └── main.py
│ ├── Cocoa-Python Core Data Application.xctemplate
│ ├── AppDelegate.py
│ ├── MainMenuApp.xib
│ ├── TemplateInfo.plist
│ ├── ___PACKAGENAMEASIDENTIFIER___.xcdatamodeld
│ │ ├── .xccurrentversion
│ │ └── ___PACKAGENAMEASIDENTIFIER___.xcdatamodel
│ │ │ └── contents
│ └── main.py
│ ├── Cocoa-Python Core Data Document-based Application.xctemplate
│ ├── CocoaAppDocument.py
│ ├── CocoaAppDocument.xib
│ ├── Document.xcdatamodeld
│ │ ├── .xccurrentversion
│ │ └── Document.xcdatamodel
│ │ │ └── contents
│ ├── MainMenuApp.xib
│ ├── TemplateInfo.plist
│ └── main.py
│ └── Cocoa-Python Document-based Application.xctemplate
│ ├── CocoaAppDocument.py
│ ├── CocoaAppDocument.xib
│ ├── MainMenuApp.xib
│ ├── TemplateInfo.plist
│ └── main.py
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
--------------------------------------------------------------------------------
/File Templates/Cocoa-Python/Pure Python file.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | AllowedTypes
6 |
7 | public.python-script
8 |
9 | DefaultCompletionName
10 | MyPythonLibrary
11 | Description
12 | Template for a pure python file.
13 | Kind
14 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
15 | MainTemplateFile
16 | class.py
17 | Platforms
18 |
19 | com.apple.platform.macosx
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/File Templates/Cocoa-Python/Pure Python file.xctemplate/class.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # ___FILENAME___
4 | # ___PROJECTNAME___
5 | #
6 | # Created by ___FULLUSERNAME___ on ___DATE___.
7 | # Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
8 | #
9 |
10 | #import os
11 | #import sys
12 |
13 |
14 |
--------------------------------------------------------------------------------
/File Templates/Cocoa-Python/Python NSDocument subclass.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | AllowedTypes
6 |
7 | public.python-script
8 |
9 | DefaultCompletionName
10 | MyDocument
11 | Description
12 | A Python subclass of NSDocument. Imports Foundation and AppKit.
13 | Kind
14 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
15 | MainTemplateFile
16 | class.py
17 | Platforms
18 |
19 | com.apple.platform.macosx
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/File Templates/Cocoa-Python/Python NSDocument subclass.xctemplate/class.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # ___FILENAME___
4 | # ___PROJECTNAME___
5 | #
6 | # Created by ___FULLUSERNAME___ on ___DATE___.
7 | # Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
8 | #
9 |
10 | from objc import YES, NO, IBAction, IBOutlet
11 | from Foundation import *
12 | from AppKit import *
13 |
14 | class ___FILEBASENAMEASIDENTIFIER___(NSDocument):
15 | def windowNibName(self):
16 | # Implement this to return a nib to load OR
17 | # implement -makeWindowControllers to manually create your controllers.
18 | return u"___FILEBASENAMEASIDENTIFIER___"
19 |
20 | def windowControllerDidLoadNib_(self, aController):
21 | super(___FILEBASENAMEASIDENTIFIER___, self).windowControllerDidLoadNib_(aController)
22 | # Any UI customization that must be done after the NIB is loaded goes here.
23 |
24 | def dataOfType_error_(self, typeName, outError):
25 | # Insert code here to write your document to data of the specified type. If the given outError != NULL,
26 | # ensure that you set *outError when returning nil. You can also choose to override -fileWrapperOfType:error:, -writeToURL:ofType:error:,
27 | # or -writeToURL:ofType:forSaveOperation:originalContentsURL:error: instead.
28 | return None
29 |
30 | def readFromData_ofType_error_(self, data, typeName, outError):
31 | # Insert code here to read your document from the given data of the specified type. If the given outError != NULL,
32 | # ensure that you set *outError when returning NO. You can also choose to override -readFromFileWrapper:ofType:error:
33 | # or -readFromURL:ofType:error: instead.
34 | return NO
35 |
--------------------------------------------------------------------------------
/File Templates/Cocoa-Python/Python NSObject subclass.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | AllowedTypes
6 |
7 | public.python-script
8 |
9 | DefaultCompletionName
10 | MyObject
11 | Description
12 | A Python subclass of NSObject. Imports Foundation.
13 | Kind
14 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
15 | MainTemplateFile
16 | class.py
17 | Platforms
18 |
19 | com.apple.platform.macosx
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/File Templates/Cocoa-Python/Python NSObject subclass.xctemplate/class.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # ___FILENAME___
4 | # ___PROJECTNAME___
5 | #
6 | # Created by ___FULLUSERNAME___ on ___DATE___.
7 | # Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
8 | #
9 |
10 | from Foundation import *
11 |
12 | class ___FILEBASENAMEASIDENTIFIER___(NSObject):
13 | pass
14 |
--------------------------------------------------------------------------------
/File Templates/Cocoa-Python/Python NSView subclass.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | AllowedTypes
6 |
7 | public.python-script
8 |
9 | DefaultCompletionName
10 | MyView
11 | Description
12 | A Python subclass of NSView. Imports Foundation and AppKit.
13 | Kind
14 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
15 | MainTemplateFile
16 | class.py
17 | Platforms
18 |
19 | com.apple.platform.macosx
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/File Templates/Cocoa-Python/Python NSView subclass.xctemplate/class.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # ___FILENAME___
4 | # ___PROJECTNAME___
5 | #
6 | # Created by ___FULLUSERNAME___ on ___DATE___.
7 | # Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
8 | #
9 |
10 | from objc import YES, NO, IBAction, IBOutlet
11 | from Foundation import *
12 | from AppKit import *
13 |
14 | class ___FILEBASENAMEASIDENTIFIER___(NSView):
15 | def initWithFrame_(self, frame):
16 | self = super(___FILEBASENAMEASIDENTIFIER___, self).initWithFrame_(frame)
17 | if self:
18 | # initialization code here
19 | pass
20 | return self
21 |
22 | def drawRect_(self, rect):
23 | # drawing code here
24 |
25 |
--------------------------------------------------------------------------------
/File Templates/Cocoa-Python/Python NSWindowController subclass.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | AllowedTypes
6 |
7 | public.python-script
8 |
9 | DefaultCompletionName
10 | MyWindowController
11 | Description
12 | A Python subclass of NSWindowController. Imports Foundation.
13 | Kind
14 | Xcode.IDEKit.TextSubstitutionFileTemplateKind
15 | MainTemplateFile
16 | class.py
17 | Platforms
18 |
19 | com.apple.platform.macosx
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/File Templates/Cocoa-Python/Python NSWindowController subclass.xctemplate/class.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # ___FILENAME___
4 | # ___PROJECTNAME___
5 | #
6 | # Created by ___FULLUSERNAME___ on ___DATE___.
7 | # Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
8 | #
9 |
10 | from objc import YES, NO, IBAction, IBOutlet
11 | from Foundation import *
12 | from AppKit import *
13 |
14 | class ___FILEBASENAMEASIDENTIFIER___(NSWindowController):
15 | pass
16 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Application Base.xctemplate/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
2 | {\colortbl;\red255\green255\blue255;}
3 | \paperw9840\paperh8400
4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
5 |
6 | \f0\b\fs24 \cf0 Engineering:
7 | \b0 \
8 | Some people\
9 | \
10 |
11 | \b Human Interface Design:
12 | \b0 \
13 | Some other people\
14 | \
15 |
16 | \b Testing:
17 | \b0 \
18 | Hopefully not nobody\
19 | \
20 |
21 | \b Documentation:
22 | \b0 \
23 | Whoever\
24 | \
25 |
26 | \b With special thanks to:
27 | \b0 \
28 | Mom\
29 | }
30 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Application Base.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Definitions
6 |
7 | en.lproj/Credits.rtf
8 |
9 | Path
10 | Credits.rtf
11 | Group
12 | Supporting Files
13 |
14 | main.m:imports:importFoundation
15 | #import <Foundation/Foundation.h>
16 | main.m:imports:importPython
17 | #import <Python.h>
18 | main.m:main:NSApplicationMain
19 |
20 | @autoreleasepool {
21 |
22 | NSBundle *mainBundle = [NSBundle mainBundle];
23 | NSString *resourcePath = [mainBundle resourcePath];
24 | NSArray *pythonPathArray = [NSArray arrayWithObjects: resourcePath, [resourcePath stringByAppendingPathComponent:@"PyObjC"], nil];
25 |
26 | setenv("PYTHONPATH", [[pythonPathArray componentsJoinedByString:@":"] UTF8String], 1);
27 |
28 | NSArray *possibleMainExtensions = [NSArray arrayWithObjects: @"py", @"pyc", @"pyo", nil];
29 | NSString *mainFilePath = nil;
30 |
31 | for (NSString *possibleMainExtension in possibleMainExtensions) {
32 | mainFilePath = [mainBundle pathForResource: @"main" ofType: possibleMainExtension];
33 | if ( mainFilePath != nil ) break;
34 | }
35 |
36 | if ( !mainFilePath ) {
37 | [NSException raise: NSInternalInconsistencyException format: @"%s:%d main() Failed to find the Main.{py,pyc,pyo} file in the application wrapper's Resources directory.", __FILE__, __LINE__];
38 | }
39 |
40 | Py_SetProgramName("/usr/bin/python");
41 | Py_Initialize();
42 | PySys_SetArgv(argc, (char **)argv);
43 |
44 | const char *mainFilePathPtr = [mainFilePath UTF8String];
45 | FILE *mainFile = fopen(mainFilePathPtr, "r");
46 | int result = PyRun_SimpleFile(mainFile, (char *)[[mainFilePath lastPathComponent] UTF8String]);
47 |
48 | if ( result != 0 ) {
49 | [NSException raise: NSInternalInconsistencyException
50 | format: @"%s:%d main() PyRun_SimpleFile failed with file '%@'. See console for errors.", __FILE__, __LINE__, mainFilePath];
51 | }
52 | return result;
53 | }
54 |
55 | Info.plist:ApplicationCategory
56 | <key>LSApplicationCategoryType</key>
57 | <string>___VARIABLE_applicationCategory:XML___</string>
58 |
59 |
60 | Kind
61 | Xcode.Xcode3.ProjectTemplateUnitKind
62 | Ancestors
63 |
64 | com.apple.dt.unit.cocoaApplicationBase
65 |
66 | Identifier
67 | com.github.gregneagle.cocoaPythonApplicationBase
68 | Options
69 |
70 |
71 | NotPersisted
72 |
73 | Placeholder
74 | None
75 | Identifier
76 | applicationCategory
77 | Name
78 | App Store Category
79 | Description
80 | The category for your application in the Mac App Store
81 | SpecialType
82 | LSApplicationCategoryType
83 | Type
84 | popup
85 | Units
86 |
87 |
88 |
89 |
90 | Definitions
91 |
92 | Info.plist:ApplicationCategory
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 | NotPersisted
101 |
102 | Identifier
103 | pythonVersion
104 | Name
105 | Python version
106 | Description
107 | Version of Python to use
108 | Type
109 | popup
110 | Default
111 | 2.6
112 | Values
113 |
114 | 2.6
115 | 2.7
116 |
117 | Units
118 |
119 | 2.6
120 |
121 |
122 | Definitions
123 |
124 | libpython2.6.dylib
125 |
126 | Path
127 | /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/config/libpython2.6.dylib
128 | PathType
129 | Absolute
130 | Group
131 | SharedLibraries
132 |
133 |
134 | Nodes
135 |
136 | libpython2.6.dylib
137 |
138 | Project
139 |
140 | SharedSettings
141 |
142 | HEADER_SEARCH_PATHS
143 |
144 | $(inherited)
145 | /System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6
146 |
147 | LIBRARY_SEARCH_PATHS
148 |
149 | $(inherited)
150 | $(SYSTEM_LIBRARY_DIR)/Frameworks/Python.framework/Versions/2.6/lib/python2.6/config
151 |
152 |
153 |
154 |
155 |
156 | 2.7
157 |
158 |
159 | Definitions
160 |
161 | libpython2.7.dylib
162 |
163 | Path
164 | /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config/libpython2.7.dylib
165 | PathType
166 | Absolute
167 | Group
168 | SharedLibraries
169 |
170 |
171 | Nodes
172 |
173 | libpython2.7.dylib
174 |
175 | Project
176 |
177 | SharedSettings
178 |
179 | HEADER_SEARCH_PATHS
180 |
181 | $(inherited)
182 | /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
183 |
184 | LIBRARY_SEARCH_PATHS
185 |
186 | $(inherited)
187 | $(SYSTEM_LIBRARY_DIR)/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 | Targets
197 |
198 |
199 | OtherFrameworks
200 |
201 | AppKit
202 | CoreData
203 | Foundation
204 |
205 | Frameworks
206 |
207 | Cocoa
208 |
209 |
210 |
211 | Nodes
212 |
213 | main.m:imports:importCocoa
214 | main.m:imports:importPython
215 | main.m:main:NSApplicationMain
216 | Info.plist:ApplicationCategory
217 | en.lproj/Credits.rtf
218 |
219 | Project
220 |
221 |
222 |
223 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Application.xctemplate/AppDelegate.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # AppDelegate.py
4 | # ___PROJECTNAME___
5 | #
6 | # Created by ___FULLUSERNAME___ on ___DATE___.
7 | # Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
8 | #
9 |
10 | from Foundation import *
11 | from AppKit import *
12 |
13 | class AppDelegate(NSObject):
14 | def applicationDidFinishLaunching_(self, sender):
15 | NSLog("Application did finish launching.")
16 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Application.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Kind
6 | Xcode.Xcode3.ProjectTemplateUnitKind
7 | Identifier
8 | com.googlecode.gneagle.cocoaPythonApplication
9 | Concrete
10 |
11 | Description
12 | This project builds a Cocoa-based application written in a mix of Python and Objective-C.
13 | SortOrder
14 | 1
15 | Ancestors
16 |
17 | com.github.gregneagle.cocoaPythonApplicationBase
18 |
19 | Definitions
20 |
21 | main.py
22 |
23 | Path
24 | main.py
25 |
26 | AppDelegate.py
27 |
28 | Path
29 | AppDelegate.py
30 |
31 | en.lproj/MainMenu.xib
32 |
33 | Path
34 | MainMenuApp.xib
35 |
36 |
37 | Nodes
38 |
39 | main.py
40 | AppDelegate.py
41 | en.lproj/MainMenu.xib
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Application.xctemplate/main.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # main.py
4 | # ___PROJECTNAME___
5 | #
6 | # Created by ___FULLUSERNAME___ on ___DATE___.
7 | # Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
8 | #
9 |
10 | # import modules required by application
11 | import objc
12 | import Foundation
13 | import AppKit
14 |
15 | from PyObjCTools import AppHelper
16 |
17 | # import modules containing classes required to start application and load MainMenu.nib
18 | import AppDelegate
19 |
20 | # pass control to AppKit
21 | AppHelper.runEventLoop()
22 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Core Data Application.xctemplate/AppDelegate.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # AppDelegate.py
4 | # ___PROJECTNAME___
5 | #
6 | # Created by ___FULLUSERNAME___ on ___DATE___.
7 | # Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
8 | #
9 |
10 | from objc import YES, NO, IBAction, IBOutlet
11 | from Foundation import *
12 | from AppKit import *
13 | from CoreData import *
14 |
15 | import os
16 |
17 | class AppDelegate(NSObject):
18 | window = IBOutlet()
19 | _managedObjectModel = None
20 | _persistentStoreCoordinator = None
21 | _managedObjectContext = None
22 |
23 | def applicationDidFinishLaunching_(self, sender):
24 | self.managedObjectContext()
25 |
26 | def applicationSupportFolder(self):
27 | paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES)
28 | basePath = paths[0] if (len(paths) > 0) else NSTemporaryDirectory()
29 | return os.path.join(basePath, "___PROJECTNAMEASIDENTIFIER___")
30 |
31 | def managedObjectModel(self):
32 | if self._managedObjectModel: return self._managedObjectModel
33 |
34 | self._managedObjectModel = NSManagedObjectModel.mergedModelFromBundles_(None)
35 | return self._managedObjectModel
36 |
37 | def persistentStoreCoordinator(self):
38 | if self._persistentStoreCoordinator: return self._persistentStoreCoordinator
39 |
40 | applicationSupportFolder = self.applicationSupportFolder()
41 | if not os.path.exists(applicationSupportFolder):
42 | os.mkdir(applicationSupportFolder)
43 |
44 | storePath = os.path.join(applicationSupportFolder, "___PROJECTNAMEASIDENTIFIER___.xml")
45 | url = NSURL.fileURLWithPath_(storePath)
46 | self._persistentStoreCoordinator = NSPersistentStoreCoordinator.alloc().initWithManagedObjectModel_(self.managedObjectModel())
47 |
48 | success, error = self._persistentStoreCoordinator.addPersistentStoreWithType_configuration_URL_options_error_(NSXMLStoreType, None, url, None, None)
49 | if not success:
50 | NSApp().presentError_(error)
51 |
52 | return self._persistentStoreCoordinator
53 |
54 | def managedObjectContext(self):
55 | if self._managedObjectContext: return self._managedObjectContext
56 |
57 | coordinator = self.persistentStoreCoordinator()
58 | if coordinator:
59 | self._managedObjectContext = NSManagedObjectContext.alloc().init()
60 | self._managedObjectContext.setPersistentStoreCoordinator_(coordinator)
61 |
62 | return self._managedObjectContext
63 |
64 | def windowWillReturnUndoManager_(self, window):
65 | return self.managedObjectContext().undoManager()
66 |
67 | @IBAction
68 | def saveAction_(self, sender):
69 | success, error = self.managedObjectContext().save_(None)
70 | if not success:
71 | NSApp().presentError_(error)
72 |
73 | def applicationShouldTerminate_(self, sender):
74 | if not self._managedObjectContext:
75 | return NSTerminateNow
76 |
77 | if not self._managedObjectContext.commitEditing():
78 | NSLog(u'Delegate unable to commit editing to terminate')
79 | return NSTerminateCancel
80 |
81 | if not self._managedObjectContext.hasChanges():
82 | return NSTerminateNow
83 |
84 | success, error = self._managedObjectContext.save_(None)
85 |
86 | if success:
87 | return NSTerminateNow
88 |
89 | if NSApp().presentError_(error):
90 | return NSTerminateCancel
91 | else:
92 | question = NSLocalizedString(
93 | u"Could not save changes while quitting. Quit anyway?",
94 | u"Quit without saves error question message")
95 | info = NSLocalizedString(
96 | u"Quitting now will lose any changes you have made since the last successful save",
97 | u"Quit without saves error question info")
98 | quitButton = NSLocalizedString(
99 | "Quit anyway", "Quit anyway button title")
100 | cancelButton = NSLocalizedString(
101 | u"Cancel", u"Cancel button title")
102 | alert = NSAlert.alloc().init().autorelease()
103 | alert.setMessageText_(question)
104 | alert.setInformativeText_(info)
105 | alert.addButtonWithTitle_(quitButton)
106 | alert.addButtonWithTitle_(cancelButton)
107 |
108 | answer = alert.runModal()
109 |
110 | if answer == NSAlertAlternateReturn:
111 | return NSTerminateCancel
112 |
113 | return NSTerminateNow
114 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Core Data Application.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Kind
6 | Xcode.Xcode3.ProjectTemplateUnitKind
7 | Identifier
8 | com.googlecode.gneagle.cocoaPythonCoreDataApplication
9 | Concrete
10 |
11 | Description
12 | This project builds a Core Data Cocoa-based application written in a mix of Python and Objective-C.
13 | SortOrder
14 | 1
15 | Ancestors
16 |
17 | com.github.gregneagle.cocoaPythonApplicationBase
18 |
19 | Definitions
20 |
21 | ___PACKAGENAMEASIDENTIFIER___.xcdatamodeld
22 |
23 | Path
24 | ___PACKAGENAMEASIDENTIFIER___.xcdatamodeld
25 |
26 | main.py
27 |
28 | Path
29 | main.py
30 |
31 | AppDelegate.py
32 |
33 | Path
34 | AppDelegate.py
35 |
36 | en.lproj/MainMenu.xib
37 |
38 | Path
39 | MainMenuApp.xib
40 |
41 |
42 | Nodes
43 |
44 | ___PACKAGENAMEASIDENTIFIER___.xcdatamodeld
45 | main.py
46 | AppDelegate.py
47 | en.lproj/MainMenu.xib
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Core Data Application.xctemplate/___PACKAGENAMEASIDENTIFIER___.xcdatamodeld/.xccurrentversion:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Core Data Application.xctemplate/___PACKAGENAMEASIDENTIFIER___.xcdatamodeld/___PACKAGENAMEASIDENTIFIER___.xcdatamodel/contents:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Core Data Application.xctemplate/main.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # main.py
4 | # ___PROJECTNAME___
5 | #
6 | # Created by ___FULLUSERNAME___ on ___DATE___.
7 | # Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
8 | #
9 |
10 | # import modules required by application
11 | import objc
12 | import Foundation
13 | import AppKit
14 | import CoreData
15 |
16 | from PyObjCTools import AppHelper
17 |
18 | # import modules containing classes required to start application and load MainMenu.nib
19 | import AppDelegate
20 |
21 | # pass control to AppKit
22 | AppHelper.runEventLoop()
23 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Core Data Document-based Application.xctemplate/CocoaAppDocument.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # Document.py
4 | # ___PROJECTNAME___
5 | #
6 | # Created by ___FULLUSERNAME___ on ___DATE___.
7 | # Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
8 | #
9 |
10 | from Foundation import *
11 | from CoreData import *
12 | from AppKit import *
13 |
14 | class Document(NSPersistentDocument):
15 | def init(self):
16 | self = super(Document, self).init()
17 | # initialization code
18 | return self
19 |
20 | def windowNibName(self):
21 | return u"Document"
22 |
23 | def windowControllerDidLoadNib_(self, aController):
24 | super(Document, self).windowControllerDidLoadNib_(aController)
25 | # user interface preparation code
26 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Core Data Document-based Application.xctemplate/CocoaAppDocument.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1050
5 | 9A475
6 | 608
7 | 912.1
8 | 316.00
9 |
12 |
16 |
86 |
87 |
88 | YES
89 |
90 |
91 | delegate
92 |
93 |
94 |
95 | 17
96 |
97 |
98 |
99 | window
100 |
101 |
102 |
103 | 18
104 |
105 |
106 |
107 |
108 | YES
109 |
110 | 0
111 |
112 | YES
113 |
114 |
115 |
116 |
117 |
118 | -2
119 |
120 |
121 | RmlsZSdzIE93bmVyA
122 |
123 |
124 | -1
125 |
126 |
127 | First Responder
128 |
129 |
130 | 5
131 |
132 |
133 | YES
134 |
135 |
136 |
137 |
138 |
139 |
140 | 6
141 |
142 |
143 | YES
144 |
145 |
146 |
147 |
148 |
149 | 20
150 |
151 |
152 | YES
153 |
154 |
155 |
156 |
157 |
158 | 100020
159 |
160 |
161 |
162 |
163 | -3
164 |
165 |
166 | Application
167 |
168 |
169 |
170 |
171 | YES
172 |
173 | YES
174 | -1.IBPluginDependency
175 | -2.IBPluginDependency
176 | 20.IBPluginDependency
177 | 20.ImportedFromIB2
178 | 5.IBPluginDependency
179 | 5.ImportedFromIB2
180 | 5.editorWindowContentRectSynchronizationRect
181 | 5.windowTemplate.hasMaxSize
182 | 5.windowTemplate.hasMinSize
183 | 5.windowTemplate.maxSize
184 | 5.windowTemplate.minSize
185 | 6.IBPluginDependency
186 | 6.ImportedFromIB2
187 |
188 |
189 | YES
190 |
191 |
192 |
193 |
194 |
195 |
196 | {{78, 334}, {466, 466}}
197 |
198 |
199 |
200 | {131.131, 86}
201 |
202 |
203 |
204 |
205 |
206 | YES
207 |
208 | YES
209 |
210 |
211 | YES
212 |
213 |
214 |
215 |
216 | YES
217 |
218 | YES
219 |
220 |
221 | YES
222 |
223 |
224 |
225 | 100020
226 |
227 |
228 |
229 | YES
230 |
231 | Document
232 | NSPersistentDocument
233 |
234 | YES
235 |
236 | YES
237 |
238 |
239 | YES
240 |
241 |
242 |
243 | YES
244 |
245 | YES
246 |
247 |
248 | YES
249 |
250 |
251 |
252 | IBProjectSource
253 | Document.py
254 |
255 |
256 |
257 | FirstResponder
258 |
259 |
260 | YES
261 |
262 | YES
263 |
264 |
265 | YES
266 |
267 |
268 |
269 | YES
270 |
271 | YES
272 |
273 |
274 | YES
275 |
276 |
277 |
278 | IBUserSource
279 |
280 |
281 |
282 |
283 | NSPersistentDocument
284 |
285 |
286 | YES
287 |
288 | YES
289 |
290 |
291 | YES
292 |
293 |
294 |
295 | YES
296 |
297 | YES
298 |
299 |
300 | YES
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 | 0
311 | ../../CocoaDocApp.xcodeproj
312 |
313 | YnBsaXN0MDDUAAEAAgADAAQABQAGAAkAClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIA
314 | AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxBKAAsADAAxADUANgA8AD0A
315 | QQBFAEoAUgBuAG8AcABxAHIAcwB0AH4AggCNAI4AngCfAKcAqACrALUAtgC3ALwAvgDDAMQAxwDLANEA
316 | 1QDWANgA2QDaAN0A3gDiAOcA6ADwAPMA9AD2AP4BBwEQAREBEgETARQBFQEYARsBJgExATIBMwE0ATUA
317 | sgE2ATcBOAE7AT4BQVUkbnVsbN8QEgANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAf
318 | ACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMFZOU1Jvb3RWJGNsYXNzXU5TT2JqZWN0c0tl
319 | eXNfEA9OU0NsYXNzZXNWYWx1ZXNfEBlOU0FjY2Vzc2liaWxpdHlPaWRzVmFsdWVzXU5TQ29ubmVjdGlv
320 | bnNbTlNOYW1lc0tleXNbTlNGcmFtZXdvcmtdTlNDbGFzc2VzS2V5c1pOU09pZHNLZXlzXU5TTmFtZXNW
321 | YWx1ZXNfEBlOU0FjY2Vzc2liaWxpdHlDb25uZWN0b3JzXU5TRm9udE1hbmFnZXJfEBBOU1Zpc2libGVX
322 | aW5kb3dzXxAPTlNPYmplY3RzVmFsdWVzXxAXTlNBY2Nlc3NpYmlsaXR5T2lkc0tleXNZTlNOZXh0T2lk
323 | XE5TT2lkc1ZhbHVlc4ACgEmALoA7gEiACIAzgAWAOoA8gDSARoAAgAaAMoBHEgABhrWAPdIADgAyADMA
324 | NFtOU0NsYXNzTmFtZYAEgANfECN4Y1BST0pFQ1ROQU1FQVNJREVOVElGSUVSeGNEb2N1bWVudNIANwA4
325 | ADkAOlgkY2xhc3Nlc1okY2xhc3NuYW1logA6ADteTlNDdXN0b21PYmplY3RYTlNPYmplY3RfEBBJQkNv
326 | Y29hRnJhbWV3b3Jr0gAOAD4APwBAWk5TLm9iamVjdHOAB6DSADcAOABCAEOjAEMARAA7XE5TTXV0YWJs
327 | ZVNldFVOU1NldNIADgA+AEYAR4AkogBIAEmACYAs1AAOAEsATABNAE4AHwBQAFFdTlNEZXN0aW5hdGlv
328 | blhOU1NvdXJjZVdOU0xhYmVsgCuAAoAKgCreAFMADgBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEA
329 | YgBjAGQAZQBmAGcAaABiAGoAawBsAG1cTlNXaW5kb3dWaWV3XxAWTlNXaW5kb3dDb250ZW50TWF4U2l6
330 | ZVxOU1NjcmVlblJlY3RdTlNXaW5kb3dUaXRsZVlOU1dURmxhZ3NdTlNXaW5kb3dDbGFzc18QFk5TV2lu
331 | ZG93Q29udGVudE1pblNpemVcTlNXaW5kb3dSZWN0WU5TTWF4U2l6ZV8QD05TV2luZG93QmFja2luZ18Q
332 | EU5TV2luZG93U3R5bGVNYXNrWU5TTWluU2l6ZVtOU1ZpZXdDbGFzc4ARgCmAD4AngAwScHgAAIANgBCA
333 | C4APEAIQD4AogA5fEBd7ezc4LCAzMzR9LCB7NDY2LCA0NjZ9fVZXaW5kb3dYTlNXaW5kb3dUVmlld18Q
334 | GnszLjQwMjgyZSszOCwgMy40MDI4MmUrMzh9XXsxMzEuMTMxLCA4Nn3VAHUADgB2AHcAeAArAHoAewB8
335 | AH1fEA9OU05leHRSZXNwb25kZXJaTlNTdWJ2aWV3c1hOU3ZGbGFnc1tOU0ZyYW1lU2l6ZYAAgCaAEhEB
336 | AIAl0gAOAD4ARgCAgCShAIGAE9cAdQAOAIMAhAB3AIUAhgBgAIgAiQCKAHwAiwBgV05TRnJhbWVWTlND
337 | ZWxsWU5TRW5hYmxlZFtOU1N1cGVydmlld4ARgCOAFIAVCYARXxAWe3s5OCwgMjIyfSwgezI2OSwgMjJ9
338 | fdgAjwAOAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCBAJwAnVtOU0NlbGxGbGFnc18QEU5TQmFja2dyb3Vu
339 | ZENvbG9yWk5TQ29udGVudHNZTlNTdXBwb3J0XU5TQ29udHJvbFZpZXdcTlNDZWxsRmxhZ3MyW05TVGV4
340 | dENvbG9yEgQB/gCAIoAagBaAF4ATEghAAACAH18QG1lvdXIgZG9jdW1lbnQgY29udGVudHMgaGVyZdQA
341 | DgCgAKEAogCjAKQApQCmVk5TU2l6ZVZOU05hbWVYTlNmRmxhZ3OAGSNAMgAAAAAAAIAYEBBcTHVjaWRh
342 | R3JhbmRl0gA3ADgAqQCqogCqADtWTlNGb2501QAOAKwArQCuAK8AsACxALIAswC0V05TQ29sb3JcTlND
343 | b2xvclNwYWNlW05TQ29sb3JOYW1lXU5TQ2F0YWxvZ05hbWWAHoAdEAaAHIAbVlN5c3RlbVxjb250cm9s
344 | Q29sb3LTAA4ArQC4ALAAugC7V05TV2hpdGWAHhADSzAuNjY2NjY2NjkA0gA3ADgAvQCsogCsADvVAA4A
345 | rACtAK4ArwCwAMAAsgDBALSAHoAhgCCAG18QEGNvbnRyb2xUZXh0Q29sb3LTAA4ArQC4ALAAugDGgB5C
346 | MADSADcAOADIAMmkAMkAygCEADtfEA9OU1RleHRGaWVsZENlbGxcTlNBY3Rpb25DZWxs0gA3ADgAzADN
347 | pQDNAM4AzwDQADtbTlNUZXh0RmllbGRZTlNDb250cm9sVk5TVmlld1tOU1Jlc3BvbmRlctIANwA4ANIA
348 | 06MA0wDUADteTlNNdXRhYmxlQXJyYXlXTlNBcnJheVp7NDY2LCA0NjZ90gA3ADgA1wDPowDPANAAO18Q
349 | FXt7MCwgMH0sIHsxNDQwLCA4Nzd9fV57MTMxLjEzMSwgMTA4fdIANwA4ANsA3KIA3AA7XxAQTlNXaW5k
350 | b3dUZW1wbGF0ZVhkZWxlZ2F0ZdIANwA4AN8A4KMA4ADhADtfEBROU05pYk91dGxldENvbm5lY3Rvcl5O
351 | U05pYkNvbm5lY3RvctQADgBLAEwATQBOAFAAHwDmgCuACoACgC1Wd2luZG930gAOAD4A6QDqgDGlAFAA
352 | igDtAGAAgYAKgBWAL4ARgBPSAA4AMgAzAPKABIAwXU5TQXBwbGljYXRpb27SADcAOAD1ANSiANQAO9IA
353 | DgA+AOkA+IAxpQAfAIEAHwBQAGCAAoATgAKACoAR0gAOAD4A6QEAgDGmAB8AUADtAGAAgQCKgAKACoAv
354 | gBGAE4AV0gAOAD4A6QEJgDGmAQoAZAEMAQ0BDgEPgDWADIA2gDeAOIA5XEZpbGUncyBPd25lcltBcHBs
355 | aWNhdGlvblxDb250ZW50IFZpZXdfEClTdGF0aWMgVGV4dCAoWW91ciBkb2N1bWVudCBjb250ZW50cyBo
356 | ZXJlKV8QLVRleHQgRmllbGQgQ2VsbCAoWW91ciBkb2N1bWVudCBjb250ZW50cyBoZXJlKdIADgA+AOkB
357 | F4AxoNIADgA+AOkBGoAxoNIADgA+AOkBHYAxqACKAEgAHwBQAO0AYACBAEmAFYAJgAKACoAvgBGAE4As
358 | 0gAOAD4A6QEogDGoASkBKgErASwBLQEuAS8BMIA+gD+AQIBBgEKAQ4BEgEUSAAGGtBAREAEQBRP/////
359 | /////RAUEBLSAA4APgBGATqAJKDSAA4APgDpAT2AMaDSAA4APgDpAUCAMaDSADcAOAFCAUOiAUMAO15O
360 | U0lCT2JqZWN0RGF0YQAIABkAIgAnADEAOgA/AEQAUgBUAGYA/QEDAU4BVQFcAWoBfAGYAaYBsgG+AcwB
361 | 1wHlAgECDwIiAjQCTgJYAmUCZwJpAmsCbQJvAnECcwJ1AncCeQJ7An0CfwKBAoMChQKKAowClQKhAqMC
362 | pQLLAtQC3QLoAu0C/AMFAxgDIQMsAy4DLwM4Az8DTANSA1sDXQNiA2QDZgN3A4UDjgOWA5gDmgOcA54D
363 | 1wPkA/0ECgQYBCIEMARJBFYEYARyBIYEkAScBJ4EoASiBKQEpgSrBK0ErwSxBLMEtQS3BLkEuwTVBNwE
364 | 5QTqBQcFFQUqBTwFRwVQBVwFXgVgBWIFZQVnBXAFcgV1BXcFlAWcBaMFrQW5BbsFvQW/BcEFwgXEBd0F
365 | /gYKBh4GKQYzBkEGTgZaBl8GYQZjBmUGZwZpBm4GcAaOBp8GpgatBrYGuAbBBsMGxQbSBtsG4AbnBvwH
366 | BAcRBx0HKwctBy8HMQczBzUHPAdJB1YHXgdgB2IHbgd3B3wHkQeTB5UHlweZB6wHuQe7B74HxwfQB+IH
367 | 7wf4CAMIDwgZCCAILAg1CDwISwhTCF4IZwhuCIYIlQieCKMItgi/CMgIzwjmCPUJBgkICQoJDAkOCRUJ
368 | HgkgCSsJLQkvCTEJMwk1CT4JQAlCCVAJWQleCWcJaQl0CXYJeAl6CXwJfgmHCYkJlgmYCZoJnAmeCaAJ
369 | ogmrCa0Jugm8Cb4JwAnCCcQJxgnTCd8J7AoYCkgKUQpTClQKXQpfCmAKaQprCnwKfgqACoIKhAqGCogK
370 | igqMCpUKlwqoCqoKrAquCrAKsgq0CrYKuAq9Cr8KwQrDCswKzgrQCtkK2wrcCuUK5wroCvEK8wr0Cv0L
371 | AgAAAAAAAAICAAAAAAAAAUQAAAAAAAAAAAAAAAAAAAsRA
372 |
373 |
374 |
375 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Core Data Document-based Application.xctemplate/Document.xcdatamodeld/.xccurrentversion:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | _XCCurrentVersionName
6 | ___VARIABLE_classPrefix___Document.xcdatamodel
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Core Data Document-based Application.xctemplate/Document.xcdatamodeld/Document.xcdatamodel/contents:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Core Data Document-based Application.xctemplate/MainMenuApp.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1050
5 | 9F33
6 | 670
7 | 949.34
8 | 352.00
9 |
10 | YES
11 |
12 |
13 |
14 | YES
15 | com.apple.InterfaceBuilder.CocoaPlugin
16 |
17 |
18 | YES
19 |
20 |
21 | NSApplication
22 |
23 |
24 |
25 | FirstResponder
26 |
27 |
28 | NSApplication
29 |
30 |
1111 |
1112 | NSFontManager
1113 |
1114 |
1115 |
1116 |
1117 | YES
1118 |
1119 |
1120 | runPageLayout:
1121 |
1122 |
1123 |
1124 | 87
1125 |
1126 |
1127 |
1128 | showHelp:
1129 |
1130 |
1131 |
1132 | 122
1133 |
1134 |
1135 |
1136 | clearRecentDocuments:
1137 |
1138 |
1139 |
1140 | 127
1141 |
1142 |
1143 |
1144 | terminate:
1145 |
1146 |
1147 |
1148 | 139
1149 |
1150 |
1151 |
1152 | orderFrontStandardAboutPanel:
1153 |
1154 |
1155 |
1156 | 142
1157 |
1158 |
1159 |
1160 | hideOtherApplications:
1161 |
1162 |
1163 |
1164 | 146
1165 |
1166 |
1167 |
1168 | hide:
1169 |
1170 |
1171 |
1172 | 152
1173 |
1174 |
1175 |
1176 | unhideAllApplications:
1177 |
1178 |
1179 |
1180 | 153
1181 |
1182 |
1183 |
1184 | cut:
1185 |
1186 |
1187 |
1188 | 175
1189 |
1190 |
1191 |
1192 | paste:
1193 |
1194 |
1195 |
1196 | 176
1197 |
1198 |
1199 |
1200 | redo:
1201 |
1202 |
1203 |
1204 | 178
1205 |
1206 |
1207 |
1208 | selectAll:
1209 |
1210 |
1211 |
1212 | 179
1213 |
1214 |
1215 |
1216 | undo:
1217 |
1218 |
1219 |
1220 | 180
1221 |
1222 |
1223 |
1224 | copy:
1225 |
1226 |
1227 |
1228 | 181
1229 |
1230 |
1231 |
1232 | showGuessPanel:
1233 |
1234 |
1235 |
1236 | 188
1237 |
1238 |
1239 |
1240 | checkSpelling:
1241 |
1242 |
1243 |
1244 | 190
1245 |
1246 |
1247 |
1248 | toggleContinuousSpellChecking:
1249 |
1250 |
1251 |
1252 | 192
1253 |
1254 |
1255 |
1256 | performClose:
1257 |
1258 |
1259 |
1260 | 193
1261 |
1262 |
1263 |
1264 | newDocument:
1265 |
1266 |
1267 |
1268 | 194
1269 |
1270 |
1271 |
1272 | openDocument:
1273 |
1274 |
1275 |
1276 | 195
1277 |
1278 |
1279 |
1280 | saveDocument:
1281 |
1282 |
1283 |
1284 | 196
1285 |
1286 |
1287 |
1288 | saveDocumentAs:
1289 |
1290 |
1291 |
1292 | 197
1293 |
1294 |
1295 |
1296 | revertDocumentToSaved:
1297 |
1298 |
1299 |
1300 | 198
1301 |
1302 |
1303 |
1304 | printDocument:
1305 |
1306 |
1307 |
1308 | 200
1309 |
1310 |
1311 |
1312 | delete:
1313 |
1314 |
1315 |
1316 | 201
1317 |
1318 |
1319 |
1320 | performFindPanelAction:
1321 |
1322 |
1323 |
1324 | 205
1325 |
1326 |
1327 |
1328 | performFindPanelAction:
1329 |
1330 |
1331 |
1332 | 206
1333 |
1334 |
1335 |
1336 | performFindPanelAction:
1337 |
1338 |
1339 |
1340 | 207
1341 |
1342 |
1343 |
1344 | performFindPanelAction:
1345 |
1346 |
1347 |
1348 | 208
1349 |
1350 |
1351 |
1352 | centerSelectionInVisibleArea:
1353 |
1354 |
1355 |
1356 | 209
1357 |
1358 |
1359 |
1360 | performZoom:
1361 |
1362 |
1363 |
1364 | 245
1365 |
1366 |
1367 |
1368 | performMiniaturize:
1369 |
1370 |
1371 |
1372 | 246
1373 |
1374 |
1375 |
1376 | arrangeInFront:
1377 |
1378 |
1379 |
1380 | 247
1381 |
1382 |
1383 |
1384 | startSpeaking:
1385 |
1386 |
1387 |
1388 | 249
1389 |
1390 |
1391 |
1392 | stopSpeaking:
1393 |
1394 |
1395 |
1396 | 250
1397 |
1398 |
1399 |
1400 | runToolbarCustomizationPalette:
1401 |
1402 |
1403 |
1404 | 336
1405 |
1406 |
1407 |
1408 | toggleToolbarShown:
1409 |
1410 |
1411 |
1412 | 337
1413 |
1414 |
1415 |
1416 | addFontTrait:
1417 |
1418 |
1419 |
1420 | 386
1421 |
1422 |
1423 |
1424 | addFontTrait:
1425 |
1426 |
1427 |
1428 | 387
1429 |
1430 |
1431 |
1432 | modifyFont:
1433 |
1434 |
1435 |
1436 | 388
1437 |
1438 |
1439 |
1440 | orderFrontFontPanel:
1441 |
1442 |
1443 |
1444 | 389
1445 |
1446 |
1447 |
1448 | modifyFont:
1449 |
1450 |
1451 |
1452 | 390
1453 |
1454 |
1455 |
1456 | raiseBaseline:
1457 |
1458 |
1459 |
1460 | 391
1461 |
1462 |
1463 |
1464 | lowerBaseline:
1465 |
1466 |
1467 |
1468 | 392
1469 |
1470 |
1471 |
1472 | copyFont:
1473 |
1474 |
1475 |
1476 | 393
1477 |
1478 |
1479 |
1480 | subscript:
1481 |
1482 |
1483 |
1484 | 394
1485 |
1486 |
1487 |
1488 | superscript:
1489 |
1490 |
1491 |
1492 | 395
1493 |
1494 |
1495 |
1496 | tightenKerning:
1497 |
1498 |
1499 |
1500 | 396
1501 |
1502 |
1503 |
1504 | underline:
1505 |
1506 |
1507 |
1508 | 397
1509 |
1510 |
1511 |
1512 | orderFrontColorPanel:
1513 |
1514 |
1515 |
1516 | 398
1517 |
1518 |
1519 |
1520 | useAllLigatures:
1521 |
1522 |
1523 |
1524 | 399
1525 |
1526 |
1527 |
1528 | loosenKerning:
1529 |
1530 |
1531 |
1532 | 400
1533 |
1534 |
1535 |
1536 | pasteFont:
1537 |
1538 |
1539 |
1540 | 401
1541 |
1542 |
1543 |
1544 | unscript:
1545 |
1546 |
1547 |
1548 | 402
1549 |
1550 |
1551 |
1552 | useStandardKerning:
1553 |
1554 |
1555 |
1556 | 403
1557 |
1558 |
1559 |
1560 | useStandardLigatures:
1561 |
1562 |
1563 |
1564 | 404
1565 |
1566 |
1567 |
1568 | turnOffLigatures:
1569 |
1570 |
1571 |
1572 | 405
1573 |
1574 |
1575 |
1576 | turnOffKerning:
1577 |
1578 |
1579 |
1580 | 406
1581 |
1582 |
1583 |
1584 | alignLeft:
1585 |
1586 |
1587 |
1588 | 407
1589 |
1590 |
1591 |
1592 | alignJustified:
1593 |
1594 |
1595 |
1596 | 408
1597 |
1598 |
1599 |
1600 | copyRuler:
1601 |
1602 |
1603 |
1604 | 409
1605 |
1606 |
1607 |
1608 | alignCenter:
1609 |
1610 |
1611 |
1612 | 410
1613 |
1614 |
1615 |
1616 | toggleRuler:
1617 |
1618 |
1619 |
1620 | 411
1621 |
1622 |
1623 |
1624 | alignRight:
1625 |
1626 |
1627 |
1628 | 412
1629 |
1630 |
1631 |
1632 | pasteRuler:
1633 |
1634 |
1635 |
1636 | 413
1637 |
1638 |
1639 |
1640 |
1641 | YES
1642 |
1643 | 0
1644 |
1645 | YES
1646 |
1647 |
1648 |
1649 |
1650 |
1651 | -2
1652 |
1653 |
1654 | RmlsZSdzIE93bmVyA
1655 |
1656 |
1657 | -1
1658 |
1659 |
1660 | First Responder
1661 |
1662 |
1663 | 29
1664 |
1665 |
1666 | YES
1667 |
1668 |
1669 |
1670 |
1671 |
1672 |
1673 |
1674 |
1675 |
1676 | MainMenu
1677 |
1678 |
1679 | 56
1680 |
1681 |
1682 | YES
1683 |
1684 |
1685 |
1686 |
1687 |
1688 | 57
1689 |
1690 |
1691 | YES
1692 |
1693 |
1694 |
1695 |
1696 |
1697 |
1698 |
1699 |
1700 |
1701 |
1702 |
1703 |
1704 |
1705 |
1706 |
1707 | 58
1708 |
1709 |
1710 |
1711 |
1712 | 129
1713 |
1714 |
1715 |
1716 |
1717 | 131
1718 |
1719 |
1720 | YES
1721 |
1722 |
1723 |
1724 |
1725 |
1726 | 130
1727 |
1728 |
1729 |
1730 |
1731 | 134
1732 |
1733 |
1734 |
1735 |
1736 | 136
1737 |
1738 |
1739 |
1740 |
1741 | 143
1742 |
1743 |
1744 |
1745 |
1746 | 144
1747 |
1748 |
1749 |
1750 |
1751 | 145
1752 |
1753 |
1754 |
1755 |
1756 | 149
1757 |
1758 |
1759 |
1760 |
1761 | 150
1762 |
1763 |
1764 |
1765 |
1766 | 202
1767 |
1768 |
1769 |
1770 |
1771 | 83
1772 |
1773 |
1774 | YES
1775 |
1776 |
1777 |
1778 |
1779 |
1780 | 81
1781 |
1782 |
1783 | YES
1784 |
1785 |
1786 |
1787 |
1788 |
1789 |
1790 |
1791 |
1792 |
1793 |
1794 |
1795 |
1796 |
1797 |
1798 |
1799 | 72
1800 |
1801 |
1802 |
1803 |
1804 | 73
1805 |
1806 |
1807 |
1808 |
1809 | 74
1810 |
1811 |
1812 |
1813 |
1814 | 75
1815 |
1816 |
1817 |
1818 |
1819 | 77
1820 |
1821 |
1822 |
1823 |
1824 | 78
1825 |
1826 |
1827 |
1828 |
1829 | 79
1830 |
1831 |
1832 |
1833 |
1834 | 80
1835 |
1836 |
1837 |
1838 |
1839 | 82
1840 |
1841 |
1842 |
1843 |
1844 | 112
1845 |
1846 |
1847 |
1848 |
1849 | 124
1850 |
1851 |
1852 | YES
1853 |
1854 |
1855 |
1856 |
1857 |
1858 | 125
1859 |
1860 |
1861 | YES
1862 |
1863 |
1864 |
1865 |
1866 |
1867 | 126
1868 |
1869 |
1870 |
1871 |
1872 | 103
1873 |
1874 |
1875 | YES
1876 |
1877 |
1878 |
1879 |
1880 |
1881 | 106
1882 |
1883 |
1884 | YES
1885 |
1886 |
1887 |
1888 |
1889 |
1890 | 111
1891 |
1892 |
1893 |
1894 |
1895 | 163
1896 |
1897 |
1898 | YES
1899 |
1900 |
1901 |
1902 |
1903 |
1904 | 169
1905 |
1906 |
1907 | YES
1908 |
1909 |
1910 |
1911 |
1912 |
1913 |
1914 |
1915 |
1916 |
1917 |
1918 |
1919 |
1920 |
1921 |
1922 |
1923 |
1924 |
1925 | 156
1926 |
1927 |
1928 |
1929 |
1930 | 157
1931 |
1932 |
1933 |
1934 |
1935 | 158
1936 |
1937 |
1938 |
1939 |
1940 | 160
1941 |
1942 |
1943 |
1944 |
1945 | 164
1946 |
1947 |
1948 |
1949 |
1950 | 168
1951 |
1952 |
1953 | YES
1954 |
1955 |
1956 |
1957 |
1958 |
1959 | 159
1960 |
1961 |
1962 | YES
1963 |
1964 |
1965 |
1966 |
1967 |
1968 |
1969 |
1970 |
1971 |
1972 | 154
1973 |
1974 |
1975 |
1976 |
1977 | 155
1978 |
1979 |
1980 |
1981 |
1982 | 161
1983 |
1984 |
1985 |
1986 |
1987 | 162
1988 |
1989 |
1990 |
1991 |
1992 | 167
1993 |
1994 |
1995 |
1996 |
1997 | 171
1998 |
1999 |
2000 |
2001 |
2002 | 172
2003 |
2004 |
2005 |
2006 |
2007 | 173
2008 |
2009 |
2010 |
2011 |
2012 | 174
2013 |
2014 |
2015 |
2016 |
2017 | 184
2018 |
2019 |
2020 | YES
2021 |
2022 |
2023 |
2024 |
2025 |
2026 | 185
2027 |
2028 |
2029 | YES
2030 |
2031 |
2032 |
2033 |
2034 |
2035 |
2036 |
2037 |
2038 | 187
2039 |
2040 |
2041 |
2042 |
2043 | 189
2044 |
2045 |
2046 |
2047 |
2048 | 191
2049 |
2050 |
2051 |
2052 |
2053 | 228
2054 |
2055 |
2056 |
2057 |
2058 | 212
2059 |
2060 |
2061 | YES
2062 |
2063 |
2064 |
2065 |
2066 |
2067 | 213
2068 |
2069 |
2070 | YES
2071 |
2072 |
2073 |
2074 |
2075 |
2076 |
2077 |
2078 | 214
2079 |
2080 |
2081 |
2082 |
2083 | 215
2084 |
2085 |
2086 |
2087 |
2088 | 216
2089 |
2090 |
2091 |
2092 |
2093 | 220
2094 |
2095 |
2096 | YES
2097 |
2098 |
2099 |
2100 |
2101 |
2102 | 221
2103 |
2104 |
2105 | YES
2106 |
2107 |
2108 |
2109 |
2110 |
2111 |
2112 | 222
2113 |
2114 |
2115 |
2116 |
2117 | 224
2118 |
2119 |
2120 |
2121 |
2122 | 239
2123 |
2124 |
2125 | YES
2126 |
2127 |
2128 |
2129 |
2130 |
2131 | 240
2132 |
2133 |
2134 | YES
2135 |
2136 |
2137 |
2138 |
2139 |
2140 |
2141 |
2142 |
2143 | 241
2144 |
2145 |
2146 |
2147 |
2148 | 242
2149 |
2150 |
2151 |
2152 |
2153 | 243
2154 |
2155 |
2156 |
2157 |
2158 | 244
2159 |
2160 |
2161 |
2162 |
2163 | 330
2164 |
2165 |
2166 | YES
2167 |
2168 |
2169 |
2170 |
2171 |
2172 | 331
2173 |
2174 |
2175 | YES
2176 |
2177 |
2178 |
2179 |
2180 |
2181 |
2182 | 334
2183 |
2184 |
2185 |
2186 |
2187 | 335
2188 |
2189 |
2190 |
2191 |
2192 | -3
2193 |
2194 |
2195 | Application
2196 |
2197 |
2198 | 340
2199 |
2200 |
2201 | YES
2202 |
2203 |
2204 |
2205 |
2206 |
2207 | 341
2208 |
2209 |
2210 | YES
2211 |
2212 |
2213 |
2214 |
2215 |
2216 |
2217 | 342
2218 |
2219 |
2220 | YES
2221 |
2222 |
2223 |
2224 |
2225 |
2226 | 343
2227 |
2228 |
2229 | YES
2230 |
2231 |
2232 |
2233 |
2234 |
2235 | 344
2236 |
2237 |
2238 | YES
2239 |
2240 |
2241 |
2242 |
2243 |
2244 |
2245 |
2246 |
2247 |
2248 |
2249 |
2250 |
2251 | 345
2252 |
2253 |
2254 |
2255 |
2256 | 346
2257 |
2258 |
2259 |
2260 |
2261 | 347
2262 |
2263 |
2264 |
2265 |
2266 | 348
2267 |
2268 |
2269 |
2270 |
2271 | 349
2272 |
2273 |
2274 |
2275 |
2276 | 350
2277 |
2278 |
2279 |
2280 |
2281 | 351
2282 |
2283 |
2284 |
2285 |
2286 | 352
2287 |
2288 |
2289 |
2290 |
2291 | 353
2292 |
2293 |
2294 | YES
2295 |
2296 |
2297 |
2298 |
2299 |
2300 |
2301 |
2302 |
2303 |
2304 |
2305 |
2306 |
2307 |
2308 |
2309 |
2310 |
2311 |
2312 |
2313 |
2314 |
2315 | 354
2316 |
2317 |
2318 |
2319 |
2320 | 355
2321 |
2322 |
2323 |
2324 |
2325 | 356
2326 |
2327 |
2328 |
2329 |
2330 | 357
2331 |
2332 |
2333 |
2334 |
2335 | 358
2336 |
2337 |
2338 |
2339 |
2340 | 359
2341 |
2342 |
2343 |
2344 |
2345 | 360
2346 |
2347 |
2348 |
2349 |
2350 | 361
2351 |
2352 |
2353 |
2354 |
2355 | 362
2356 |
2357 |
2358 | YES
2359 |
2360 |
2361 |
2362 |
2363 |
2364 | 363
2365 |
2366 |
2367 | YES
2368 |
2369 |
2370 |
2371 |
2372 |
2373 | 364
2374 |
2375 |
2376 | YES
2377 |
2378 |
2379 |
2380 |
2381 |
2382 | 365
2383 |
2384 |
2385 |
2386 |
2387 | 366
2388 |
2389 |
2390 |
2391 |
2392 | 367
2393 |
2394 |
2395 |
2396 |
2397 | 368
2398 |
2399 |
2400 |
2401 |
2402 | 369
2403 |
2404 |
2405 |
2406 |
2407 | 370
2408 |
2409 |
2410 | YES
2411 |
2412 |
2413 |
2414 |
2415 |
2416 |
2417 |
2418 |
2419 |
2420 | 371
2421 |
2422 |
2423 |
2424 |
2425 | 372
2426 |
2427 |
2428 |
2429 |
2430 | 373
2431 |
2432 |
2433 |
2434 |
2435 | 374
2436 |
2437 |
2438 |
2439 |
2440 | 375
2441 |
2442 |
2443 |
2444 |
2445 | 376
2446 |
2447 |
2448 | YES
2449 |
2450 |
2451 |
2452 |
2453 |
2454 |
2455 |
2456 | 377
2457 |
2458 |
2459 |
2460 |
2461 | 378
2462 |
2463 |
2464 |
2465 |
2466 | 379
2467 |
2468 |
2469 |
2470 |
2471 | 380
2472 |
2473 |
2474 | YES
2475 |
2476 |
2477 |
2478 |
2479 |
2480 |
2481 |
2482 |
2483 | 381
2484 |
2485 |
2486 |
2487 |
2488 | 382
2489 |
2490 |
2491 |
2492 |
2493 | 383
2494 |
2495 |
2496 |
2497 |
2498 | 384
2499 |
2500 |
2501 |
2502 |
2503 | 385
2504 |
2505 |
2506 |
2507 |
2508 |
2509 |
2510 | YES
2511 |
2512 | YES
2513 | -1.IBPluginDependency
2514 | -2.IBPluginDependency
2515 | 103.IBPluginDependency
2516 | 103.ImportedFromIB2
2517 | 106.IBPluginDependency
2518 | 106.ImportedFromIB2
2519 | 111.IBPluginDependency
2520 | 111.ImportedFromIB2
2521 | 112.IBPluginDependency
2522 | 112.ImportedFromIB2
2523 | 124.IBPluginDependency
2524 | 124.ImportedFromIB2
2525 | 125.IBPluginDependency
2526 | 125.ImportedFromIB2
2527 | 126.IBPluginDependency
2528 | 126.ImportedFromIB2
2529 | 129.IBPluginDependency
2530 | 129.ImportedFromIB2
2531 | 130.IBPluginDependency
2532 | 130.ImportedFromIB2
2533 | 131.IBPluginDependency
2534 | 131.ImportedFromIB2
2535 | 134.IBPluginDependency
2536 | 134.ImportedFromIB2
2537 | 136.IBPluginDependency
2538 | 136.ImportedFromIB2
2539 | 143.IBPluginDependency
2540 | 143.ImportedFromIB2
2541 | 144.IBPluginDependency
2542 | 144.ImportedFromIB2
2543 | 145.IBPluginDependency
2544 | 145.ImportedFromIB2
2545 | 149.IBPluginDependency
2546 | 149.ImportedFromIB2
2547 | 150.IBPluginDependency
2548 | 150.ImportedFromIB2
2549 | 154.IBPluginDependency
2550 | 154.ImportedFromIB2
2551 | 155.IBPluginDependency
2552 | 155.ImportedFromIB2
2553 | 156.IBPluginDependency
2554 | 156.ImportedFromIB2
2555 | 157.IBPluginDependency
2556 | 157.ImportedFromIB2
2557 | 158.IBPluginDependency
2558 | 158.ImportedFromIB2
2559 | 159.IBPluginDependency
2560 | 159.ImportedFromIB2
2561 | 160.IBPluginDependency
2562 | 160.ImportedFromIB2
2563 | 161.IBPluginDependency
2564 | 161.ImportedFromIB2
2565 | 162.IBPluginDependency
2566 | 162.ImportedFromIB2
2567 | 163.IBPluginDependency
2568 | 163.ImportedFromIB2
2569 | 164.IBPluginDependency
2570 | 164.ImportedFromIB2
2571 | 167.IBPluginDependency
2572 | 167.ImportedFromIB2
2573 | 168.IBPluginDependency
2574 | 168.ImportedFromIB2
2575 | 169.IBPluginDependency
2576 | 169.ImportedFromIB2
2577 | 171.IBPluginDependency
2578 | 171.ImportedFromIB2
2579 | 172.IBPluginDependency
2580 | 172.ImportedFromIB2
2581 | 173.IBPluginDependency
2582 | 173.ImportedFromIB2
2583 | 174.IBPluginDependency
2584 | 174.ImportedFromIB2
2585 | 184.IBPluginDependency
2586 | 184.ImportedFromIB2
2587 | 185.IBPluginDependency
2588 | 185.ImportedFromIB2
2589 | 187.IBPluginDependency
2590 | 187.ImportedFromIB2
2591 | 189.IBPluginDependency
2592 | 189.ImportedFromIB2
2593 | 191.IBPluginDependency
2594 | 191.ImportedFromIB2
2595 | 202.IBPluginDependency
2596 | 202.ImportedFromIB2
2597 | 212.IBPluginDependency
2598 | 212.ImportedFromIB2
2599 | 213.IBPluginDependency
2600 | 213.ImportedFromIB2
2601 | 214.IBPluginDependency
2602 | 214.ImportedFromIB2
2603 | 215.IBPluginDependency
2604 | 215.ImportedFromIB2
2605 | 216.IBPluginDependency
2606 | 216.ImportedFromIB2
2607 | 220.IBPluginDependency
2608 | 220.ImportedFromIB2
2609 | 221.IBPluginDependency
2610 | 221.ImportedFromIB2
2611 | 222.IBPluginDependency
2612 | 222.ImportedFromIB2
2613 | 224.IBPluginDependency
2614 | 224.ImportedFromIB2
2615 | 228.IBPluginDependency
2616 | 228.ImportedFromIB2
2617 | 239.IBPluginDependency
2618 | 239.ImportedFromIB2
2619 | 240.IBPluginDependency
2620 | 240.ImportedFromIB2
2621 | 241.IBPluginDependency
2622 | 241.ImportedFromIB2
2623 | 242.IBPluginDependency
2624 | 242.ImportedFromIB2
2625 | 243.IBPluginDependency
2626 | 243.ImportedFromIB2
2627 | 244.IBPluginDependency
2628 | 244.ImportedFromIB2
2629 | 29.IBEditorWindowLastContentRect
2630 | 29.IBPluginDependency
2631 | 29.ImportedFromIB2
2632 | 330.IBPluginDependency
2633 | 330.ImportedFromIB2
2634 | 331.IBPluginDependency
2635 | 331.ImportedFromIB2
2636 | 334.IBPluginDependency
2637 | 334.ImportedFromIB2
2638 | 335.IBPluginDependency
2639 | 335.ImportedFromIB2
2640 | 340.IBPluginDependency
2641 | 341.IBPluginDependency
2642 | 342.IBPluginDependency
2643 | 343.IBPluginDependency
2644 | 344.IBPluginDependency
2645 | 345.IBPluginDependency
2646 | 346.IBPluginDependency
2647 | 347.IBPluginDependency
2648 | 348.IBPluginDependency
2649 | 349.IBPluginDependency
2650 | 350.IBPluginDependency
2651 | 351.IBPluginDependency
2652 | 352.IBPluginDependency
2653 | 353.IBPluginDependency
2654 | 354.IBPluginDependency
2655 | 355.IBPluginDependency
2656 | 356.IBPluginDependency
2657 | 357.IBPluginDependency
2658 | 358.IBPluginDependency
2659 | 359.IBPluginDependency
2660 | 360.IBPluginDependency
2661 | 361.IBPluginDependency
2662 | 362.IBPluginDependency
2663 | 363.IBPluginDependency
2664 | 364.IBPluginDependency
2665 | 365.IBPluginDependency
2666 | 366.IBPluginDependency
2667 | 367.IBPluginDependency
2668 | 368.IBPluginDependency
2669 | 369.IBPluginDependency
2670 | 370.IBPluginDependency
2671 | 371.IBPluginDependency
2672 | 372.IBPluginDependency
2673 | 373.IBPluginDependency
2674 | 374.IBPluginDependency
2675 | 375.IBPluginDependency
2676 | 376.IBPluginDependency
2677 | 377.IBPluginDependency
2678 | 378.IBPluginDependency
2679 | 379.IBPluginDependency
2680 | 380.IBPluginDependency
2681 | 381.IBPluginDependency
2682 | 382.IBPluginDependency
2683 | 383.IBPluginDependency
2684 | 384.IBPluginDependency
2685 | 56.IBPluginDependency
2686 | 56.ImportedFromIB2
2687 | 57.IBPluginDependency
2688 | 57.ImportedFromIB2
2689 | 58.IBPluginDependency
2690 | 58.ImportedFromIB2
2691 | 72.IBPluginDependency
2692 | 72.ImportedFromIB2
2693 | 73.IBPluginDependency
2694 | 73.ImportedFromIB2
2695 | 74.IBPluginDependency
2696 | 74.ImportedFromIB2
2697 | 75.IBPluginDependency
2698 | 75.ImportedFromIB2
2699 | 77.IBPluginDependency
2700 | 77.ImportedFromIB2
2701 | 78.IBPluginDependency
2702 | 78.ImportedFromIB2
2703 | 79.IBPluginDependency
2704 | 79.ImportedFromIB2
2705 | 80.IBPluginDependency
2706 | 80.ImportedFromIB2
2707 | 81.IBPluginDependency
2708 | 81.ImportedFromIB2
2709 | 82.IBPluginDependency
2710 | 82.ImportedFromIB2
2711 | 83.IBPluginDependency
2712 | 83.ImportedFromIB2
2713 |
2714 |
2715 | YES
2716 | com.apple.InterfaceBuilder.CocoaPlugin
2717 | com.apple.InterfaceBuilder.CocoaPlugin
2718 | com.apple.InterfaceBuilder.CocoaPlugin
2719 |
2720 | com.apple.InterfaceBuilder.CocoaPlugin
2721 |
2722 | com.apple.InterfaceBuilder.CocoaPlugin
2723 |
2724 | com.apple.InterfaceBuilder.CocoaPlugin
2725 |
2726 | com.apple.InterfaceBuilder.CocoaPlugin
2727 |
2728 | com.apple.InterfaceBuilder.CocoaPlugin
2729 |
2730 | com.apple.InterfaceBuilder.CocoaPlugin
2731 |
2732 | com.apple.InterfaceBuilder.CocoaPlugin
2733 |
2734 | com.apple.InterfaceBuilder.CocoaPlugin
2735 |
2736 | com.apple.InterfaceBuilder.CocoaPlugin
2737 |
2738 | com.apple.InterfaceBuilder.CocoaPlugin
2739 |
2740 | com.apple.InterfaceBuilder.CocoaPlugin
2741 |
2742 | com.apple.InterfaceBuilder.CocoaPlugin
2743 |
2744 | com.apple.InterfaceBuilder.CocoaPlugin
2745 |
2746 | com.apple.InterfaceBuilder.CocoaPlugin
2747 |
2748 | com.apple.InterfaceBuilder.CocoaPlugin
2749 |
2750 | com.apple.InterfaceBuilder.CocoaPlugin
2751 |
2752 | com.apple.InterfaceBuilder.CocoaPlugin
2753 |
2754 | com.apple.InterfaceBuilder.CocoaPlugin
2755 |
2756 | com.apple.InterfaceBuilder.CocoaPlugin
2757 |
2758 | com.apple.InterfaceBuilder.CocoaPlugin
2759 |
2760 | com.apple.InterfaceBuilder.CocoaPlugin
2761 |
2762 | com.apple.InterfaceBuilder.CocoaPlugin
2763 |
2764 | com.apple.InterfaceBuilder.CocoaPlugin
2765 |
2766 | com.apple.InterfaceBuilder.CocoaPlugin
2767 |
2768 | com.apple.InterfaceBuilder.CocoaPlugin
2769 |
2770 | com.apple.InterfaceBuilder.CocoaPlugin
2771 |
2772 | com.apple.InterfaceBuilder.CocoaPlugin
2773 |
2774 | com.apple.InterfaceBuilder.CocoaPlugin
2775 |
2776 | com.apple.InterfaceBuilder.CocoaPlugin
2777 |
2778 | com.apple.InterfaceBuilder.CocoaPlugin
2779 |
2780 | com.apple.InterfaceBuilder.CocoaPlugin
2781 |
2782 | com.apple.InterfaceBuilder.CocoaPlugin
2783 |
2784 | com.apple.InterfaceBuilder.CocoaPlugin
2785 |
2786 | com.apple.InterfaceBuilder.CocoaPlugin
2787 |
2788 | com.apple.InterfaceBuilder.CocoaPlugin
2789 |
2790 | com.apple.InterfaceBuilder.CocoaPlugin
2791 |
2792 | com.apple.InterfaceBuilder.CocoaPlugin
2793 |
2794 | com.apple.InterfaceBuilder.CocoaPlugin
2795 |
2796 | com.apple.InterfaceBuilder.CocoaPlugin
2797 |
2798 | com.apple.InterfaceBuilder.CocoaPlugin
2799 |
2800 | com.apple.InterfaceBuilder.CocoaPlugin
2801 |
2802 | com.apple.InterfaceBuilder.CocoaPlugin
2803 |
2804 | com.apple.InterfaceBuilder.CocoaPlugin
2805 |
2806 | com.apple.InterfaceBuilder.CocoaPlugin
2807 |
2808 | com.apple.InterfaceBuilder.CocoaPlugin
2809 |
2810 | com.apple.InterfaceBuilder.CocoaPlugin
2811 |
2812 | com.apple.InterfaceBuilder.CocoaPlugin
2813 |
2814 | com.apple.InterfaceBuilder.CocoaPlugin
2815 |
2816 | com.apple.InterfaceBuilder.CocoaPlugin
2817 |
2818 | com.apple.InterfaceBuilder.CocoaPlugin
2819 |
2820 | com.apple.InterfaceBuilder.CocoaPlugin
2821 |
2822 | com.apple.InterfaceBuilder.CocoaPlugin
2823 |
2824 | com.apple.InterfaceBuilder.CocoaPlugin
2825 |
2826 | com.apple.InterfaceBuilder.CocoaPlugin
2827 |
2828 | com.apple.InterfaceBuilder.CocoaPlugin
2829 |
2830 | com.apple.InterfaceBuilder.CocoaPlugin
2831 |
2832 | {{448, 779}, {502, 20}}
2833 | com.apple.InterfaceBuilder.CocoaPlugin
2834 |
2835 | com.apple.InterfaceBuilder.CocoaPlugin
2836 |
2837 | com.apple.InterfaceBuilder.CocoaPlugin
2838 |
2839 | com.apple.InterfaceBuilder.CocoaPlugin
2840 |
2841 | com.apple.InterfaceBuilder.CocoaPlugin
2842 |
2843 | com.apple.InterfaceBuilder.CocoaPlugin
2844 | com.apple.InterfaceBuilder.CocoaPlugin
2845 | com.apple.InterfaceBuilder.CocoaPlugin
2846 | com.apple.InterfaceBuilder.CocoaPlugin
2847 | com.apple.InterfaceBuilder.CocoaPlugin
2848 | com.apple.InterfaceBuilder.CocoaPlugin
2849 | com.apple.InterfaceBuilder.CocoaPlugin
2850 | com.apple.InterfaceBuilder.CocoaPlugin
2851 | com.apple.InterfaceBuilder.CocoaPlugin
2852 | com.apple.InterfaceBuilder.CocoaPlugin
2853 | com.apple.InterfaceBuilder.CocoaPlugin
2854 | com.apple.InterfaceBuilder.CocoaPlugin
2855 | com.apple.InterfaceBuilder.CocoaPlugin
2856 | com.apple.InterfaceBuilder.CocoaPlugin
2857 | com.apple.InterfaceBuilder.CocoaPlugin
2858 | com.apple.InterfaceBuilder.CocoaPlugin
2859 | com.apple.InterfaceBuilder.CocoaPlugin
2860 | com.apple.InterfaceBuilder.CocoaPlugin
2861 | com.apple.InterfaceBuilder.CocoaPlugin
2862 | com.apple.InterfaceBuilder.CocoaPlugin
2863 | com.apple.InterfaceBuilder.CocoaPlugin
2864 | com.apple.InterfaceBuilder.CocoaPlugin
2865 | com.apple.InterfaceBuilder.CocoaPlugin
2866 | com.apple.InterfaceBuilder.CocoaPlugin
2867 | com.apple.InterfaceBuilder.CocoaPlugin
2868 | com.apple.InterfaceBuilder.CocoaPlugin
2869 | com.apple.InterfaceBuilder.CocoaPlugin
2870 | com.apple.InterfaceBuilder.CocoaPlugin
2871 | com.apple.InterfaceBuilder.CocoaPlugin
2872 | com.apple.InterfaceBuilder.CocoaPlugin
2873 | com.apple.InterfaceBuilder.CocoaPlugin
2874 | com.apple.InterfaceBuilder.CocoaPlugin
2875 | com.apple.InterfaceBuilder.CocoaPlugin
2876 | com.apple.InterfaceBuilder.CocoaPlugin
2877 | com.apple.InterfaceBuilder.CocoaPlugin
2878 | com.apple.InterfaceBuilder.CocoaPlugin
2879 | com.apple.InterfaceBuilder.CocoaPlugin
2880 | com.apple.InterfaceBuilder.CocoaPlugin
2881 | com.apple.InterfaceBuilder.CocoaPlugin
2882 | com.apple.InterfaceBuilder.CocoaPlugin
2883 | com.apple.InterfaceBuilder.CocoaPlugin
2884 | com.apple.InterfaceBuilder.CocoaPlugin
2885 | com.apple.InterfaceBuilder.CocoaPlugin
2886 | com.apple.InterfaceBuilder.CocoaPlugin
2887 | com.apple.InterfaceBuilder.CocoaPlugin
2888 | com.apple.InterfaceBuilder.CocoaPlugin
2889 |
2890 | com.apple.InterfaceBuilder.CocoaPlugin
2891 |
2892 | com.apple.InterfaceBuilder.CocoaPlugin
2893 |
2894 | com.apple.InterfaceBuilder.CocoaPlugin
2895 |
2896 | com.apple.InterfaceBuilder.CocoaPlugin
2897 |
2898 | com.apple.InterfaceBuilder.CocoaPlugin
2899 |
2900 | com.apple.InterfaceBuilder.CocoaPlugin
2901 |
2902 | com.apple.InterfaceBuilder.CocoaPlugin
2903 |
2904 | com.apple.InterfaceBuilder.CocoaPlugin
2905 |
2906 | com.apple.InterfaceBuilder.CocoaPlugin
2907 |
2908 | com.apple.InterfaceBuilder.CocoaPlugin
2909 |
2910 | com.apple.InterfaceBuilder.CocoaPlugin
2911 |
2912 | com.apple.InterfaceBuilder.CocoaPlugin
2913 |
2914 | com.apple.InterfaceBuilder.CocoaPlugin
2915 |
2916 |
2917 |
2918 |
2919 | YES
2920 |
2921 | YES
2922 |
2923 |
2924 | YES
2925 |
2926 |
2927 |
2928 |
2929 | YES
2930 |
2931 | YES
2932 |
2933 |
2934 | YES
2935 |
2936 |
2937 |
2938 | 413
2939 |
2940 |
2941 |
2942 | YES
2943 |
2944 | FirstResponder
2945 | NSObject
2946 |
2947 | IBUserSource
2948 |
2949 |
2950 |
2951 |
2952 |
2953 | 0
2954 | ../CocoaDocApp.xcodeproj
2955 | 3
2956 |
2957 |
2958 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Core Data Document-based Application.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Kind
6 | Xcode.Xcode3.ProjectTemplateUnitKind
7 | Identifier
8 | com.googlecode.gneagle.cocoaPythonCoreDataDocumentBasedApplication
9 | Concrete
10 |
11 | Description
12 | This project builds a Core Data Document-based application written in a mix of Python and Objective-C.
13 | SortOrder
14 | 1
15 | Ancestors
16 |
17 | com.github.gregneagle.cocoaPythonApplicationBase
18 |
19 | Definitions
20 |
21 | Info.plist:DocumentTypes
22 | <key>CFBundleDocumentTypes</key>
23 | <array>
24 | <dict>
25 | <key>CFBundleTypeExtensions</key>
26 | <array>
27 | <string>binary</string>
28 | </array>
29 | <key>CFBundleTypeMIMETypes</key>
30 | <array>
31 | <string>application/octet-stream</string>
32 | </array>
33 | <key>CFBundleTypeName</key>
34 | <string>Binary</string>
35 | <key>CFBundleTypeRole</key>
36 | <string>Editor</string>
37 | <key>LSTypeIsPackage</key>
38 | <false/>
39 | <key>NSDocumentClass</key>
40 | <string>Document</string>
41 | <key>NSPersistentStoreTypeKey</key>
42 | <string>Binary</string>
43 | </dict>
44 | <dict>
45 | <key>CFBundleTypeExtensions</key>
46 | <array>
47 | <string>sqlite</string>
48 | </array>
49 | <key>CFBundleTypeMIMETypes</key>
50 | <array>
51 | <string>application/octet-stream</string>
52 | </array>
53 | <key>CFBundleTypeName</key>
54 | <string>SQLite</string>
55 | <key>CFBundleTypeRole</key>
56 | <string>Editor</string>
57 | <key>LSTypeIsPackage</key>
58 | <false/>
59 | <key>NSDocumentClass</key>
60 | <string>Document</string>
61 | <key>NSPersistentStoreTypeKey</key>
62 | <string>SQLite</string>
63 | </dict>
64 | <dict>
65 | <key>CFBundleTypeExtensions</key>
66 | <array>
67 | <string>xml</string>
68 | </array>
69 | <key>CFBundleTypeIconFile</key>
70 | <string></string>
71 | <key>CFBundleTypeMIMETypes</key>
72 | <array>
73 | <string>text/xml</string>
74 | </array>
75 | <key>CFBundleTypeName</key>
76 | <string>XML</string>
77 | <key>CFBundleTypeOSTypes</key>
78 | <array>
79 | <string>????</string>
80 | </array>
81 | <key>CFBundleTypeRole</key>
82 | <string>Editor</string>
83 | <key>LSTypeIsPackage</key>
84 | <false/>
85 | <key>NSDocumentClass</key>
86 | <string>Document</string>
87 | <key>NSPersistentStoreTypeKey</key>
88 | <string>XML</string>
89 | </dict>
90 | </array>
91 |
92 | ___VARIABLE_classPrefix___Document.xcdatamodeld
93 |
94 | Path
95 | Document.xcdatamodeld
96 |
97 | main.py
98 |
99 | Path
100 | main.py
101 |
102 | Document.py
103 |
104 | Path
105 | CocoaAppDocument.py
106 |
107 | en.lproj/MainMenu.xib
108 |
109 | Path
110 | MainMenuApp.xib
111 |
112 | en.lproj/Document.xib
113 |
114 | Path
115 | CocoaAppDocument.xib
116 |
117 |
118 | Nodes
119 |
120 | Info.plist:DocumentTypes
121 | Document.xcdatamodeld
122 | main.py
123 | Document.py
124 | en.lproj/MainMenu.xib
125 | en.lproj/Document.xib
126 |
127 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Core Data Document-based Application.xctemplate/main.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # main.py
4 | # ___PROJECTNAME___
5 | #
6 | # Created by ___FULLUSERNAME___ on ___DATE___.
7 | # Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
8 | #
9 |
10 | # import modules required by application
11 | import objc
12 | import Foundation
13 | import AppKit
14 | import CoreData
15 |
16 | from PyObjCTools import AppHelper
17 |
18 | # import modules containing classes required to start application and load MainMenu.nib
19 | import Document
20 |
21 | # pass control to AppKit
22 | AppHelper.runEventLoop()
23 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Document-based Application.xctemplate/CocoaAppDocument.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # Document.py
4 | # ___PROJECTNAME___
5 | #
6 | # Created by ___FULLUSERNAME___ on ___DATE___.
7 | # Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
8 | #
9 |
10 | from Foundation import *
11 | from AppKit import *
12 |
13 | class Document(NSDocument):
14 | def init(self):
15 | self = super(Document, self).init()
16 | # initialization code
17 | return self
18 |
19 | def windowNibName(self):
20 | return u"Document"
21 |
22 | def windowControllerDidLoadNib_(self, aController):
23 | super(Document, self).windowControllerDidLoadNib_(aController)
24 |
25 | def dataOfType_error_(self, typeName, outError):
26 | return None, NSError.errorWithDomain_code_userInfo_(NSOSStatusErrorDomain, -4, None) # -4 is unimpErr from CarbonCore
27 |
28 | def readFromData_ofType_error_(self, data, typeName, outError):
29 | return NO, NSError.errorWithDomain_code_userInfo_(NSOSStatusErrorDomain, -4, None) # -4 is unimpErr from CarbonCore
30 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Document-based Application.xctemplate/CocoaAppDocument.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1050
5 | 9F33
6 | 672
7 | 949.34
8 | 352.00
9 |
10 | YES
11 |
12 |
13 |
14 | YES
15 | com.apple.InterfaceBuilder.CocoaPlugin
16 |
17 |
18 | YES
19 |
20 | Document
21 |
22 |
23 | FirstResponder
24 |
25 |
26 | 15
27 | 2
28 | {{201, 387}, {507, 413}}
29 | 1886912512
30 | Window
31 | NSWindow
32 | View
33 | {3.40282e+38, 3.40282e+38}
34 | {94, 86}
35 |
36 |
37 | 256
38 |
39 | YES
40 |
41 |
42 | 256
43 | {{119, 195}, {269, 22}}
44 |
45 | YES
46 |
47 | 67239424
48 | 138412032
49 | Your document contents here
50 |
51 | LucidaGrande
52 | 1.800000e+01
53 | 16
54 |
55 |
56 |
57 | 6
58 | System
59 | controlColor
60 |
61 | 3
62 | MC42NjY2NjY2OQA
63 |
64 |
65 |
66 | 6
67 | System
68 | controlTextColor
69 |
70 | 3
71 | MAA
72 |
73 |
74 |
75 |
76 |
77 | {507, 413}
78 |
79 |
80 | {{0, 0}, {1440, 878}}
81 | {94, 108}
82 | {3.40282e+38, 3.40282e+38}
83 |
84 |
85 | NSApplication
86 |
87 |
88 |
89 |
90 | YES
91 |
92 |
93 | delegate
94 |
95 |
96 |
97 | 17
98 |
99 |
100 |
101 | window
102 |
103 |
104 |
105 | 18
106 |
107 |
108 |
109 |
110 | YES
111 |
112 | 0
113 |
114 | YES
115 |
116 |
117 |
118 |
119 |
120 | -2
121 |
122 |
123 | RmlsZSdzIE93bmVyA
124 |
125 |
126 | -1
127 |
128 |
129 | First Responder
130 |
131 |
132 | 5
133 |
134 |
135 | YES
136 |
137 |
138 |
139 | Window
140 |
141 |
142 | 6
143 |
144 |
145 | YES
146 |
147 |
148 |
149 |
150 |
151 | 20
152 |
153 |
154 | YES
155 |
156 |
157 |
158 |
159 |
160 | 100020
161 |
162 |
163 |
164 |
165 | -3
166 |
167 |
168 | Application
169 |
170 |
171 |
172 |
173 | YES
174 |
175 | YES
176 | -1.IBPluginDependency
177 | -2.IBPluginDependency
178 | 20.IBPluginDependency
179 | 20.ImportedFromIB2
180 | 5.IBEditorWindowLastContentRect
181 | 5.IBPluginDependency
182 | 5.IBWindowTemplateEditedContentRect
183 | 5.ImportedFromIB2
184 | 5.editorWindowContentRectSynchronizationRect
185 | 5.windowTemplate.hasMinSize
186 | 5.windowTemplate.minSize
187 | 6.IBPluginDependency
188 | 6.ImportedFromIB2
189 |
190 |
191 | YES
192 | com.apple.InterfaceBuilder.CocoaPlugin
193 | com.apple.InterfaceBuilder.CocoaPlugin
194 | com.apple.InterfaceBuilder.CocoaPlugin
195 |
196 | {{54, 421}, {507, 413}}
197 | com.apple.InterfaceBuilder.CocoaPlugin
198 | {{54, 421}, {507, 413}}
199 |
200 | {{201, 387}, {507, 413}}
201 |
202 | {94, 86}
203 | com.apple.InterfaceBuilder.CocoaPlugin
204 |
205 |
206 |
207 |
208 | YES
209 |
210 | YES
211 |
212 |
213 | YES
214 |
215 |
216 |
217 |
218 | YES
219 |
220 | YES
221 |
222 |
223 | YES
224 |
225 |
226 |
227 | 100020
228 |
229 |
230 |
231 | YES
232 |
233 | Document
234 | NSDocument
235 |
236 | IBProjectSource
237 | Document.py
238 |
239 |
240 |
241 |
242 | 0
243 | ../CocoaDocApp.xcodeproj
244 | 3
245 |
246 |
247 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Document-based Application.xctemplate/TemplateInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Kind
6 | Xcode.Xcode3.ProjectTemplateUnitKind
7 | Identifier
8 | com.googlecode.gneagle.cocoaPythonDocumentBasedApplication
9 | Concrete
10 |
11 | Description
12 | This project builds a Cocoa-based application written in a mix of Python and Objective-C.
13 | SortOrder
14 | 1
15 | Ancestors
16 |
17 | com.github.gregneagle.cocoaPythonApplicationBase
18 |
19 | Definitions
20 |
21 | main.py
22 |
23 | Path
24 | main.py
25 |
26 | Document.py
27 |
28 | Path
29 | CocoaAppDocument.py
30 |
31 | en.lproj/MainMenu.xib
32 |
33 | Path
34 | MainMenuApp.xib
35 |
36 | en.lproj/Document.xib
37 |
38 | Path
39 | CocoaAppDocument.xib
40 |
41 | Info.plist:DocumentTypes
42 | <key>CFBundleDocumentTypes</key>
43 | <array>
44 | <dict>
45 | <key>CFBundleTypeExtensions</key>
46 | <array>
47 | <string>mydoc</string>
48 | </array>
49 | <key>CFBundleTypeIconFile</key>
50 | <string></string>
51 | <key>CFBundleTypeName</key>
52 | <string>DocumentType</string>
53 | <key>CFBundleTypeOSTypes</key>
54 | <array>
55 | <string>????</string>
56 | </array>
57 | <key>CFBundleTypeRole</key>
58 | <string>Editor</string>
59 | <key>NSDocumentClass</key>
60 | <string>Document</string>
61 | </dict>
62 | </array>
63 |
64 |
65 | Nodes
66 |
67 | main.py
68 | Document.py
69 | en.lproj/MainMenu.xib
70 | en.lproj/Document.xib
71 | Info.plist:DocumentTypes
72 |
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/Project Templates/Cocoa-Python/Cocoa-Python Document-based Application.xctemplate/main.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # main.py
4 | # ___PROJECTNAME___
5 | #
6 | # Created by ___FULLUSERNAME___ on ___DATE___.
7 | # Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
8 | #
9 |
10 | # import modules required by application
11 | import objc
12 | import Foundation
13 | import AppKit
14 |
15 | from PyObjCTools import AppHelper
16 |
17 | # import modules containing classes required to start application and load MainMenu.nib
18 | import Document
19 |
20 | # pass control to AppKit
21 | AppHelper.runEventLoop()
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | **Xcode 6 Cocoa-Python Templates**
2 |
3 | This is a set of File templates and Project templates for use with Xcode 6. These have been tested with Xcode 6.2 on Mavericks.
4 |
5 | Using the Xcode 3 templates here: http://svn.red-bean.com/pyobjc/trunk/pyobjc/pyobjc-xcode/ as a starting point, and also using the existing Xcode 4 templates as a reference, I ported the Xcode 3 templates to the Xcode 4 format.
6 |
7 | Xcode 5 brought some changes to using Python with Xcode, which you can read about here: https://developer.apple.com/library/mac/technotes/tn2328/_index.html
8 |
9 | This meant using the Xcode 4 Cocoa-Python templates with Xcode 5 required lots of manual tweaking before you could get a project to build.
10 |
11 | So the templates were updated for Xcode 5.
12 |
13 | But those templates had some issues with Xcode 6...
14 |
15 | So here we are.
16 |
17 | **How to use these**
18 |
19 | Either clone this repo or download the zip and expand it. Copy the File Templates and Project Templates folders to the following path in your home directory, creating any missing intermediate directories if needed:
20 |
21 | ~/Library/Developer/Xcode/Templates/
22 |
23 | Launch Xcode 6. The File templates should be available from the template browser available when you choose File->New->File... -- they'll be listed under Mac OS X/Cocoa-Python.
24 |
25 | The Project templates should be available when creating a new project, also under Mac OS X/Cocoa-Python.
26 |
27 | When creating the project, you can choose to link to Python 2.6 or Python 2.7. Choose Python 2.6 if you want to build projects that will run under Snow Leopard; Python 2.7 was not available on OS X until Lion shipped.
28 |
29 | **Additional references**
30 |
31 | http://blog.boreal-kiss.net/2011/03/11/a-minimal-project-template-for-xcode-4/
32 |
33 | http://red-glasses.com/index.php/tutorials/making-custom-templates-for-xcode-4-march-2011/
34 |
35 | https://snipt.net/raw/b216c160f38e9b3c095222607739b21c/?nice
36 |
37 | https://github.com/NSBoilerplate/Xcode-Project-Templates/wiki/Creating-Xcode-4.x-Project-Templates
38 |
39 | http://www.learn-cocos2d.com/store/xcode4-template-documentation/
40 |
41 |
--------------------------------------------------------------------------------