osxhotkey 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +3 -2
- data/lib/osx/hotkey.rb +23 -12
- metadata +3 -3
data/Rakefile
CHANGED
@@ -15,7 +15,7 @@ DESCRIPTION = "HotKey integration with Ruby/Cocoa"
|
|
15
15
|
RUBYFORGE_PROJECT = "osxhotkey"
|
16
16
|
HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
|
17
17
|
BIN_FILES = %w( )
|
18
|
-
VERS = "0.0.
|
18
|
+
VERS = "0.0.3"
|
19
19
|
|
20
20
|
|
21
21
|
NAME = "osxhotkey"
|
@@ -90,7 +90,8 @@ end
|
|
90
90
|
Rake::RDocTask.new do |rdoc|
|
91
91
|
rdoc.rdoc_dir = 'html'
|
92
92
|
rdoc.options += RDOC_OPTS
|
93
|
-
rdoc.template = "#{ENV['template']}.rb" if ENV['template']
|
93
|
+
#rdoc.template = "#{ENV['template']}.rb" if ENV['template']
|
94
|
+
rdoc.template = "#{ENV["HOME"]}/coderepos/lang/ruby/rdoc/generators/template/html/resh/resh.rb"
|
94
95
|
if ENV['DOC_FILES']
|
95
96
|
rdoc.rdoc_files.include(ENV['DOC_FILES'].split(/,\s*/))
|
96
97
|
else
|
data/lib/osx/hotkey.rb
CHANGED
@@ -8,7 +8,7 @@ include OSX
|
|
8
8
|
|
9
9
|
class OSX::NSApplicationWithHotKey < NSApplication
|
10
10
|
|
11
|
-
ns_override 'sendEvent:'
|
11
|
+
# ns_override 'sendEvent:'
|
12
12
|
|
13
13
|
KEYMAP = {
|
14
14
|
"0" => 0x1D, "1" => 0x12, "2" => 0x13, "3" => 0x14,
|
@@ -20,6 +20,10 @@ class OSX::NSApplicationWithHotKey < NSApplication
|
|
20
20
|
"O" => 0x1F, "P" => 0x23, "Q" => 0x0C, "R" => 0x0F,
|
21
21
|
"S" => 0x01, "T" => 0x11, "U" => 0x20, "V" => 0x09,
|
22
22
|
"W" => 0x0D, "X" => 0x07, "Y" => 0x10, "Z" => 0x06,
|
23
|
+
"=" => 0x18, "-" => 0x1B, "]" => 0x1E, "[" => 0x21,
|
24
|
+
"RET" => 0x24, "\"" => 0x27, ";" => 0x29, "\\" => 0x2A,
|
25
|
+
"," => 0x2B, "/" => 0x2C, "." => 0x2F, "TAB" => 0x30,
|
26
|
+
"SPC" => 0x31, "`" => 0x32, "BS" => 0x33, "ESC" => 0x35,
|
23
27
|
}
|
24
28
|
|
25
29
|
def sendEvent(event) # :nodoc:
|
@@ -41,20 +45,24 @@ class OSX::NSApplicationWithHotKey < NSApplication
|
|
41
45
|
raise ArgumentError, "Require block." unless block_given?
|
42
46
|
mod = 0
|
43
47
|
key = nil
|
44
|
-
keys.
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
48
|
+
if keys.kind_of? Numeric
|
49
|
+
key = keys
|
50
|
+
else
|
51
|
+
keys.split('+').each do |k|
|
52
|
+
k = k.upcase
|
53
|
+
case k
|
54
|
+
when 'SHIFT', 'CONTROL', 'COMMAND', 'OPTION'
|
55
|
+
mod |= HotKey.const_get(k)
|
52
56
|
else
|
53
|
-
|
57
|
+
if KEYMAP[k]
|
58
|
+
key = KEYMAP[k]
|
59
|
+
else
|
60
|
+
raise ArgumentError, "The Key #{k} is not in Map"
|
61
|
+
end
|
54
62
|
end
|
55
63
|
end
|
64
|
+
raise ArgumentError, "The Key is invalid" unless key
|
56
65
|
end
|
57
|
-
raise ArgumentError, "The Key is invalid" unless key
|
58
66
|
ref = HotKey.new(key, mod)
|
59
67
|
id = ref.register
|
60
68
|
@hotkey_procs ||= {}
|
@@ -66,7 +74,10 @@ end
|
|
66
74
|
|
67
75
|
if $0 == __FILE__
|
68
76
|
app = NSApplicationWithHotKey.sharedApplication
|
69
|
-
ref = app.register_hotkey("command+shift+j") do
|
77
|
+
# ref = app.register_hotkey("command+shift+j") do
|
78
|
+
# puts 'hello'
|
79
|
+
# end
|
80
|
+
ref = app.register_hotkey("command+`") do
|
70
81
|
puts 'hello'
|
71
82
|
end
|
72
83
|
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.
|
2
|
+
rubygems_version: 0.9.4
|
3
3
|
specification_version: 1
|
4
4
|
name: osxhotkey
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0.
|
7
|
-
date:
|
6
|
+
version: 0.0.3
|
7
|
+
date: 2007-10-26 00:00:00 +09:00
|
8
8
|
summary: HotKey integration with Ruby/Cocoa
|
9
9
|
require_paths:
|
10
10
|
- lib
|