Permalink
Browse files

new version of quick cursor

  • Loading branch information...
1 parent 208a756 commit f1ecb587d6f8536c2ca01f8030de0be3105c67c2 @jessegrosjean jessegrosjean committed Sep 3, 2009
Showing with 26,069 additions and 870 deletions.
  1. +71 −0 BBAppSessionLoginState.h
  2. +220 −0 BBAppSessionLoginState.m
  3. BIN English.lproj/InfoPlist.strings
  4. +0 −132 English.lproj/MainMenu.nib/designable.nib
  5. BIN English.lproj/MainMenu.nib/keyedobjects.nib
  6. +1,119 −0 English.lproj/MainMenu.xib
  7. 0 {Plugins/QCUserInterface → }/NSAppleEventDescriptor-Extensions.h
  8. +2 −6 {Plugins/QCUserInterface → }/NSAppleEventDescriptor-Extensions.m
  9. 0 {Plugins/QCUserInterface → }/ODBEditor.h
  10. +5 −3 {Plugins/QCUserInterface → }/ODBEditor.m
  11. 0 {Plugins/QCUserInterface → }/ODBEditorSuite.h
  12. +52 −0 PTHotKey.h
  13. +136 −0 PTHotKey.m
  14. +35 −0 PTHotKeyCenter.h
  15. +267 −0 PTHotKeyCenter.m
  16. +26 −0 PTKeyCodeTranslator.h
  17. +72 −0 PTKeyCodeTranslator.m
  18. +38 −0 PTKeyCombo.h
  19. +245 −0 PTKeyCombo.m
  20. +0 −11 Plugin.xml
  21. +0 −26 Plugins/QCUserInterface/Plugin.xml
  22. +0 −28 Plugins/QCUserInterface/QCUserInterfaceController.h
  23. +0 −143 Plugins/QCUserInterface/QCUserInterfaceController.m
  24. +32 −0 QCAppDelegate.h
  25. +275 −0 QCAppDelegate.m
  26. 0 {Plugins/QCUserInterface → }/QCUIElement.h
  27. +11 −11 {Plugins/QCUserInterface → }/QCUIElement.m
  28. +17 −15 Info.plist → QuickCursor-Info.plist
  29. BIN QuickCursor.icns
  30. +157 −451 QuickCursor.xcodeproj/project.pbxproj
  31. +2 −1 QuickCursor_Prefix.pch
  32. +2 −27 README.txt
  33. BIN StatusItemIcon.pdf
  34. +0 −1 Vendor/BCrashReporter
  35. +0 −1 Vendor/BLifecycle
  36. +0 −1 Vendor/BSoftwareUpdate
  37. +0 −1 Vendor/Blocks
  38. +0 −1 Vendor/SystemVersionCheck
  39. +6 −8 main.m
  40. +17 −0 shortcutrecorder-read-only/.svn/all-wcprops
  41. +5 −0 shortcutrecorder-read-only/.svn/dir-prop-base
  42. +129 −0 shortcutrecorder-read-only/.svn/entries
  43. +39 −0 shortcutrecorder-read-only/.svn/text-base/LICENSE.txt.svn-base
  44. +7 −0 shortcutrecorder-read-only/.svn/text-base/ShortcutRecorder_Prefix.pch.svn-base
  45. +29 −0 shortcutrecorder-read-only/Demo/.svn/all-wcprops
  46. +170 −0 shortcutrecorder-read-only/Demo/.svn/entries
  47. +54 −0 shortcutrecorder-read-only/Demo/.svn/text-base/AppController.h.svn-base
  48. +132 −0 shortcutrecorder-read-only/Demo/.svn/text-base/AppController.m.svn-base
  49. +28 −0 shortcutrecorder-read-only/Demo/.svn/text-base/Info.plist.svn-base
  50. +13 −0 shortcutrecorder-read-only/Demo/.svn/text-base/main.m.svn-base
  51. +54 −0 shortcutrecorder-read-only/Demo/AppController.h
  52. +132 −0 shortcutrecorder-read-only/Demo/AppController.m
  53. +23 −0 shortcutrecorder-read-only/Demo/English.lproj/.svn/all-wcprops
  54. +133 −0 shortcutrecorder-read-only/Demo/English.lproj/.svn/entries
  55. +5 −0 shortcutrecorder-read-only/Demo/English.lproj/.svn/prop-base/InfoPlist.strings.svn-base
  56. BIN shortcutrecorder-read-only/Demo/English.lproj/.svn/text-base/InfoPlist.strings.svn-base
  57. +13 −0 shortcutrecorder-read-only/Demo/English.lproj/.svn/text-base/Localizable.strings.svn-base
  58. +3,846 −0 shortcutrecorder-read-only/Demo/English.lproj/.svn/text-base/MainMenu.xib.svn-base
  59. BIN shortcutrecorder-read-only/Demo/English.lproj/InfoPlist.strings
  60. +13 −0 shortcutrecorder-read-only/Demo/English.lproj/Localizable.strings
  61. +29 −0 shortcutrecorder-read-only/Demo/English.lproj/MainMenu.nib/.svn/all-wcprops
  62. +164 −0 shortcutrecorder-read-only/Demo/English.lproj/MainMenu.nib/.svn/entries
  63. +5 −0 shortcutrecorder-read-only/Demo/English.lproj/MainMenu.nib/.svn/prop-base/keyedobjects.nib.svn-base
  64. +37 −0 shortcutrecorder-read-only/Demo/English.lproj/MainMenu.nib/.svn/text-base/classes.nib.svn-base
  65. +10 −0 shortcutrecorder-read-only/Demo/English.lproj/MainMenu.nib/.svn/text-base/data.dependency.svn-base
  66. +41 −0 shortcutrecorder-read-only/Demo/English.lproj/MainMenu.nib/.svn/text-base/info.nib.svn-base
  67. BIN shortcutrecorder-read-only/Demo/English.lproj/MainMenu.nib/.svn/text-base/keyedobjects.nib.svn-base
  68. +37 −0 shortcutrecorder-read-only/Demo/English.lproj/MainMenu.nib/classes.nib
  69. +10 −0 shortcutrecorder-read-only/Demo/English.lproj/MainMenu.nib/data.dependency
  70. +41 −0 shortcutrecorder-read-only/Demo/English.lproj/MainMenu.nib/info.nib
  71. BIN shortcutrecorder-read-only/Demo/English.lproj/MainMenu.nib/keyedobjects.nib
  72. +3,846 −0 shortcutrecorder-read-only/Demo/English.lproj/MainMenu.xib
  73. +53 −0 shortcutrecorder-read-only/Demo/HotKey/.svn/all-wcprops
  74. +300 −0 shortcutrecorder-read-only/Demo/HotKey/.svn/entries
  75. +52 −0 shortcutrecorder-read-only/Demo/HotKey/.svn/text-base/PTHotKey.h.svn-base
  76. +136 −0 shortcutrecorder-read-only/Demo/HotKey/.svn/text-base/PTHotKey.m.svn-base
  77. +35 −0 shortcutrecorder-read-only/Demo/HotKey/.svn/text-base/PTHotKeyCenter.h.svn-base
  78. +267 −0 shortcutrecorder-read-only/Demo/HotKey/.svn/text-base/PTHotKeyCenter.m.svn-base
  79. +26 −0 shortcutrecorder-read-only/Demo/HotKey/.svn/text-base/PTKeyCodeTranslator.h.svn-base
  80. +72 −0 shortcutrecorder-read-only/Demo/HotKey/.svn/text-base/PTKeyCodeTranslator.m.svn-base
  81. +38 −0 shortcutrecorder-read-only/Demo/HotKey/.svn/text-base/PTKeyCombo.h.svn-base
  82. +245 −0 shortcutrecorder-read-only/Demo/HotKey/.svn/text-base/PTKeyCombo.m.svn-base
  83. +52 −0 shortcutrecorder-read-only/Demo/HotKey/PTHotKey.h
  84. +136 −0 shortcutrecorder-read-only/Demo/HotKey/PTHotKey.m
  85. +35 −0 shortcutrecorder-read-only/Demo/HotKey/PTHotKeyCenter.h
  86. +267 −0 shortcutrecorder-read-only/Demo/HotKey/PTHotKeyCenter.m
  87. +26 −0 shortcutrecorder-read-only/Demo/HotKey/PTKeyCodeTranslator.h
  88. +72 −0 shortcutrecorder-read-only/Demo/HotKey/PTKeyCodeTranslator.m
  89. +38 −0 shortcutrecorder-read-only/Demo/HotKey/PTKeyCombo.h
  90. +245 −0 shortcutrecorder-read-only/Demo/HotKey/PTKeyCombo.m
  91. +28 −0 shortcutrecorder-read-only/Demo/Info.plist
  92. +13 −0 shortcutrecorder-read-only/Demo/main.m
  93. +486 −0 shortcutrecorder-read-only/Documentation/.draft.rtf
  94. +17 −0 shortcutrecorder-read-only/Documentation/.svn/all-wcprops
  95. +96 −0 shortcutrecorder-read-only/Documentation/.svn/entries
  96. +486 −0 shortcutrecorder-read-only/Documentation/.svn/text-base/.draft.rtf.svn-base
  97. +432 −0 shortcutrecorder-read-only/Documentation/.svn/text-base/ShortcutRecorder.html.svn-base
  98. +432 −0 shortcutrecorder-read-only/Documentation/ShortcutRecorder.html
  99. +11 −0 shortcutrecorder-read-only/Dutch.lproj/.svn/all-wcprops
  100. +62 −0 shortcutrecorder-read-only/Dutch.lproj/.svn/entries
  101. +5 −0 shortcutrecorder-read-only/Dutch.lproj/.svn/prop-base/ShortcutRecorder.strings.svn-base
  102. BIN shortcutrecorder-read-only/Dutch.lproj/.svn/text-base/ShortcutRecorder.strings.svn-base
  103. BIN shortcutrecorder-read-only/Dutch.lproj/ShortcutRecorder.strings
  104. +11 −0 shortcutrecorder-read-only/English.lproj/.svn/all-wcprops
  105. +62 −0 shortcutrecorder-read-only/English.lproj/.svn/entries
  106. +5 −0 shortcutrecorder-read-only/English.lproj/.svn/prop-base/ShortcutRecorder.strings.svn-base
  107. BIN shortcutrecorder-read-only/English.lproj/.svn/text-base/ShortcutRecorder.strings.svn-base
  108. BIN shortcutrecorder-read-only/English.lproj/ShortcutRecorder.strings
  109. +35 −0 shortcutrecorder-read-only/Framework/.svn/all-wcprops
  110. +198 −0 shortcutrecorder-read-only/Framework/.svn/entries
  111. +5 −0 shortcutrecorder-read-only/Framework/.svn/prop-base/SR_LeopardView.classdescription.svn-base
  112. +3 −3 ...ist → shortcutrecorder-read-only/Framework/.svn/text-base/SR_LeopardFramework-Info.plist.svn-base
  113. +9 −0 shortcutrecorder-read-only/Framework/.svn/text-base/SR_LeopardView.classdescription.svn-base
  114. +15 −0 shortcutrecorder-read-only/Framework/.svn/text-base/SR_LeopardView.h.svn-base
  115. +13 −0 shortcutrecorder-read-only/Framework/.svn/text-base/SR_LeopardView.m.svn-base
  116. +17 −0 shortcutrecorder-read-only/Framework/.svn/text-base/ShortcutRecorder.h.svn-base
  117. +20 −0 shortcutrecorder-read-only/Framework/SR_LeopardFramework-Info.plist
  118. +9 −0 shortcutrecorder-read-only/Framework/SR_LeopardView.classdescription
  119. +15 −0 shortcutrecorder-read-only/Framework/SR_LeopardView.h
  120. +13 −0 shortcutrecorder-read-only/Framework/SR_LeopardView.m
  121. +17 −0 shortcutrecorder-read-only/Framework/ShortcutRecorder.h
  122. +11 −0 shortcutrecorder-read-only/German.lproj/.svn/all-wcprops
  123. +62 −0 shortcutrecorder-read-only/German.lproj/.svn/entries
  124. +13 −0 shortcutrecorder-read-only/German.lproj/.svn/text-base/ShortcutRecorder.strings.svn-base
  125. +13 −0 shortcutrecorder-read-only/German.lproj/ShortcutRecorder.strings
  126. +29 −0 shortcutrecorder-read-only/Images/.svn/all-wcprops
  127. +164 −0 shortcutrecorder-read-only/Images/.svn/entries
  128. +5 −0 shortcutrecorder-read-only/Images/.svn/prop-base/SRRemoveShortcut.tif.svn-base
  129. +5 −0 shortcutrecorder-read-only/Images/.svn/prop-base/SRRemoveShortcutPressed.tif.svn-base
  130. +5 −0 shortcutrecorder-read-only/Images/.svn/prop-base/SRRemoveShortcutRollover.tif.svn-base
  131. +5 −0 shortcutrecorder-read-only/Images/.svn/prop-base/SRSnapback.tiff.svn-base
  132. BIN shortcutrecorder-read-only/Images/.svn/text-base/SRRemoveShortcut.tif.svn-base
  133. BIN shortcutrecorder-read-only/Images/.svn/text-base/SRRemoveShortcutPressed.tif.svn-base
  134. BIN shortcutrecorder-read-only/Images/.svn/text-base/SRRemoveShortcutRollover.tif.svn-base
  135. BIN shortcutrecorder-read-only/Images/.svn/text-base/SRSnapback.tiff.svn-base
  136. BIN shortcutrecorder-read-only/Images/SRRemoveShortcut.tif
  137. BIN shortcutrecorder-read-only/Images/SRRemoveShortcutPressed.tif
  138. BIN shortcutrecorder-read-only/Images/SRRemoveShortcutRollover.tif
  139. BIN shortcutrecorder-read-only/Images/SRSnapback.tiff
  140. +39 −0 shortcutrecorder-read-only/LICENSE.txt
  141. +53 −0 shortcutrecorder-read-only/Plugin/.svn/all-wcprops
  142. +303 −0 shortcutrecorder-read-only/Plugin/.svn/entries
  143. +5 −0 shortcutrecorder-read-only/Plugin/.svn/prop-base/SRRecorderControl.classdescription.svn-base
  144. +28 −0 shortcutrecorder-read-only/Plugin/.svn/text-base/Info.plist.svn-base
  145. +52 −0 shortcutrecorder-read-only/Plugin/.svn/text-base/SRRecorderControl+LeopardIB.m.svn-base
  146. +9 −0 shortcutrecorder-read-only/Plugin/.svn/text-base/SRRecorderControl.classdescription.svn-base
  147. +14 −0 shortcutrecorder-read-only/Plugin/.svn/text-base/SR_Leopard.h.svn-base
  148. +45 −0 shortcutrecorder-read-only/Plugin/.svn/text-base/SR_Leopard.m.svn-base
  149. +24 −0 shortcutrecorder-read-only/Plugin/.svn/text-base/SR_LeopardInspector.h.svn-base
  150. +294 −0 shortcutrecorder-read-only/Plugin/.svn/text-base/SR_LeopardInspector.m.svn-base
  151. +8 −0 shortcutrecorder-read-only/Plugin/.svn/text-base/SR_Leopard_Prefix.pch.svn-base
  152. +11 −0 shortcutrecorder-read-only/Plugin/English.lproj/.svn/all-wcprops
  153. +68 −0 shortcutrecorder-read-only/Plugin/English.lproj/.svn/entries
  154. +5 −0 shortcutrecorder-read-only/Plugin/English.lproj/.svn/prop-base/InfoPlist.strings.svn-base
  155. BIN shortcutrecorder-read-only/Plugin/English.lproj/.svn/text-base/InfoPlist.strings.svn-base
  156. BIN shortcutrecorder-read-only/Plugin/English.lproj/InfoPlist.strings
  157. +17 −0 shortcutrecorder-read-only/Plugin/English.lproj/SR_LeopardInspector.nib/.svn/all-wcprops
  158. +96 −0 shortcutrecorder-read-only/Plugin/English.lproj/SR_LeopardInspector.nib/.svn/entries
  159. +5 −0 ...r-read-only/Plugin/English.lproj/SR_LeopardInspector.nib/.svn/prop-base/keyedobjects.nib.svn-base
  160. +1,235 −0 ...der-read-only/Plugin/English.lproj/SR_LeopardInspector.nib/.svn/text-base/designable.nib.svn-base
  161. BIN ...r-read-only/Plugin/English.lproj/SR_LeopardInspector.nib/.svn/text-base/keyedobjects.nib.svn-base
  162. +1,235 −0 shortcutrecorder-read-only/Plugin/English.lproj/SR_LeopardInspector.nib/designable.nib
  163. BIN shortcutrecorder-read-only/Plugin/English.lproj/SR_LeopardInspector.nib/keyedobjects.nib
  164. +17 −0 shortcutrecorder-read-only/Plugin/English.lproj/SR_LeopardLibrary.nib/.svn/all-wcprops
  165. +96 −0 shortcutrecorder-read-only/Plugin/English.lproj/SR_LeopardLibrary.nib/.svn/entries
  166. +5 −0 ...der-read-only/Plugin/English.lproj/SR_LeopardLibrary.nib/.svn/prop-base/keyedobjects.nib.svn-base
  167. +560 −0 ...order-read-only/Plugin/English.lproj/SR_LeopardLibrary.nib/.svn/text-base/designable.nib.svn-base
  168. BIN ...der-read-only/Plugin/English.lproj/SR_LeopardLibrary.nib/.svn/text-base/keyedobjects.nib.svn-base
  169. +560 −0 shortcutrecorder-read-only/Plugin/English.lproj/SR_LeopardLibrary.nib/designable.nib
  170. BIN shortcutrecorder-read-only/Plugin/English.lproj/SR_LeopardLibrary.nib/keyedobjects.nib
  171. +28 −0 shortcutrecorder-read-only/Plugin/Info.plist
  172. +52 −0 shortcutrecorder-read-only/Plugin/SRRecorderControl+LeopardIB.m
  173. +9 −0 shortcutrecorder-read-only/Plugin/SRRecorderControl.classdescription
  174. +14 −0 shortcutrecorder-read-only/Plugin/SR_Leopard.h
  175. +45 −0 shortcutrecorder-read-only/Plugin/SR_Leopard.m
  176. +24 −0 shortcutrecorder-read-only/Plugin/SR_LeopardInspector.h
  177. +294 −0 shortcutrecorder-read-only/Plugin/SR_LeopardInspector.m
  178. +8 −0 shortcutrecorder-read-only/Plugin/SR_Leopard_Prefix.pch
  179. +23 −0 shortcutrecorder-read-only/ShortcutRecorder.xcodeproj/.svn/all-wcprops
  180. +130 −0 shortcutrecorder-read-only/ShortcutRecorder.xcodeproj/.svn/entries
  181. +1,380 −0 shortcutrecorder-read-only/ShortcutRecorder.xcodeproj/.svn/text-base/ddauer.mode1.svn-base
  182. +184 −0 shortcutrecorder-read-only/ShortcutRecorder.xcodeproj/.svn/text-base/ddauer.pbxuser.svn-base
  183. +940 −0 shortcutrecorder-read-only/ShortcutRecorder.xcodeproj/.svn/text-base/project.pbxproj.svn-base
  184. +1,380 −0 shortcutrecorder-read-only/ShortcutRecorder.xcodeproj/ddauer.mode1
