rum 0.0.1-universal-darwin-10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. data/CHANGELOG +3 -0
  2. data/README +30 -0
  3. data/Rakefile +134 -0
  4. data/bin/rum-client +124 -0
  5. data/doc/basic.rb +10 -0
  6. data/doc/doc.html +602 -0
  7. data/doc/example.rb +59 -0
  8. data/doc/reference.rb +415 -0
  9. data/doc/resources/bg.png +0 -0
  10. data/doc/resources/bottom.png +0 -0
  11. data/doc/resources/build.rb +235 -0
  12. data/doc/resources/doc.haml +167 -0
  13. data/doc/resources/emacs-auto-completion.png +0 -0
  14. data/doc/resources/flash.png +0 -0
  15. data/doc/resources/highlight.css +94 -0
  16. data/doc/resources/intro.rb +17 -0
  17. data/doc/resources/left.png +0 -0
  18. data/doc/resources/logo.png +0 -0
  19. data/doc/resources/screen.css +420 -0
  20. data/doc/resources/screenshot.png +0 -0
  21. data/doc/resources/top.png +0 -0
  22. data/ext/mac/keyboard_hook/English.lproj/InfoPlist.strings +0 -0
  23. data/ext/mac/keyboard_hook/Event.h +17 -0
  24. data/ext/mac/keyboard_hook/Event.m +18 -0
  25. data/ext/mac/keyboard_hook/EventTap.h +11 -0
  26. data/ext/mac/keyboard_hook/EventTap.m +77 -0
  27. data/ext/mac/keyboard_hook/Info.plist +26 -0
  28. data/ext/mac/keyboard_hook/KeyboardHook.xcodeproj/TemplateIcon.icns +0 -0
  29. data/ext/mac/keyboard_hook/KeyboardHook.xcodeproj/project.pbxproj +323 -0
  30. data/ext/mac/keyboard_hook/KeyboardHook_Prefix.pch +7 -0
  31. data/ext/mac/keyboard_hook/version.plist +16 -0
  32. data/ext/windows/keyboard_hook/extconf.rb +2 -0
  33. data/ext/windows/keyboard_hook/keyboard_hook.c +126 -0
  34. data/ext/windows/system/autohotkey_stuff.c +255 -0
  35. data/ext/windows/system/autohotkey_stuff.h +2 -0
  36. data/ext/windows/system/clipboard_watcher.c +58 -0
  37. data/ext/windows/system/clipboard_watcher.h +2 -0
  38. data/ext/windows/system/extconf.rb +3 -0
  39. data/ext/windows/system/input_box.c +239 -0
  40. data/ext/windows/system/input_box.h +4 -0
  41. data/ext/windows/system/system.c +273 -0
  42. data/lib/rum.rb +4 -0
  43. data/lib/rum/apps.rb +4 -0
  44. data/lib/rum/barrel.rb +157 -0
  45. data/lib/rum/barrel/emacs.rb +44 -0
  46. data/lib/rum/barrel/emacs_client.rb +74 -0
  47. data/lib/rum/core.rb +125 -0
  48. data/lib/rum/dsl.rb +109 -0
  49. data/lib/rum/gui.rb +93 -0
  50. data/lib/rum/help.rb +128 -0
  51. data/lib/rum/hotkey_core.rb +479 -0
  52. data/lib/rum/mac.rb +18 -0
  53. data/lib/rum/mac/app.rb +4 -0
  54. data/lib/rum/mac/apps.rb +19 -0
  55. data/lib/rum/mac/gui.rb +26 -0
  56. data/lib/rum/mac/gui/CocoaDialog.app/Contents/Info.plist +28 -0
  57. data/lib/rum/mac/gui/CocoaDialog.app/Contents/MacOS/CocoaDialog +0 -0
  58. data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Info.plist +28 -0
  59. data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/InfoPlist.strings +0 -0
  60. data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Inputbox.nib/classes.nib +51 -0
  61. data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Inputbox.nib/info.nib +16 -0
  62. data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Inputbox.nib/keyedobjects.nib +0 -0
  63. data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/MainMenu.nib/classes.nib +7 -0
  64. data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/MainMenu.nib/info.nib +21 -0
  65. data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/MainMenu.nib/info.nib.orig +21 -0
  66. data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/MainMenu.nib/objects.nib +0 -0
  67. data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/MainMenu.nib/objects.nib.orig +0 -0
  68. data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Msgbox.nib/classes.nib +27 -0
  69. data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Msgbox.nib/info.nib +16 -0
  70. data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Msgbox.nib/keyedobjects.nib +0 -0
  71. data/lib/rum/mac/gui/Growl.framework/Growl +0 -0
  72. data/lib/rum/mac/gui/Growl.framework/Versions/A/Growl +0 -0
  73. data/lib/rum/mac/gui/Growl.framework/Versions/A/Headers/Growl.h +6 -0
  74. data/lib/rum/mac/gui/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h +780 -0
  75. data/lib/rum/mac/gui/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h +575 -0
  76. data/lib/rum/mac/gui/Growl.framework/Versions/A/Headers/GrowlDefines.h +348 -0
  77. data/lib/rum/mac/gui/Growl.framework/Versions/A/Resources/Info.plist +24 -0
  78. data/lib/rum/mac/gui/growl.rb +54 -0
  79. data/lib/rum/mac/irb/completion.rb +207 -0
  80. data/lib/rum/mac/keyboard_hook.rb +73 -0
  81. data/lib/rum/mac/keyboard_hook/KeyboardHook.framework/KeyboardHook +0 -0
  82. data/lib/rum/mac/keyboard_hook/KeyboardHook.framework/Versions/A/KeyboardHook +0 -0
  83. data/lib/rum/mac/keyboard_hook/KeyboardHook.framework/Versions/A/Resources/English.lproj/InfoPlist.strings +0 -0
  84. data/lib/rum/mac/keyboard_hook/KeyboardHook.framework/Versions/A/Resources/Info.plist +22 -0
  85. data/lib/rum/mac/layouts.rb +146 -0
  86. data/lib/rum/mac/system.rb +45 -0
  87. data/lib/rum/remote.rb +48 -0
  88. data/lib/rum/server.rb +92 -0
  89. data/lib/rum/windows.rb +23 -0
  90. data/lib/rum/windows/app.rb +72 -0
  91. data/lib/rum/windows/apps.rb +25 -0
  92. data/lib/rum/windows/gui.rb +116 -0
  93. data/lib/rum/windows/keyboard.rb +80 -0
  94. data/lib/rum/windows/keyboard_hook.rb +20 -0
  95. data/lib/rum/windows/layouts.rb +232 -0
  96. data/lib/rum/windows/system.rb +310 -0
  97. data/lib/rum/windows/system_foreign_functions.rb +129 -0
  98. data/rum.gemspec +14 -0
  99. metadata +166 -0