Sorry, we could not display the entire diff because it was too big.
View
71 BBAppSessionLoginState.h
@@ -0,0 +1,71 @@
+//
+// NSLoginItems.h
+//
+// Created by BrotherBard on 4/18/09.
+// Copyright 2009 BrotherBard <nkinsinger at earthlink dot net>. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+// * Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+// This singleton class handles the state of the running app in the users login items list (called
+// Session Login items by the LSSharedFileList API).
+
+// It sets up an observer of the Session Login List and keeps track if the user changes the state
+// in System Preferences or any other outside app. The property isAppInSessionLoginList will be updated
+// when that happens.
+
+// isAppInSessionLoginList is only meant to represent the state, so do not set it yourself.
+// Use the four instance methods for that. When changing the state, the state is re-read from LSSharedFileList
+// so isAppInSessionLoginList should never not represent the current state.
+
+// Since there is no way to recover or re-apply a state change there are no returned errors. If it doesn't
+// work then isAppInSessionLoginList will not be updated.
+
+// NOTE: The LSSharedFileList API is only documented in the header file at:
+// file://localhost/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Headers/LSSharedFileList.h
+
+
+
+@interface BBAppSessionLoginState : NSObject
+{
+ LSSharedFileListRef _sessionLoginItemsList;
+ NSString *_appPath;
+
+ BOOL isAppInSessionLoginList;
+}
+// this is the latest state of whether the app is in the login list
+// observe it for KVC changes, setting it will have no effect, use the methods below
+@property (assign) BOOL isAppInSessionLoginList;
+
+
+// designated init/access of singleton
++ (id)sharedController;
+
+
+- (void)toggleAppSessionLoginListState;
+- (void)setAppSessionLoginListState:(BOOL)state;
+
+- (void)removeAppFromSessionLoginList;
+- (void)addAppToSessionLoginList;
+
+@end
View
220 BBAppSessionLoginState.m
@@ -0,0 +1,220 @@
+//
+// NSLoginItems.m
+//
+// Created by BrotherBard on 4/18/09.
+// Copyright 2009 BrotherBard <nkinsinger at earthlink dot net>. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+// * Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+
+#import "BBAppSessionLoginState.h"
+
+// Private
+@interface BBAppSessionLoginState()
+
+- (LSSharedFileListItemRef)itemRefForApp;
+- (void)updateLoginItemState;
+
+@end
+
+
+
+@implementation BBAppSessionLoginState
+
+@synthesize isAppInSessionLoginList;
+
+
+- (void)setIsAppInSessionLoginList:(BOOL)isInList {
+ if (isAppInSessionLoginList != isInList) {
+ isAppInSessionLoginList = isInList;
+ if (isInList) {
+ [self addAppToSessionLoginList];
+ } else {
+ [self removeAppFromSessionLoginList];
+ }
+ }
+}
+
+// When something changes I get six calls to this method. The first two have the same seed and
+// the last four do too. I'm not sure if it is something wierd on my computer, but I compare the
+// seed to the previous one to stop updating the login state too often.
+static void SharedFileListChanged(LSSharedFileListRef list, void *context)
+{
+ static UInt32 previousSeed = 0;
+
+ // there are other types of lists, so make sure we are just looking at the Session Login list
+ LSSharedFileListRef sessionLoginList = (LSSharedFileListRef)context;
+
+ if (list == sessionLoginList) {
+ UInt32 seed = LSSharedFileListGetSeedValue(list);
+ if (seed > previousSeed) {
+ [[BBAppSessionLoginState sharedController] updateLoginItemState];
+ previousSeed = seed;
+ }
+ }
+}
+
+
++ (id)sharedController
+{
+ static BBAppSessionLoginState *sharedController = nil;
+ if (!sharedController)
+ sharedController = [[self alloc] init];
+
+ return sharedController;
+}
+
+
+- (id)init
+{
+ self = [super init];
+ if(!self) return nil;
+
+ _sessionLoginItemsList = LSSharedFileListCreate(kCFAllocatorDefault, // inAllocator
+ kLSSharedFileListSessionLoginItems, // inListType
+ NULL); // listOptions
+ if(!_sessionLoginItemsList) {
+ [self release];
+ return nil;
+ }
+
+ LSSharedFileListAddObserver(_sessionLoginItemsList, // inList
+ [[NSRunLoop mainRunLoop] getCFRunLoop], // inRunloop
+ kCFRunLoopDefaultMode, // inRunloopMode
+ SharedFileListChanged, // callback
+ _sessionLoginItemsList); // context
+
+ _appPath = [[NSBundle mainBundle] bundlePath];
+ [self updateLoginItemState];
+
+ return self;
+}
+
+
+- (void)dealloc
+{
+ if (_sessionLoginItemsList) {
+ LSSharedFileListRemoveObserver(_sessionLoginItemsList, // inList
+ [[NSRunLoop mainRunLoop] getCFRunLoop], // inRunloop
+ kCFRunLoopDefaultMode, // inRunloopMode
+ SharedFileListChanged, // callback
+ _sessionLoginItemsList); // context
+
+ CFRelease(_sessionLoginItemsList);
+ }
+
+ [super dealloc];
+}
+
+
+- (LSSharedFileListItemRef)itemRefForApp
+{
+ UInt32 seed;
+ NSArray *items = (NSArray *)LSSharedFileListCopySnapshot(_sessionLoginItemsList, &seed);
+
+ for (id item in items) {
+ LSSharedFileListItemRef itemRef = (LSSharedFileListItemRef)item;
+
+ NSURL *theURL;
+ LSSharedFileListItemResolve(itemRef, // inItem
+ kLSSharedFileListNoUserInteraction, // inFlags
+ (CFURLRef*)&theURL, // outURL
+ NULL); // outFSRef
+ [theURL autorelease];
+
+ if ([_appPath isEqualToString:[theURL path]])
+ return itemRef;
+ }
+
+ return NULL;
+}
+
+
+- (void)updateLoginItemState
+{
+ BOOL currentState = [self itemRefForApp] ? YES : NO;
+ if (self.isAppInSessionLoginList != currentState)
+ isAppInSessionLoginList = currentState;
+}
+
+
+- (void)toggleAppSessionLoginListState
+{
+ if (isAppInSessionLoginList)
+ [self removeAppFromSessionLoginList];
+ else
+ [self addAppToSessionLoginList];
+}
+
+
+- (void)setAppSessionLoginListState:(BOOL)state
+{
+ if (state)
+ [self addAppToSessionLoginList];
+ else
+ [self removeAppFromSessionLoginList];
+}
+
+
+- (void)removeAppFromSessionLoginList
+{
+ LSSharedFileListItemRef itemRef = [self itemRefForApp];
+
+ if (itemRef) {
+ OSStatus error = LSSharedFileListItemRemove(_sessionLoginItemsList, itemRef);
+ if (error != noErr)
+ NSLog(@"Failed to remove App from Session Login Items");
+ }
+
+ [self updateLoginItemState];
+}
+
+
+- (void)addAppToSessionLoginList
+{
+ LSSharedFileListItemRef itemRef = [self itemRefForApp];
+
+ if (!itemRef) {
+ // I believe the default is to not Hide the app, but I'm not really sure because the
+ // kLSSharedFileListItemHidden property is not read corretly by LSSharedFileListItemCopyProperty.
+ // I'm just setting it here to have a default value.
+ NSDictionary* propertiesToSet = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO]
+ forKey:(id)kLSSharedFileListItemHidden];
+ NSURL *url = [NSURL fileURLWithPath:_appPath];
+ NSLog(@"%@", url);
+
+ itemRef = LSSharedFileListInsertItemURL(_sessionLoginItemsList, // inList
+ kLSSharedFileListItemLast, // insertAfterThisItem
+ NULL, // inDisplayName - NULL = will use app name
+ NULL, // inIconRef - NULL = will use app icon
+ (CFURLRef)url, // inURL
+ (CFDictionaryRef)propertiesToSet, // inPropertiesToSet
+ NULL); // inPropertiesToClear
+
+ if (itemRef)
+ CFRelease(itemRef);
+ else
+ NSLog(@"Failed to add App to Session Login Items");
+ }
+
+ [self updateLoginItemState];
+}
+
+@end
View
BIN English.lproj/InfoPlist.strings
Binary file not shown.
View
132 English.lproj/MainMenu.nib/designable.nib
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.01">
- <data>
- <int key="IBDocument.SystemTarget">0</int>
- <string key="IBDocument.SystemVersion">9B18</string>
- <string key="IBDocument.InterfaceBuilderVersion">629</string>
- <string key="IBDocument.AppKitVersion">949</string>
- <string key="IBDocument.HIToolboxVersion">343.00</string>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string id="617114957">com.apple.InterfaceBuilderKit</string>
- <string id="330916513">com.apple.InterfaceBuilder.CocoaPlugin</string>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1048">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSCustomObject" id="1021">
- <string key="NSClassName" id="1039455869">NSApplication</string>
- </object>
- <object class="NSCustomObject" id="1014">
- <string key="NSClassName">FirstResponder</string>
- </object>
- <object class="NSCustomObject" id="1050">
- <reference key="NSClassName" ref="1039455869"/>
- </object>
- </object>
- <object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBObjectRecord">
- <int key="objectID">0</int>
- <object class="NSArray" key="object" id="1049">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <reference key="children" ref="1048"/>
- <nil key="parent"/>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-2</int>
- <reference key="object" ref="1021"/>
- <reference key="parent" ref="1049"/>
- <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-1</int>
- <reference key="object" ref="1014"/>
- <reference key="parent" ref="1049"/>
- <string key="objectName">First Responder</string>
- </object>
- <object class="IBObjectRecord">
- <int key="objectID">-3</int>
- <reference key="object" ref="1050"/>
- <reference key="parent" ref="1049"/>
- <string key="objectName">Application</string>
- </object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSMutableArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.IBPluginDependency</string>
- <string>-2.IBPluginDependency</string>
- <string>-3.IBPluginDependency</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="330916513"/>
- <reference ref="617114957"/>
- <reference ref="617114957"/>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <nil key="sourceID"/>
- <int key="maxID">376</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- </object>
- <int key="IBDocument.localizationMode">0</int>
- <string key="IBDocument.LastKnownRelativeProjectPath">../../QuickCursor.xcodeproj</string>
- <int key="IBDocument.defaultPropertyAccessControl">3</int>
- <object class="NSMutableData" key="IBDocument.RunnableNib">
- <bytes key="NS.bytes">YnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEHCF1J
-Qi5vYmplY3RkYXRhgAFfEA9OU0tleWVkQXJjaGl2ZXKvEBwLDDE1Njw9QUVITFBTVVleY2RlaGtwdXZ3
-en2AVSRudWxs3xASDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wVk5TUm9vdFYkY2xh
-c3NdTlNPYmplY3RzS2V5c18QD05TQ2xhc3Nlc1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0eU9pZHNWYWx1
-ZXNdTlNDb25uZWN0aW9uc1tOU05hbWVzS2V5c1tOU0ZyYW1ld29ya11OU0NsYXNzZXNLZXlzWk5TT2lk
-c0tleXNdTlNOYW1lc1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0eUNvbm5lY3RvcnNdTlNGb250TWFuYWdl
-cl8QEE5TVmlzaWJsZVdpbmRvd3NfEA9OU09iamVjdHNWYWx1ZXNfEBdOU0FjY2Vzc2liaWxpdHlPaWRz
-S2V5c1lOU05leHRPaWRcTlNPaWRzVmFsdWVzgAKAG4AKgBOAGoAIgA6ABYASgBSAD4AYgACABoANgBkR
-AXqAFdIOMjM0W05TQ2xhc3NOYW1lgASAA11OU0FwcGxpY2F0aW9u0jc4OTpYJGNsYXNzZXNaJGNsYXNz
-bmFtZaI6O15OU0N1c3RvbU9iamVjdFhOU09iamVjdF8QEElCQ29jb2FGcmFtZXdvcmvSDj4/QFpOUy5v
-YmplY3RzgAeg0jc4QkOjQ0Q7XE5TTXV0YWJsZVNldFVOU1NldNIOPkZHgAmg0jc4SUqjSks7Xk5TTXV0
-YWJsZUFycmF5V05TQXJyYXnSDj5NToAMoU+AC9IOMjM0gASAA9I3OFRLoks70g4+TVeADKEfgALSDj5N
-W4AMoh9PgAKAC9IOPk1ggAyiYWKAEIARXEZpbGUncyBPd25lcltBcHBsaWNhdGlvbtIOPk1ngAyg0g4+
-TWqADKDSDj5NbYAMoh9PgAKAC9IOPk1ygAyic3SAFoAXEQF5E//////////90g4+RnmACaDSDj5NfIAM
-oNIOPk1/gAyg0jc4gYKigjteTlNJQk9iamVjdERhdGEACAARABoAHwApADIANwA6AEgASgBcAHsAgQCo
-AK8AtgDEANYA8gEAAQwBGAEmATEBPwFbAWkBfAGOAagBsgG/AcEBwwHFAccByQHLAc0BzwHRAdMB1QHX
-AdkB2wHdAd8B4gHkAekB9QH3AfkCBwIMAhUCIAIjAjICOwJOAlMCXgJgAmECZgJqAncCfQKCAoQChQKK
-Ao4CnQKlAqoCrAKuArACtQK3ArkCvgLBAsYCyALKAswC0QLTAtYC2ALaAt8C4QLkAuYC6AL1AwEDBgMI
-AwkDDgMQAxEDFgMYAxsDHQMfAyQDJgMpAysDLQMwAzkDPgNAA0EDRgNIA0kDTgNQA1EDVgNZAAAAAAAA
-AgEAAAAAAAAAgwAAAAAAAAAAAAAAAAAAA2g</bytes>
- </object>
- </data>
-</archive>
View
BIN English.lproj/MainMenu.nib/keyedobjects.nib
Binary file not shown.
View
1,119 English.lproj/MainMenu.xib
@@ -0,0 +1,1119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1060</int>
+ <string key="IBDocument.SystemVersion">10A432</string>
+ <string key="IBDocument.InterfaceBuilderVersion">732</string>
+ <string key="IBDocument.AppKitVersion">1038</string>
+ <string key="IBDocument.HIToolboxVersion">437.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>net.wafflesoftware.ShortcutRecorder.IB.Leopard</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>732</string>
+ <string>1</string>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="534"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>net.wafflesoftware.ShortcutRecorder.IB.Leopard</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1048">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSCustomObject" id="1021">
+ <string key="NSClassName">NSApplication</string>
+ </object>
+ <object class="NSCustomObject" id="1014">
+ <string key="NSClassName">FirstResponder</string>
+ </object>
+ <object class="NSCustomObject" id="1050">
+ <string key="NSClassName">NSApplication</string>
+ </object>
+ <object class="NSCustomObject" id="976324537">
+ <string key="NSClassName">QCAppDelegate</string>
+ </object>
+ <object class="NSCustomObject" id="755631768">
+ <string key="NSClassName">NSFontManager</string>
+ </object>
+ <object class="NSWindowTemplate" id="448742277">
+ <int key="NSWindowStyleMask">7</int>
+ <int key="NSWindowBacking">2</int>
+ <string key="NSWindowRect">{{235, 442}, {409, 117}}</string>
+ <int key="NSWTFlags">1685588992</int>
+ <string key="NSWindowTitle">QuickCursor Preferences</string>
+ <string key="NSWindowClass">NSWindow</string>
+ <nil key="NSViewClass"/>
+ <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
+ <object class="NSView" key="NSWindowView" id="248881203">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="SRRecorderControl" id="705553932">
+ <reference key="NSNextResponder" ref="248881203"/>
+ <int key="NSvFlags">298</int>
+ <string key="NSFrame">{{242, 20}, {147, 22}}</string>
+ <reference key="NSSuperview" ref="248881203"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="SRRecorderCell" key="NSCell" id="939170979">
+ <int key="NSCellFlags">130560</int>
+ <int key="NSCellFlags2">0</int>
+ <reference key="NSControlView" ref="705553932"/>
+ <nil key="autosaveName"/>
+ <integer value="-1" key="keyComboCode"/>
+ <integer value="0" key="keyComboFlags"/>
+ <integer value="10354688" key="allowedFlags"/>
+ <integer value="0" key="requiredFlags"/>
+ <boolean value="NO" key="allowsKeyOnly"/>
+ <boolean value="NO" key="escapeKeysRecord"/>
+ <boolean value="NO" key="isAnimating"/>
+ <integer value="1" key="style"/>
+ </object>
+ </object>
+ <object class="NSPopUpButton" id="1039590887">
+ <reference key="NSNextResponder" ref="248881203"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{132, 48}, {171, 26}}</string>
+ <reference key="NSSuperview" ref="248881203"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSPopUpButtonCell" key="NSCell" id="250213868">
+ <int key="NSCellFlags">-2076049856</int>
+ <int key="NSCellFlags2">2048</int>
+ <object class="NSFont" key="NSSupport" id="752916645">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">13</double>
+ <int key="NSfFlags">1044</int>
+ </object>
+ <reference key="NSControlView" ref="1039590887"/>
+ <int key="NSButtonFlags">109199615</int>
+ <int key="NSButtonFlags2">129</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ <nil key="NSMenuItem"/>
+ <bool key="NSMenuItemRespectAlignment">YES</bool>
+ <object class="NSMenu" key="NSMenu" id="352803391">
+ <string key="NSTitle">OtherViews</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="NSMenuFont" ref="752916645"/>
+ </object>
+ <int key="NSSelectedIndex">-1</int>
+ <int key="NSPreferredEdge">1</int>
+ <bool key="NSUsesItemFromMenu">YES</bool>
+ <bool key="NSAltersState">YES</bool>
+ <int key="NSArrowPosition">2</int>
+ </object>
+ </object>
+ <object class="NSTextField" id="521699642">
+ <reference key="NSNextResponder" ref="248881203"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 54}, {112, 17}}</string>
+ <reference key="NSSuperview" ref="248881203"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="146579460">
+ <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags2">71304192</int>
+ <string key="NSContents">Application:</string>
+ <reference key="NSSupport" ref="752916645"/>
+ <reference key="NSControlView" ref="521699642"/>
+ <object class="NSColor" key="NSBackgroundColor" id="639340554">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">controlColor</string>
+ <object class="NSColor" key="NSColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
+ </object>
+ </object>
+ <object class="NSColor" key="NSTextColor" id="682718997">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">controlTextColor</string>
+ <object class="NSColor" key="NSColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MAA</bytes>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSTextField" id="307607523">
+ <reference key="NSNextResponder" ref="248881203"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{132, 24}, {105, 17}}</string>
+ <reference key="NSSuperview" ref="248881203"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="523427844">
+ <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags2">71304192</int>
+ <string key="NSContents">Edit in shortcut:</string>
+ <reference key="NSSupport" ref="752916645"/>
+ <reference key="NSControlView" ref="307607523"/>
+ <reference key="NSBackgroundColor" ref="639340554"/>
+ <reference key="NSTextColor" ref="682718997"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="764613516">
+ <reference key="NSNextResponder" ref="248881203"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 80}, {112, 17}}</string>
+ <reference key="NSSuperview" ref="248881203"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="201484908">
+ <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags2">71304192</int>
+ <string key="NSContents">On Login:</string>
+ <reference key="NSSupport" ref="752916645"/>
+ <reference key="NSControlView" ref="764613516"/>
+ <reference key="NSBackgroundColor" ref="639340554"/>
+ <reference key="NSTextColor" ref="682718997"/>
+ </object>
+ </object>
+ <object class="NSButton" id="940179569">
+ <reference key="NSNextResponder" ref="248881203"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{133, 79}, {190, 18}}</string>
+ <reference key="NSSuperview" ref="248881203"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="40342116">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">Start QuickCursor</string>
+ <reference key="NSSupport" ref="752916645"/>
+ <reference key="NSControlView" ref="940179569"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">2</int>
+ <object class="NSCustomResource" key="NSNormalImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSSwitch</string>
+ </object>
+ <object class="NSButtonImageSource" key="NSAlternateImage">
+ <string key="NSImageName">NSSwitch</string>
+ </object>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrameSize">{409, 117}</string>
+ <reference key="NSSuperview"/>
+ </object>
+ <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
+ <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
+ <string key="NSFrameAutosaveName">QuickCursorPreferences</string>
+ </object>
+ <object class="NSObjectController" id="385305493">
+ <object class="NSMutableArray" key="NSDeclaredKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>toggleAppSessionLoginListState</string>
+ <string>isAppInSessionLoginList</string>
+ </object>
+ <bool key="NSEditable">YES</bool>
+ <object class="_NSManagedProxy" key="_NSManagedProxy"/>
+ </object>
+ <object class="NSUserDefaultsController" id="192827805">
+ <bool key="NSSharedInstance">YES</bool>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="1021"/>
+ <reference key="destination" ref="976324537"/>
+ </object>
+ <int key="connectionID">495</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">preferencesWindow</string>
+ <reference key="source" ref="976324537"/>
+ <reference key="destination" ref="448742277"/>
+ </object>
+ <int key="connectionID">537</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">shortcutRecorder</string>
+ <reference key="source" ref="976324537"/>
+ <reference key="destination" ref="705553932"/>
+ </object>
+ <int key="connectionID">538</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="705553932"/>
+ <reference key="destination" ref="976324537"/>
+ </object>
+ <int key="connectionID">539</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">editInPopUpButton</string>
+ <reference key="source" ref="976324537"/>
+ <reference key="destination" ref="1039590887"/>
+ </object>
+ <int key="connectionID">546</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">editInPopUpButtonClicked:</string>
+ <reference key="source" ref="976324537"/>
+ <reference key="destination" ref="1039590887"/>
+ </object>
+ <int key="connectionID">551</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBBindingConnection" key="connection">
+ <string key="label">contentObject: appSessionLoginState</string>
+ <reference key="source" ref="385305493"/>
+ <reference key="destination" ref="976324537"/>
+ <object class="NSNibBindingConnector" key="connector">
+ <reference key="NSSource" ref="385305493"/>
+ <reference key="NSDestination" ref="976324537"/>
+ <string key="NSLabel">contentObject: appSessionLoginState</string>
+ <string key="NSBinding">contentObject</string>
+ <string key="NSKeyPath">appSessionLoginState</string>
+ <int key="NSNibBindingConnectorVersion">2</int>
+ </object>
+ </object>
+ <int key="connectionID">563</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBBindingConnection" key="connection">
+ <string key="label">value: selection.isAppInSessionLoginList</string>
+ <reference key="source" ref="940179569"/>
+ <reference key="destination" ref="385305493"/>
+ <object class="NSNibBindingConnector" key="connector">
+ <reference key="NSSource" ref="940179569"/>
+ <reference key="NSDestination" ref="385305493"/>
+ <string key="NSLabel">value: selection.isAppInSessionLoginList</string>
+ <string key="NSBinding">value</string>
+ <string key="NSKeyPath">selection.isAppInSessionLoginList</string>
+ <int key="NSNibBindingConnectorVersion">2</int>
+ </object>
+ </object>
+ <int key="connectionID">564</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1048"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="1021"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="1014"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">First Responder</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-3</int>
+ <reference key="object" ref="1050"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">Application</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">420</int>
+ <reference key="object" ref="755631768"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">494</int>
+ <reference key="object" ref="976324537"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">533</int>
+ <reference key="object" ref="448742277"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="248881203"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">534</int>
+ <reference key="object" ref="248881203"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1039590887"/>
+ <reference ref="521699642"/>
+ <reference ref="764613516"/>
+ <reference ref="940179569"/>
+ <reference ref="705553932"/>
+ <reference ref="307607523"/>
+ </object>
+ <reference key="parent" ref="448742277"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">535</int>
+ <reference key="object" ref="705553932"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="939170979"/>
+ </object>
+ <reference key="parent" ref="248881203"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">536</int>
+ <reference key="object" ref="939170979"/>
+ <reference key="parent" ref="705553932"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">540</int>
+ <reference key="object" ref="1039590887"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="250213868"/>
+ </object>
+ <reference key="parent" ref="248881203"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">541</int>
+ <reference key="object" ref="250213868"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="352803391"/>
+ </object>
+ <reference key="parent" ref="1039590887"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">542</int>
+ <reference key="object" ref="352803391"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="parent" ref="250213868"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">547</int>
+ <reference key="object" ref="521699642"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="146579460"/>
+ </object>
+ <reference key="parent" ref="248881203"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">548</int>
+ <reference key="object" ref="146579460"/>
+ <reference key="parent" ref="521699642"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">549</int>
+ <reference key="object" ref="307607523"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="523427844"/>
+ </object>
+ <reference key="parent" ref="248881203"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">550</int>
+ <reference key="object" ref="523427844"/>
+ <reference key="parent" ref="307607523"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">552</int>
+ <reference key="object" ref="940179569"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="40342116"/>
+ </object>
+ <reference key="parent" ref="248881203"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">553</int>
+ <reference key="object" ref="40342116"/>
+ <reference key="parent" ref="940179569"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">554</int>
+ <reference key="object" ref="764613516"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="201484908"/>
+ </object>
+ <reference key="parent" ref="248881203"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">555</int>
+ <reference key="object" ref="201484908"/>
+ <reference key="parent" ref="764613516"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">556</int>
+ <reference key="object" ref="385305493"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">560</int>
+ <reference key="object" ref="192827805"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-3.IBPluginDependency</string>
+ <string>533.IBEditorWindowLastContentRect</string>
+ <string>533.IBPluginDependency</string>
+ <string>533.IBWindowTemplateEditedContentRect</string>
+ <string>533.NSWindowTemplate.visibleAtLaunch</string>
+ <string>534.IBPluginDependency</string>
+ <string>535.IBPluginDependency</string>
+ <string>540.IBPluginDependency</string>
+ <string>541.IBPluginDependency</string>
+ <string>542.IBEditorWindowLastContentRect</string>
+ <string>542.IBPluginDependency</string>
+ <string>547.IBPluginDependency</string>
+ <string>548.IBPluginDependency</string>
+ <string>549.IBPluginDependency</string>
+ <string>550.IBPluginDependency</string>
+ <string>552.IBPluginDependency</string>
+ <string>553.IBPluginDependency</string>
+ <string>554.IBPluginDependency</string>
+ <string>555.IBPluginDependency</string>
+ <string>556.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{541, 742}, {409, 117}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{541, 742}, {409, 117}}</string>
+ <boolean value="NO"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>net.wafflesoftware.ShortcutRecorder.IB.Leopard</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{510, 762}, {171, 6}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">564</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">ODBEditor.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">QCAppDelegate</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>beginQuickCursorEdit:</string>
+ <string>editInPopUpButtonClicked:</string>
+ <string>showAbout:</string>
+ <string>showPreferences:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>editInPopUpButton</string>
+ <string>preferencesWindow</string>
+ <string>shortcutRecorder</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>NSPopUpButton</string>
+ <string>NSWindow</string>
+ <string>SRRecorderControl</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">QCAppDelegate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">QCAppDelegate</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSActionCell</string>
+ <string key="superclassName">NSCell</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <string key="superclassName">NSResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="822405504">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSApplication.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="850738725">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSApplicationScripting.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="624831158">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSColorPanel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSHelpManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSPageLayout.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSUserInterfaceItemSearching.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSButton</string>
+ <string key="superclassName">NSControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSButton.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSButtonCell</string>
+ <string key="superclassName">NSActionCell</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSButtonCell.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSCell</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSCell.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSControl</string>
+ <string key="superclassName">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="541184112">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSFontManager</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="946436764">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSFormatter</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSManagedObjectContext</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">CoreData.framework/Headers/NSManagedObjectContext.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSMenu</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="1056362899">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSMenu.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSMenuItemCell</string>
+ <string key="superclassName">NSButtonCell</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSMenuItemCell.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="822405504"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="850738725"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="624831158"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="541184112"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSDictionaryController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSDragging.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="946436764"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSFontPanel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSKeyValueBinding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="1056362899"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSNibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSPasteboard.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSSavePanel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSTableView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSToolbarItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="900281566">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObjectController</string>
+ <string key="superclassName">NSController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSObjectController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSPopUpButton</string>
+ <string key="superclassName">NSButton</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSPopUpButton.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSPopUpButtonCell</string>
+ <string key="superclassName">NSMenuItemCell</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSPopUpButtonCell.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSInterfaceStyle.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSResponder</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSTextField</string>
+ <string key="superclassName">NSControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSTextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSTextFieldCell</string>
+ <string key="superclassName">NSActionCell</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSTextFieldCell.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSUserDefaultsController</string>
+ <string key="superclassName">NSController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSUserDefaultsController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSClipView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <string key="superclassName">NSResponder</string>
+ <reference key="sourceIdentifier" ref="900281566"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSWindow</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSWindow</string>
+ <string key="superclassName">NSResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSWindow.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSWindow</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
+ <integer value="1060" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
+ <integer value="3000" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../QuickCursor.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ </data>
+</archive>
View
0 ...rface/NSAppleEventDescriptor-Extensions.h → NSAppleEventDescriptor-Extensions.h
File renamed without changes.
View
8 ...rface/NSAppleEventDescriptor-Extensions.m → NSAppleEventDescriptor-Extensions.m
@@ -2,18 +2,14 @@
@implementation NSAppleEventDescriptor(Extensions)
-+ (NSAppleEventDescriptor *)descriptorWithFilePath:(NSString *)fileName
-{
++ (NSAppleEventDescriptor *)descriptorWithFilePath:(NSString *)fileName {
NSURL *url = [NSURL fileURLWithPath: fileName];
-
return [self descriptorWithFileURL: url];
}
-+ (NSAppleEventDescriptor *)descriptorWithFileURL:(NSURL *)fileURL
-{
++ (NSAppleEventDescriptor *)descriptorWithFileURL:(NSURL *)fileURL {
NSString *string = [fileURL absoluteString];
NSData *data = [string dataUsingEncoding: NSUTF8StringEncoding];
-
return [self descriptorWithDescriptorType: typeFileURL data: data];
}
View
0 Plugins/QCUserInterface/ODBEditor.h → ODBEditor.h
File renamed without changes.
View
8 Plugins/QCUserInterface/ODBEditor.m → ODBEditor.m
@@ -136,7 +136,7 @@ - (BOOL)editFile:(NSString *)path options:(NSDictionary *)options forClient:(id)
}
- (BOOL)editString:(NSString *)string options:(NSDictionary *)options forClient:(id)client context:(NSDictionary *)context {
- BOOL success = NO;
+ BOOL success = NO;
NSString *path = [self _tempFileForEditingString: string];
if (path != nil) {
@@ -218,7 +218,8 @@ - (BOOL)_editFile:(NSString *)fileName isEditingString:(BOOL)editingStringFlag o
if (customPath != nil)
[appleEvent setParamDescriptor: [NSAppleEventDescriptor descriptorWithString: customPath] forKeyword: keyFileCustomPath];
- status = AESend([appleEvent aeDesc], &reply, kAEWaitReply, kAENormalPriority, kAEDefaultTimeout, NULL, NULL);
+ //status = AESend([appleEvent aeDesc], &reply, kAEWaitReply, kAENormalPriority, kAEDefaultTimeout, NULL, NULL);
+ AESendMessage([appleEvent aeDesc], &reply, kAEWaitReply, kAEDefaultTimeout);
if (status == noErr) {
replyDescriptor = [[[NSAppleEventDescriptor alloc] initWithAEDescNoCopy: &reply] autorelease];
@@ -308,7 +309,8 @@ - (void)handleClosedFileEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NS
if(isString)
{
- NSString *stringContents = [NSString stringWithContentsOfFile: fileName];
+ NSString *stringContents = [NSString stringWithContentsOfURL:[NSURL fileURLWithPath:fileName] encoding:NSUTF8StringEncoding error:nil];
+ //NSString *stringContents = [NSString stringWithContentsOfFile: fileName];
[client odbEditor: self didCloseFileForString: stringContents context: context];
}
else
View
0 Plugins/QCUserInterface/ODBEditorSuite.h → ODBEditorSuite.h
File renamed without changes.
View
52 PTHotKey.h
@@ -0,0 +1,52 @@
+//
+// PTHotKey.h
+// Protein
+//
+// Created by Quentin Carnicelli on Sat Aug 02 2003.
+// Copyright (c) 2003 Quentin D. Carnicelli. All rights reserved.
+//
+// Contributors:
+// Andy Kim
+
+#import <Foundation/Foundation.h>
+#import <Carbon/Carbon.h>
+#import "PTKeyCombo.h"
+
+@interface PTHotKey : NSObject
+{
+ NSString* mIdentifier;
+ NSString* mName;
+ PTKeyCombo* mKeyCombo;
+ id mTarget;
+ SEL mAction;
+
+ NSUInteger mCarbonHotKeyID;
+ EventHotKeyRef mCarbonEventHotKeyRef;
+}
+
+- (id)initWithIdentifier: (id)identifier keyCombo: (PTKeyCombo*)combo;
+- (id)init;
+
+- (void)setIdentifier: (id)ident;
+- (id)identifier;
+
+- (void)setName: (NSString*)name;
+- (NSString*)name;
+
+- (void)setKeyCombo: (PTKeyCombo*)combo;
+- (PTKeyCombo*)keyCombo;
+
+- (void)setTarget: (id)target;
+- (id)target;
+- (void)setAction: (SEL)action;
+- (SEL)action;
+
+- (NSUInteger)carbonHotKeyID;
+- (void)setCarbonHotKeyID: (NSUInteger)hotKeyID;
+
+- (EventHotKeyRef)carbonEventHotKeyRef;
+- (void)setCarbonEventHotKeyRef:(EventHotKeyRef)hotKeyRef;
+
+- (void)invoke;
+
+@end
View
136 PTHotKey.m
@@ -0,0 +1,136 @@
+//
+// PTHotKey.m
+// Protein
+//
+// Created by Quentin Carnicelli on Sat Aug 02 2003.
+// Copyright (c) 2003 Quentin D. Carnicelli. All rights reserved.
+//
+
+#import "PTHotKey.h"
+
+#import "PTHotKeyCenter.h"
+#import "PTKeyCombo.h"
+
+@implementation PTHotKey
+
+- (id)init
+{
+ return [self initWithIdentifier: nil keyCombo: nil];
+}
+
+- (id)initWithIdentifier: (id)identifier keyCombo: (PTKeyCombo*)combo
+{
+ self = [super init];
+
+ if( self )
+ {
+ [self setIdentifier: identifier];
+ [self setKeyCombo: combo];
+ }
+
+ return self;
+}
+
+- (void)dealloc
+{
+ [mIdentifier release];
+ [mName release];
+ [mKeyCombo release];
+
+ [super dealloc];
+}
+
+- (NSString*)description
+{
+ return [NSString stringWithFormat: @"<%@: %@, %@>", NSStringFromClass( [self class] ), [self identifier], [self