@@ -0,0 +1,18 @@
1
+ #import "Event.h"
2
+
3
+ @implementation Event
4
+
5
+ -(id)initWithEventRef:(CGEventRef)anEventRef tapProxy:(CGEventTapProxy)aTapProxy type:(CGEventType)aType down:(BOOL)isDown {
6
+ eventRef = anEventRef;
7
+ tapProxy = aTapProxy;
8
+ type = aType;
9
+ down = isDown;
10
+ return self;
11
+ }
12
+
13
+ @synthesize eventRef;
14
+ @synthesize tapProxy;
15
+ @synthesize type;
16
+ @synthesize down;
17
+
18
+ @end
@@ -0,0 +1,11 @@
1
+ #import <Cocoa/Cocoa.h>
2
+ @class Event;
3
+
4
+ @interface EventTap : NSObject {
5
+ id delegate;
6
+ }
7
+ -(id)init;
8
+ -(Event*)handleEvent:(Event*)event;
9
+ @end
10
+
11
+ CGEventRef eventCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *eventTapObject);
@@ -0,0 +1,77 @@
1
+ // Based on Nathan Sobo's ControlFreak
2
+ // http://github.com/nathansobo/control_freak
3
+ //
4
+ // This project is a temporary provision.
5
+ // A future MacRuby release will allow KeyboardHook.framework
6
+ // to be implemented in pure Ruby.
7
+
8
+
9
+ #import <Carbon/Carbon.h> // for keycode aliases
10
+ #import <ApplicationServices/ApplicationServices.h>
11
+ #import "EventTap.h"
12
+ #import "Event.h"
13
+ #import <MacRuby/MacRuby.h>
14
+
15
+ CFMachPortRef keyboard_event_tap;
16
+
17
+ @interface NSObject (RubyMethods)
18
+ -(Event*)onEvent:(Event*)event;
19
+ @end
20
+
21
+ @implementation EventTap
22
+ -(id)init {
23
+ [super init];
24
+ keyboard_event_tap = CGEventTapCreate(kCGHIDEventTap,
25
+ kCGHeadInsertEventTap,
26
+ kCGEventTapOptionDefault,
27
+ CGEventMaskBit(kCGEventKeyDown) | CGEventMaskBit(kCGEventKeyUp) | CGEventMaskBit(kCGEventFlagsChanged),
28
+ &eventCallback,
29
+ self);
30
+ CFRunLoopSourceRef tapSource = CFMachPortCreateRunLoopSource(NULL, keyboard_event_tap, 0);
31
+ CFRunLoopAddSource((CFRunLoopRef) [[NSRunLoop currentRunLoop] getCFRunLoop], tapSource, kCFRunLoopCommonModes);
32
+
33
+ return self;
34
+ }
35
+
36
+ -(Event*)handleEvent:(Event*)event {
37
+ // to be overridden by ruby code
38
+ return event;
39
+ }
40
+
41
+ @end
42
+
43
+ int modifier_flags[] = { kCGEventFlagMaskCommand, // command
44
+ kCGEventFlagMaskShift, // shift
45
+ kCGEventFlagMaskAlphaShift, // capslock
46
+ kCGEventFlagMaskAlternate, // option
47
+ kCGEventFlagMaskControl, // control
48
+ kCGEventFlagMaskShift, // rightshift
49
+ kCGEventFlagMaskAlternate, // rightoption
50
+ kCGEventFlagMaskControl, // rightcontrol
51
+ kCGEventFlagMaskSecondaryFn // function
52
+ };
53
+
54
+ CGEventRef eventCallback(CGEventTapProxy proxy, CGEventType type,
55
+ CGEventRef event, void *eventTapObject) {
56
+ BOOL is_down;
57
+ int keycode;
58
+
59
+ switch (type) {
60
+ case kCGEventKeyDown:
61
+ is_down = true;
62
+ break;
63
+ case kCGEventKeyUp:
64
+ is_down = false;
65
+ break;
66
+ case kCGEventFlagsChanged:
67
+ keycode = CGEventGetIntegerValueField(event, kCGKeyboardEventKeycode);
68
+ is_down = ((CGEventGetFlags(event) & modifier_flags[keycode - kVK_Command]) != 0);
69
+ break;
70
+ case kCGEventTapDisabledByTimeout:
71
+ CGEventTapEnable(keyboard_event_tap, true);
72
+ default:
73
+ return event;
74
+ }
75
+
76
+ return [((id) eventTapObject) handleEvent:[[Event alloc] initWithEventRef:event tapProxy:proxy type:type down:is_down]].eventRef;
77
+ }
@@ -0,0 +1,26 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleDevelopmentRegion</key>
6
+ <string>English</string>
7
+ <key>CFBundleExecutable</key>
8
+ <string>${EXECUTABLE_NAME}</string>
9
+ <key>CFBundleName</key>
10
+ <string>${PRODUCT_NAME}</string>
11
+ <key>CFBundleIconFile</key>
12
+ <string></string>
13
+ <key>CFBundleIdentifier</key>
14
+ <string>com.yourcompany.${PRODUCT_NAME:identifier}</string>
15
+ <key>CFBundleInfoDictionaryVersion</key>
16
+ <string>6.0</string>
17
+ <key>CFBundlePackageType</key>
18
+ <string>FMWK</string>
19
+ <key>CFBundleSignature</key>
20
+ <string>????</string>
21
+ <key>CFBundleVersion</key>
22
+ <string>1.0</string>
23
+ <key>NSPrincipalClass</key>
24
+ <string></string>
25
+ </dict>
26
+ </plist>
@@ -0,0 +1,323 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 45;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 01862CDA11D3C37700B5A73E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01862CD911D3C37700B5A73E /* Carbon.framework */; };
11
+ 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
12
+ 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; };
13
+ EC6FF350104E2FE3000167A6 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EC6FF34F104E2FE3000167A6 /* ApplicationServices.framework */; };
14
+ EC6FF356104E301F000167A6 /* EventTap.h in Headers */ = {isa = PBXBuildFile; fileRef = EC6FF354104E301F000167A6 /* EventTap.h */; };
15
+ EC6FF357104E301F000167A6 /* EventTap.m in Sources */ = {isa = PBXBuildFile; fileRef = EC6FF355104E301F000167A6 /* EventTap.m */; };
16
+ ECC36BE9104E4B8A00846ACB /* MacRuby.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECC36BE8104E4B8A00846ACB /* MacRuby.framework */; };
17
+ ECC36C00104E54D500846ACB /* Event.h in Headers */ = {isa = PBXBuildFile; fileRef = ECC36BFE104E54D500846ACB /* Event.h */; };
18
+ ECC36C01104E54D500846ACB /* Event.m in Sources */ = {isa = PBXBuildFile; fileRef = ECC36BFF104E54D500846ACB /* Event.m */; };
19
+ /* End PBXBuildFile section */
20
+
21
+ /* Begin PBXFileReference section */
22
+ 01862CD911D3C37700B5A73E /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
23
+ 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
24
+ 0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
25
+ 089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
26
+ 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
27
+ 32DBCF5E0370ADEE00C91783 /* KeyboardHook_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyboardHook_Prefix.pch; sourceTree = "<group>"; };
28
+ 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
29
+ 8DC2EF5B0486A6940098B216 /* KeyboardHook.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = KeyboardHook.framework; sourceTree = BUILT_PRODUCTS_DIR; };
30
+ D2F7E79907B2D74100F64583 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
31
+ EC6FF34F104E2FE3000167A6 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; };
32
+ EC6FF354104E301F000167A6 /* EventTap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventTap.h; sourceTree = "<group>"; };
33
+ EC6FF355104E301F000167A6 /* EventTap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EventTap.m; sourceTree = "<group>"; };
34
+ ECC36BE8104E4B8A00846ACB /* MacRuby.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MacRuby.framework; path = /Library/Frameworks/MacRuby.framework; sourceTree = "<absolute>"; };
35
+ ECC36BFE104E54D500846ACB /* Event.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Event.h; sourceTree = "<group>"; };
36
+ ECC36BFF104E54D500846ACB /* Event.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Event.m; sourceTree = "<group>"; };
37
+ /* End PBXFileReference section */
38
+
39
+ /* Begin PBXFrameworksBuildPhase section */
40
+ 8DC2EF560486A6940098B216 /* Frameworks */ = {
41
+ isa = PBXFrameworksBuildPhase;
42
+ buildActionMask = 2147483647;
43
+ files = (
44
+ 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */,
45
+ EC6FF350104E2FE3000167A6 /* ApplicationServices.framework in Frameworks */,
46
+ ECC36BE9104E4B8A00846ACB /* MacRuby.framework in Frameworks */,
47
+ 01862CDA11D3C37700B5A73E /* Carbon.framework in Frameworks */,
48
+ );
49
+ runOnlyForDeploymentPostprocessing = 0;
50
+ };
51
+ /* End PBXFrameworksBuildPhase section */
52
+
53
+ /* Begin PBXGroup section */
54
+ 034768DFFF38A50411DB9C8B /* Products */ = {
55
+ isa = PBXGroup;
56
+ children = (
57
+ 8DC2EF5B0486A6940098B216 /* KeyboardHook.framework */,
58
+ );
59
+ name = Products;
60
+ sourceTree = "<group>";
61
+ };
62
+ 0867D691FE84028FC02AAC07 /* KeyboardHook */ = {
63
+ isa = PBXGroup;
64
+ children = (
65
+ 08FB77AEFE84172EC02AAC07 /* Classes */,
66
+ 32C88DFF0371C24200C91783 /* Other Sources */,
67
+ 089C1665FE841158C02AAC07 /* Resources */,
68
+ 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
69
+ 034768DFFF38A50411DB9C8B /* Products */,
70
+ );
71
+ name = KeyboardHook;
72
+ sourceTree = "<group>";
73
+ };
74
+ 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = {
75
+ isa = PBXGroup;
76
+ children = (
77
+ 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */,
78
+ 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */,
79
+ );
80
+ name = "External Frameworks and Libraries";
81
+ sourceTree = "<group>";
82
+ };
83
+ 089C1665FE841158C02AAC07 /* Resources */ = {
84
+ isa = PBXGroup;
85
+ children = (
86
+ 8DC2EF5A0486A6940098B216 /* Info.plist */,
87
+ 089C1666FE841158C02AAC07 /* InfoPlist.strings */,
88
+ );
89
+ name = Resources;
90
+ sourceTree = "<group>";
91
+ };
92
+ 08FB77AEFE84172EC02AAC07 /* Classes */ = {
93
+ isa = PBXGroup;
94
+ children = (
95
+ EC6FF354104E301F000167A6 /* EventTap.h */,
96
+ EC6FF355104E301F000167A6 /* EventTap.m */,
97
+ ECC36BFE104E54D500846ACB /* Event.h */,
98
+ ECC36BFF104E54D500846ACB /* Event.m */,
99
+ );
100
+ name = Classes;
101
+ sourceTree = "<group>";
102
+ };
103
+ 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = {
104
+ isa = PBXGroup;
105
+ children = (
106
+ ECC36BE8104E4B8A00846ACB /* MacRuby.framework */,
107
+ EC6FF34F104E2FE3000167A6 /* ApplicationServices.framework */,
108
+ 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */,
109
+ 01862CD911D3C37700B5A73E /* Carbon.framework */,
110
+ );
111
+ name = "Linked Frameworks";
112
+ sourceTree = "<group>";
113
+ };
114
+ 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = {
115
+ isa = PBXGroup;
116
+ children = (
117
+ 0867D6A5FE840307C02AAC07 /* AppKit.framework */,
118
+ D2F7E79907B2D74100F64583 /* CoreData.framework */,
119
+ 0867D69BFE84028FC02AAC07 /* Foundation.framework */,
120
+ );
121
+ name = "Other Frameworks";
122
+ sourceTree = "<group>";
123
+ };
124
+ 32C88DFF0371C24200C91783 /* Other Sources */ = {
125
+ isa = PBXGroup;
126
+ children = (
127
+ 32DBCF5E0370ADEE00C91783 /* KeyboardHook_Prefix.pch */,
128
+ );
129
+ name = "Other Sources";
130
+ sourceTree = "<group>";
131
+ };
132
+ /* End PBXGroup section */
133
+
134
+ /* Begin PBXHeadersBuildPhase section */
135
+ 8DC2EF500486A6940098B216 /* Headers */ = {
136
+ isa = PBXHeadersBuildPhase;
137
+ buildActionMask = 2147483647;
138
+ files = (
139
+ EC6FF356104E301F000167A6 /* EventTap.h in Headers */,
140
+ ECC36C00104E54D500846ACB /* Event.h in Headers */,
141
+ );
142
+ runOnlyForDeploymentPostprocessing = 0;
143
+ };
144
+ /* End PBXHeadersBuildPhase section */
145
+
146
+ /* Begin PBXNativeTarget section */
147
+ 8DC2EF4F0486A6940098B216 /* KeyboardHook */ = {
148
+ isa = PBXNativeTarget;
149
+ buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "KeyboardHook" */;
150
+ buildPhases = (
151
+ 8DC2EF500486A6940098B216 /* Headers */,
152
+ 8DC2EF520486A6940098B216 /* Resources */,
153
+ 8DC2EF540486A6940098B216 /* Sources */,
154
+ 8DC2EF560486A6940098B216 /* Frameworks */,
155
+ );
156
+ buildRules = (
157
+ );
158
+ dependencies = (
159
+ );
160
+ name = KeyboardHook;
161
+ productInstallPath = "$(HOME)/Library/Frameworks";
162
+ productName = KeyboardHook;
163
+ productReference = 8DC2EF5B0486A6940098B216 /* KeyboardHook.framework */;
164
+ productType = "com.apple.product-type.framework";
165
+ };
166
+ /* End PBXNativeTarget section */
167
+
168
+ /* Begin PBXProject section */
169
+ 0867D690FE84028FC02AAC07 /* Project object */ = {
170
+ isa = PBXProject;
171
+ buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "KeyboardHook" */;
172
+ compatibilityVersion = "Xcode 3.1";
173
+ hasScannedForEncodings = 1;
174
+ mainGroup = 0867D691FE84028FC02AAC07 /* KeyboardHook */;
175
+ productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
176
+ projectDirPath = "";
177
+ projectRoot = "";
178
+ targets = (
179
+ 8DC2EF4F0486A6940098B216 /* KeyboardHook */,
180
+ );
181
+ };
182
+ /* End PBXProject section */
183
+
184
+ /* Begin PBXResourcesBuildPhase section */
185
+ 8DC2EF520486A6940098B216 /* Resources */ = {
186
+ isa = PBXResourcesBuildPhase;
187
+ buildActionMask = 2147483647;
188
+ files = (
189
+ 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */,
190
+ );
191
+ runOnlyForDeploymentPostprocessing = 0;
192
+ };
193
+ /* End PBXResourcesBuildPhase section */
194
+
195
+ /* Begin PBXSourcesBuildPhase section */
196
+ 8DC2EF540486A6940098B216 /* Sources */ = {
197
+ isa = PBXSourcesBuildPhase;
198
+ buildActionMask = 2147483647;
199
+ files = (
200
+ EC6FF357104E301F000167A6 /* EventTap.m in Sources */,
201
+ ECC36C01104E54D500846ACB /* Event.m in Sources */,
202
+ );
203
+ runOnlyForDeploymentPostprocessing = 0;
204
+ };
205
+ /* End PBXSourcesBuildPhase section */
206
+
207
+ /* Begin PBXVariantGroup section */
208
+ 089C1666FE841158C02AAC07 /* InfoPlist.strings */ = {
209
+ isa = PBXVariantGroup;
210
+ children = (
211
+ 089C1667FE841158C02AAC07 /* English */,
212
+ );
213
+ name = InfoPlist.strings;
214
+ sourceTree = "<group>";
215
+ };
216
+ /* End PBXVariantGroup section */
217
+
218
+ /* Begin XCBuildConfiguration section */
219
+ 1DEB91AE08733DA50010E9CD /* Debug */ = {
220
+ isa = XCBuildConfiguration;
221
+ buildSettings = {
222
+ ALWAYS_SEARCH_USER_PATHS = NO;
223
+ COPY_PHASE_STRIP = NO;
224
+ DYLIB_COMPATIBILITY_VERSION = 1;
225
+ DYLIB_CURRENT_VERSION = 1;
226
+ FRAMEWORK_SEARCH_PATHS = (
227
+ "$(inherited)",
228
+ "\"$(SRCROOT)/../../DDHidLib-1.1/build/Release\"",
229
+ "\"$(SRCROOT)/..\"",
230
+ );
231
+ FRAMEWORK_VERSION = A;
232
+ GCC_DYNAMIC_NO_PIC = NO;
233
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
234
+ GCC_MODEL_TUNING = G5;
235
+ GCC_OPTIMIZATION_LEVEL = 0;
236
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
237
+ GCC_PREFIX_HEADER = KeyboardHook_Prefix.pch;
238
+ INFOPLIST_FILE = Info.plist;
239
+ INSTALL_PATH = "$(HOME)/Library/Frameworks";
240
+ PRODUCT_NAME = KeyboardHook;
241
+ WRAPPER_EXTENSION = framework;
242
+ };
243
+ name = Debug;
244
+ };
245
+ 1DEB91AF08733DA50010E9CD /* Release */ = {
246
+ isa = XCBuildConfiguration;
247
+ buildSettings = {
248
+ ALWAYS_SEARCH_USER_PATHS = NO;
249
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
250
+ DYLIB_COMPATIBILITY_VERSION = 1;
251
+ DYLIB_CURRENT_VERSION = 1;
252
+ EXECUTABLE_EXTENSION = bundle;
253
+ FRAMEWORK_SEARCH_PATHS = (
254
+ "$(inherited)",
255
+ "\"$(SRCROOT)/../../DDHidLib-1.1/build/Release\"",
256
+ "\"$(SRCROOT)/..\"",
257
+ );
258
+ FRAMEWORK_VERSION = A;
259
+ GCC_ENABLE_OBJC_GC = supported;
260
+ GCC_MODEL_TUNING = G5;
261
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
262
+ GCC_PREFIX_HEADER = KeyboardHook_Prefix.pch;
263
+ INFOPLIST_FILE = Info.plist;
264
+ INSTALL_PATH = "$(HOME)/Library/Frameworks";
265
+ PRODUCT_NAME = KeyboardHook;
266
+ WRAPPER_EXTENSION = framework;
267
+ };
268
+ name = Release;
269
+ };
270
+ 1DEB91B208733DA50010E9CD /* Debug */ = {
271
+ isa = XCBuildConfiguration;
272
+ buildSettings = {
273
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
274
+ GCC_C_LANGUAGE_STANDARD = c99;
275
+ GCC_ENABLE_OBJC_GC = supported;
276
+ GCC_OPTIMIZATION_LEVEL = 0;
277
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
278
+ GCC_WARN_UNUSED_VARIABLE = YES;
279
+ ONLY_ACTIVE_ARCH = YES;
280
+ PREBINDING = NO;
281
+ SDKROOT = macosx10.5;
282
+ };
283
+ name = Debug;
284
+ };
285
+ 1DEB91B308733DA50010E9CD /* Release */ = {
286
+ isa = XCBuildConfiguration;
287
+ buildSettings = {
288
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
289
+ GCC_C_LANGUAGE_STANDARD = c99;
290
+ GCC_ENABLE_OBJC_GC = supported;
291
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
292
+ GCC_WARN_UNUSED_VARIABLE = YES;
293
+ ONLY_ACTIVE_ARCH = YES;
294
+ PREBINDING = NO;
295
+ SDKROOT = macosx10.5;
296
+ };
297
+ name = Release;
298
+ };
299
+ /* End XCBuildConfiguration section */
300
+
301
+ /* Begin XCConfigurationList section */
302
+ 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "KeyboardHook" */ = {
303
+ isa = XCConfigurationList;
304
+ buildConfigurations = (
305
+ 1DEB91AE08733DA50010E9CD /* Debug */,
306
+ 1DEB91AF08733DA50010E9CD /* Release */,
307
+ );
308
+ defaultConfigurationIsVisible = 0;
309
+ defaultConfigurationName = Release;
310
+ };
311
+ 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "KeyboardHook" */ = {
312
+ isa = XCConfigurationList;
313
+ buildConfigurations = (
314
+ 1DEB91B208733DA50010E9CD /* Debug */,
315
+ 1DEB91B308733DA50010E9CD /* Release */,
316
+ );
317
+ defaultConfigurationIsVisible = 0;
318
+ defaultConfigurationName = Release;
319
+ };
320
+ /* End XCConfigurationList section */
321
+ };
322
+ rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
323
+ }