hilfer 0.9.5 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/ChangeLog CHANGED
@@ -1,256 +1,310 @@
1
+ 2009-08-01 18:28 panic
2
+
3
+ * [r4351] bin/hilfer, lib/hilfer/extensions.rb,
4
+ lib/hilfer/scite_editor.rb, lib/hilfer/tree_viewer.rb,
5
+ lib/hilfer/window.rb:
6
+ Pass options to SciteEditor. Fix single-char event name matching.
7
+ make sure wmctrl -l is matched with hex digits. Use puts instead
8
+ of print.
9
+
10
+ 2009-08-01 17:56 panic
11
+
12
+ * [r4350] README.txt, lib/hilfer/extensions.rb,
13
+ lib/hilfer/tree_viewer.rb, test, test/test_key_matcher.rb:
14
+ Don't use scancodes anymore. Make keystroke checking more modular
15
+ for easier testing.
16
+
17
+ 2009-08-01 17:27 panic
18
+
19
+ * [r4349] test, test-dir:
20
+ move out of the way
21
+
22
+ 2009-08-01 15:54 panic
23
+
24
+ * [r4348] History.txt, Manifest.txt, TODO,
25
+ lib/hilfer/scite_editor.rb, lib/hilfer/tree_viewer_window.rb,
26
+ lib/hilfer/version.rb, lib/hilfer/window.rb,
27
+ lib/hilfer/xfce_terminal.rb:
28
+ raise window using wmctrl when files opened
29
+
30
+ 2009-02-05 14:37 panic
31
+
32
+ * [r4083] History.txt, lib/hilfer/tree_viewer.rb,
33
+ lib/hilfer/version.rb:
34
+ hack for Desktop Comfort Laser
35
+
1
36
  2008-04-11 13:37 panic
2
37
 
3
- * [r3487] trunk/Manifest.txt, trunk/Rakefile,
4
- trunk/lib/hilfer/version.rb:
38
+ * [r3487] Manifest.txt, Rakefile, lib/hilfer/version.rb:
5
39
  add xfce_terminal to Manifest.txt
6
40
 
7
41
  2008-04-11 09:36 panic
8
42
 
9
- * [r3486] trunk/Rakefile:
43
+ * [r3486] Rakefile:
10
44
  clean up ChangeLog'
11
45
 
12
46
  2008-04-11 09:27 panic
13
47
 
14
- * [r3485] trunk/README.txt:
48
+ * [r3485] README.txt:
15
49
  fix home page link
16
50
 
17
51
  2008-04-11 09:17 panic
18
52
 
19
- * [r3483] trunk/History.txt, trunk/Rakefile,
20
- trunk/lib/hilfer/tree_viewer.rb, trunk/lib/hilfer/version.rb,
21
- trunk/lib/hilfer/xfce_terminal.rb:
53
+ * [r3483] History.txt, Rakefile, lib/hilfer/tree_viewer.rb,
54
+ lib/hilfer/version.rb, lib/hilfer/xfce_terminal.rb:
22
55
  0.9.4. ad xfce terminal. add version flag. fix ChangeLog issues
23
56
 
24
57
  2008-04-11 08:47 panic
25
58
 
26
- * [r3482] trunk/bin/hilfer:
59
+ * [r3482] bin/hilfer:
27
60
  add version flag
28
61
 
29
62
  2008-04-10 13:20 panic
30
63
 
31
- * [r3480] trunk/History.txt, trunk/Rakefile,
32
- trunk/lib/hilfer/version.rb:
64
+ * [r3480] History.txt, Rakefile, lib/hilfer/version.rb:
33
65
  Remove text-format dependency. Increase version
34
66
 
35
67
  2008-04-10 12:56 panic
36
68
 
37
- * [r3479] trunk, trunk/History.txt, trunk/Manifest.txt,
38
- trunk/README.txt, trunk/Rakefile:
69
+ * [r3479] ., History.txt, Manifest.txt, README.txt, Rakefile:
39
70
  clean up packaging and docs files
40
71
 
41
72
  2008-04-10 12:33 panic
42
73
 
43
- * [r3476] trunk/History.txt:
74
+ * [r3476] History.txt:
44
75
  history changes
45
76
 
46
77
  2008-04-10 12:27 panic
47
78
 
48
- * [r3475] trunk/History.txt, trunk/Manifest.txt, trunk/README.txt,
49
- trunk/Rakefile, trunk/TODO, trunk/bin/hilfer, trunk/bin/ssc,
50
- trunk/lib/hilfer/gnome_terminal.rb,
51
- trunk/lib/hilfer/hilfer_config.rb,
52
- trunk/lib/hilfer/hilfer_item.rb,
53
- trunk/lib/hilfer/hilfer_model.rb,
54
- trunk/lib/hilfer/rails_locator.rb,
55
- trunk/lib/hilfer/svn_colours.rb,
56
- trunk/lib/hilfer/tree_viewer.rb,
57
- trunk/lib/hilfer/tree_viewer_window.rb,
58
- trunk/lib/hilfer/version.rb, trunk/lib/hilfer/xterm.rb:
79
+ * [r3475] History.txt, Manifest.txt, README.txt, Rakefile, TODO,
80
+ bin/hilfer, bin/ssc, lib/hilfer/gnome_terminal.rb,
81
+ lib/hilfer/hilfer_config.rb, lib/hilfer/hilfer_item.rb,
82
+ lib/hilfer/hilfer_model.rb, lib/hilfer/rails_locator.rb,
83
+ lib/hilfer/svn_colours.rb, lib/hilfer/tree_viewer.rb,
84
+ lib/hilfer/tree_viewer_window.rb, lib/hilfer/version.rb,
85
+ lib/hilfer/xterm.rb:
59
86
  Implement graceful failure for optional dependencies. Move
60
87
  classes to separate files.
61
88
 
62
89
  2008-04-02 08:21 panic
63
90
 
64
- * [r3457] trunk/lib/hilfer/tree_viewer.rb:
91
+ * [r3457] lib/hilfer/tree_viewer.rb:
65
92
  alt-q toggles editor shutdown
66
93
 
67
94
  2008-04-01 21:28 panic
68
95
 
69
- * [r3456] trunk/Rakefile, trunk/bin/hilfer,
70
- trunk/lib/hilfer/svn_colours.rb,
71
- trunk/lib/hilfer/tree_viewer.rb:
96
+ * [r3456] Rakefile, bin/hilfer, lib/hilfer/svn_colours.rb,
97
+ lib/hilfer/tree_viewer.rb:
72
98
  allow loading of svn/client to fail gracefully. output modifier
73
99
  mask in debug. Don't use -w, because of all the activerecord
74
100
  verbiage.
75
101
 
76
102
  2008-04-01 20:21 panic
77
103
 
78
- * [r3455] trunk/README.txt:
104
+ * [r3455] README.txt:
79
105
  link to RubyForge project from docs pages
80
106
 
81
107
  2008-04-01 18:37 panic
82
108
 
83
- * [r3454] trunk/History.txt, trunk/Rakefile:
109
+ * [r3454] History.txt, Rakefile:
84
110
  dependencies were the wrong way round
85
111
 
86
112
  2008-04-01 18:18 panic
87
113
 
88
- * [r3453] trunk/Rakefile:
114
+ * [r3453] Rakefile:
89
115
  bump version
90
- * [r3452] trunk/Rakefile, trunk/bin/hilfer,
91
- trunk/lib/hilfer/tree_viewer.rb:
116
+
117
+ 2008-04-01 18:18 panic
118
+
119
+ * [r3452] Rakefile, bin/hilfer, lib/hilfer/tree_viewer.rb:
92
120
  ruby-gtk is not a gem. find icon properly. fix enter key.
93
121
 
94
122
  2008-04-01 15:31 panic
95
123
 
96
- * [r3451] trunk, trunk/History.txt, trunk/Manifest.txt,
97
- trunk/README.txt, trunk/Rakefile, trunk/TODO,
98
- trunk/bin/hilfer-icon.png, trunk/lib/hilfer/hilfer-icon.png,
99
- trunk/lib/hilfer/scite_editor.rb,
100
- trunk/lib/hilfer/svn_colours.rb:
124
+ * [r3451] ., History.txt, Manifest.txt, README.txt, Rakefile, TODO,
125
+ bin/hilfer-icon.png, lib/hilfer/hilfer-icon.png,
126
+ lib/hilfer/scite_editor.rb, lib/hilfer/svn_colours.rb:
101
127
  documentation
102
128
 
103
129
  2008-04-01 14:45 panic
104
130
 
105
- * [r3450] trunk/ext:
131
+ * [r3450] ext:
106
132
  remove old bash files
107
- * [r3449] trunk/Manifest.txt, trunk/README.txt, trunk/Rakefile,
108
- trunk/bin/ssc, trunk/ext/Rakefile, trunk/ext/bin/ec,
109
- trunk/ext/bin/sd:
133
+
134
+ 2008-04-01 14:45 panic
135
+
136
+ * [r3449] Manifest.txt, README.txt, Rakefile, bin/ssc,
137
+ ext/Rakefile, ext/bin/ec, ext/bin/sd:
110
138
  add ssc. Rakefile for ext/bin
111
139
 
112
140
  2008-04-01 09:38 panic
113
141
 
114
- * [r3448] trunk/bin/hilfer, trunk/lib/hilfer/scite_editor.rb:
142
+ * [r3448] bin/hilfer, lib/hilfer/scite_editor.rb:
115
143
  fix scite quitting
116
144
 
117
145
  2008-03-31 19:54 panic
118
146
 
119
- * [r3446] trunk/ext, trunk/ext/bin, trunk/ext/bin/ec,
120
- trunk/ext/bin/sd, trunk/ext/ec, trunk/ext/extconf.rb,
121
- trunk/ext/sd, trunk/ext/setup.rb:
147
+ * [r3446] ext, ext/bin, ext/bin/ec, ext/bin/sd, ext/ec,
148
+ ext/extconf.rb, ext/sd, ext/setup.rb:
122
149
  first attempt at installing bash scripts
123
150
 
124
151
  2008-03-31 19:17 panic
125
152
 
126
- * [r3445] trunk/Rakefile, trunk/TODO, trunk/bin/ec, trunk/bin/sd,
127
- trunk/ext, trunk/ext/ec, trunk/ext/extconf.rb, trunk/ext/sd,
128
- trunk/extconf.rb:
153
+ * [r3445] Rakefile, TODO, bin/ec, bin/sd, ext, ext/ec,
154
+ ext/extconf.rb, ext/sd, extconf.rb:
129
155
  create ext dir for bash scripts
130
156
 
131
157
  2008-03-31 15:17 panic
132
158
 
133
- * [r3444] trunk/Rakefile:
159
+ * [r3444] Rakefile:
134
160
  bump version
135
161
 
136
162
  2008-03-31 15:16 panic
137
163
 
138
- * [r3443] trunk/Rakefile, trunk/TODO, trunk/bin/hilfer,
139
- trunk/dev/listen.rb, trunk/lib/hilfer/scite_editor.rb,
140
- trunk/lib/hilfer/tree_viewer.rb:
164
+ * [r3443] Rakefile, TODO, bin/hilfer, dev/listen.rb,
165
+ lib/hilfer/scite_editor.rb, lib/hilfer/tree_viewer.rb:
141
166
  copy files to editor. Improve cleanup. Option to quit editor on
142
167
  close. Relative paths for paste.
143
168
 
144
169
  2008-03-31 12:22 panic
145
170
 
146
- * [r3442] trunk/Manifest.txt:
171
+ * [r3442] Manifest.txt:
147
172
  add svn_colours
148
- * [r3441] trunk/bin/ed:
173
+
174
+ 2008-03-31 12:22 panic
175
+
176
+ * [r3441] bin/ed:
149
177
  remove
150
178
 
151
179
  2008-03-31 12:21 panic
152
180
 
153
- * [r3440] trunk/bin/hilfer:
181
+ * [r3440] bin/hilfer:
154
182
  remove tabs
155
183
  make sure app operates without the icon
156
184
 
157
185
  2008-03-31 12:20 panic
158
186
 
159
- * [r3439] trunk/lib/hilfer/tree_viewer.rb:
187
+ * [r3439] lib/hilfer/tree_viewer.rb:
160
188
  make sure Ctrl-Enter on a top-level file doesn't cause crash
161
189
 
162
190
  2008-03-31 12:19 panic
163
191
 
164
- * [r3438] trunk/Rakefile:
192
+ * [r3438] Rakefile:
165
193
  remove commented lines
166
194
  add a run and an irb task
167
195
 
168
196
  2008-03-10 21:14 panic
169
197
 
170
- * [r3389] trunk/TODO:
198
+ * [r3389] TODO:
171
199
  done
172
200
 
173
201
  2008-03-10 21:05 panic
174
202
 
175
- * [r3388] trunk/History.txt, trunk/Manifest.txt, trunk/README.txt,
176
- trunk/Rakefile, trunk/bin/hilfer, trunk/bin/hilfer-icon.png,
177
- trunk/lib/hilfer/hilfer-icon.png, trunk/lib/hilfer/hilfer.rb:
203
+ * [r3388] History.txt, Manifest.txt, README.txt, Rakefile,
204
+ bin/hilfer, bin/hilfer-icon.png, lib/hilfer/hilfer-icon.png,
205
+ lib/hilfer/hilfer.rb:
178
206
  get gem creation working with Hoe
179
207
 
180
208
  2008-03-09 21:15 panic
181
209
 
182
- * [r3387] trunk, trunk/Rakefile, trunk/bin, trunk/bin/ec,
183
- trunk/bin/ed, trunk/bin/hilfer, trunk/bin/sd,
184
- trunk/dev/hilfer.png, trunk/ec, trunk/ed, trunk/hilfer,
185
- trunk/hilfer-icon.png, trunk/hilfer.png,
186
- trunk/lib/hilfer/hilfer-icon.png, trunk/lib/hilfer/hilfer.rb,
187
- trunk/lib/hilfer/tree_viewer.rb, trunk/sd:
210
+ * [r3387] ., Rakefile, bin, bin/ec, bin/ed, bin/hilfer, bin/sd,
211
+ dev/hilfer.png, ec, ed, hilfer, hilfer-icon.png, hilfer.png,
212
+ lib/hilfer/hilfer-icon.png, lib/hilfer/hilfer.rb,
213
+ lib/hilfer/tree_viewer.rb, sd:
188
214
  do gem-compatible directory structure
189
215
 
190
216
  2008-03-09 20:13 panic
191
217
 
192
- * [r3386] trunk/Rakefile, trunk/dev, trunk/dev/listen.rb,
193
- trunk/hilfer.rb, trunk/lib/hilfer/extconf.rb,
194
- trunk/lib/hilfer/rails_locator.rb, trunk/listen.rb,
195
- trunk/model.rb, trunk/model/model.rb, trunk/rails_locator.rb,
196
- trunk/scite_editor.rb, trunk/svn_colours.rb,
197
- trunk/tree_viewer.rb:
218
+ * [r3386] Rakefile, dev, dev/listen.rb, hilfer.rb,
219
+ lib/hilfer/extconf.rb, lib/hilfer/rails_locator.rb, listen.rb,
220
+ model.rb, model/model.rb, rails_locator.rb, scite_editor.rb,
221
+ svn_colours.rb, tree_viewer.rb:
198
222
  remove old unused files
199
223
 
200
224
  2007-06-14 10:55 panic
201
225
 
202
- * [r3283] trunk/Rakefile, trunk/extconf.rb, trunk/lib,
203
- trunk/lib/hilfer, trunk/lib/hilfer/extconf.rb,
204
- trunk/lib/hilfer/hilfer.rb, trunk/lib/hilfer/rails_locator.rb,
205
- trunk/lib/hilfer/scite_editor.rb,
206
- trunk/lib/hilfer/svn_colours.rb,
207
- trunk/lib/hilfer/tree_viewer.rb, trunk/tree_viewer.rb:
226
+ * [r3283] Rakefile, extconf.rb, lib, lib/hilfer,
227
+ lib/hilfer/extconf.rb, lib/hilfer/hilfer.rb,
228
+ lib/hilfer/rails_locator.rb, lib/hilfer/scite_editor.rb,
229
+ lib/hilfer/svn_colours.rb, lib/hilfer/tree_viewer.rb,
230
+ tree_viewer.rb:
208
231
  add missing files
209
232
 
210
233
  2007-06-04 13:25 panic
211
234
 
212
- * [r3270] trunk, trunk/TODO, trunk/ec, trunk/hilfer.rb,
213
- trunk/hilfer_options.rb, trunk/rails_locator.rb,
214
- trunk/scite_editor.rb, trunk/sd, trunk/svn_colours.rb:
235
+ * [r3270] ., TODO, ec, hilfer.rb, hilfer_options.rb,
236
+ rails_locator.rb, scite_editor.rb, sd, svn_colours.rb:
215
237
  merged from no-model
216
238
 
217
239
  2006-08-12 11:36 panic
218
240
 
219
- * [r2384] trunk/model, trunk/model/custom-list.c,
220
- trunk/model/custom-list.h, trunk/model/hilfer_tree_model.c,
221
- trunk/model/hilfer_tree_model.h,
222
- trunk/model/sec-custom-model-code.html:
241
+ * [r2384] model, model/custom-list.c, model/custom-list.h,
242
+ model/hilfer_tree_model.c, model/hilfer_tree_model.h,
243
+ model/sec-custom-model-code.html:
223
244
  add model code
224
245
 
225
246
  2006-08-12 11:34 root
226
247
 
227
- * [r2383] test, trunk/test:
248
+ * [r2383] test:
228
249
  fix trunk oops
229
- * [r2382] scite_editor.rb, trunk/scite_editor.rb:
250
+
251
+ 2006-08-12 11:34 root
252
+
253
+ * [r2382] scite_editor.rb:
230
254
  fix trunk oops
231
- * [r2381] model.rb, trunk/model.rb:
255
+
256
+ 2006-08-12 11:34 root
257
+
258
+ * [r2381] model.rb:
232
259
  fix trunk oops
233
- * [r2380] listen.rb, trunk/listen.rb:
260
+
261
+ 2006-08-12 11:34 root
262
+
263
+ * [r2380] listen.rb:
234
264
  fix trunk oops
235
- * [r2379] hilfer_options.rb, trunk/hilfer_options.rb:
265
+
266
+ 2006-08-12 11:34 root
267
+
268
+ * [r2379] hilfer_options.rb:
236
269
  fix trunk oops
237
- * [r2378] hilfer.rb, trunk/hilfer.rb:
270
+
271
+ 2006-08-12 11:34 root
272
+
273
+ * [r2378] hilfer.rb:
238
274
  fix trunk oops
239
- * [r2377] hilfer.png, trunk/hilfer.png:
275
+
276
+ 2006-08-12 11:34 root
277
+
278
+ * [r2377] hilfer.png:
240
279
  fix trunk oops
241
- * [r2376] hilfer-icon.png, trunk/hilfer-icon.png:
280
+
281
+ 2006-08-12 11:34 root
282
+
283
+ * [r2376] hilfer-icon.png:
242
284
  fix trunk oops
243
- * [r2375] hilfer, trunk/hilfer:
285
+
286
+ 2006-08-12 11:34 root
287
+
288
+ * [r2375] hilfer:
244
289
  fix trunk oops
245
- * [r2374] ed, trunk/ed:
290
+
291
+ 2006-08-12 11:34 root
292
+
293
+ * [r2374] ed:
246
294
  fix trunk oops
247
- * [r2373] ec, trunk/ec:
295
+
296
+ 2006-08-12 11:34 root
297
+
298
+ * [r2373] ec:
248
299
  fix trunk oops
249
- * [r2372] TODO, trunk/TODO:
300
+
301
+ 2006-08-12 11:34 root
302
+
303
+ * [r2372] TODO:
250
304
  fix trunk oops
251
305
 
252
306
  2006-08-12 11:22 panic
253
307
 
254
- * [r2368] trunk:
308
+ * [r2368] .:
255
309
  make trunk
256
310
 
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ === 0.10.0 / 2009-08-01
2
+
3
+ * Use wmctrl to raise SciTE window.
4
+ * Don't use hardware scan codes
5
+
1
6
  === 0.9.5 / 2008-04-11
2
7
 
3
8
  * include xfce_terminal.rb in Manifest.txt. Doh.
@@ -6,7 +11,7 @@
6
11
 
7
12
  * add --version flag
8
13
  * fix ChangeLog problem with gem
9
- * add XFCE Terminal
14
+ * add Xfce Terminal
10
15
 
11
16
  === 0.9.3 / 2008-04-10
12
17
 
data/Manifest.txt CHANGED
@@ -6,6 +6,7 @@ Rakefile
6
6
  TODO
7
7
  bin/hilfer
8
8
  bin/ssc
9
+ lib/hilfer/extensions.rb
9
10
  lib/hilfer/gnome_terminal.rb
10
11
  lib/hilfer/hilfer-icon.png
11
12
  lib/hilfer/hilfer_config.rb
@@ -17,5 +18,6 @@ lib/hilfer/svn_colours.rb
17
18
  lib/hilfer/tree_viewer.rb
18
19
  lib/hilfer/tree_viewer_window.rb
19
20
  lib/hilfer/version.rb
21
+ lib/hilfer/window.rb
20
22
  lib/hilfer/xterm.rb
21
23
  lib/hilfer/xfce_terminal.rb
data/README.txt CHANGED
@@ -19,8 +19,10 @@ I wrote hilfer.
19
19
  - Incremental keyboard search - just start typing in the window
20
20
  - Editable & hideable location bar showing current directory
21
21
  - multiple selections usually do The Right Thing.
22
- - launch Gnome Terminal in a directory
23
- - close scite on shutdown (command-line option only)
22
+ - Can track which file is currently in front in the editor.
23
+ - Can open new windows for other directories, but the same editor.
24
+ - launch Gnome Terminal or Xfce Terminal or xterm in a directory
25
+ - close scite on shutdown
24
26
 
25
27
  === Keyboard Shortcuts
26
28
 
@@ -39,6 +41,7 @@ I wrote hilfer.
39
41
  - ctrl-r refreshes from filesystem
40
42
  - ctrl-t opens a terminal window on the given directorties.
41
43
  - alt-l toggles the location bar
44
+ - alt-q toggles whether shutdown is automatic or not
42
45
  - ctrl-* on keypad means expand the entire tree
43
46
  - * on keypad expands subtrees
44
47
  - shift-/ on keypad means collapse the entire tree
@@ -87,6 +90,9 @@ hilfer.
87
90
 
88
91
  == PROBLEMS
89
92
 
93
+ These may or may not be problems, as you like. No drag-and-drop. No
94
+ icon themes. Can't create new files. Only opens files in SciTE.
95
+
90
96
  See TODO file
91
97
 
92
98
  == SYNOPSIS
@@ -106,8 +112,9 @@ See TODO file
106
112
 
107
113
  * text-format for ssc to display extended scite director commands
108
114
  * subversion-ruby to display colour highlighted subversion status
109
- * gnome-terminal executable
115
+ * gnome-terminal or Xfce Terminal executable
110
116
  * ActiveSupport to enable rails-specific shortcuts
117
+ * wmctrl to raise SciTE editor window when files are opened
111
118
 
112
119
  == INSTALL:
113
120
 
@@ -117,7 +124,7 @@ sudo gem install
117
124
 
118
125
  (The MIT License)
119
126
 
120
- Copyright (c) John Anderson 2008
127
+ Copyright (c) John Anderson 2006 - 2009
121
128
 
122
129
  Permission is hereby granted, free of charge, to any person obtaining
123
130
  a copy of this software and associated documentation files (the
data/TODO CHANGED
@@ -1,6 +1,6 @@
1
- switch focus to editor when opening files
1
+ menu
2
2
  working sets, like eclipse
3
- option to connect to existing scite
3
+ option to connect to existing scite, by pid?
4
4
  Sort by directories, then files. Needs Options.
5
5
  fix multiple selection editing, ie when several files are selected?
6
6
  shift-* to select all descendants
@@ -97,3 +97,7 @@ svn status highlighting
97
97
  11-mar-2008
98
98
  -----------
99
99
  package using Hoe
100
+
101
+ 01-aug-2009
102
+ -----------
103
+ switch focus to editor when opening files. wmctrl. EMWH and ICCCM to control windows
data/bin/hilfer CHANGED
@@ -57,7 +57,7 @@ CONFIG_FILE = File.expand_path( '~/.hilfer' )
57
57
 
58
58
  tvw = TreeViewerWindow.new(
59
59
  File.expand_path( args[0] || '.' ),
60
- SciteEditor.new
60
+ SciteEditor.new( $options )
61
61
  )
62
62
 
63
63
  # and off we go...
@@ -0,0 +1,64 @@
1
+ module Gdk
2
+ module Keyval
3
+ def self.symbol( keyval )
4
+ if @lookup.nil?
5
+ @lookup = {}
6
+ constants.each do |c|
7
+ val = eval( c )
8
+ @lookup[val] = c
9
+ end
10
+ end
11
+ @lookup[keyval]
12
+ end
13
+ end
14
+
15
+ # mainly for testing Gdk::EventKey, cos they're hard to
16
+ # instantiate
17
+ module KeyMatcher
18
+ def key_name
19
+ self.gdk_symbol[4..-1]
20
+ end
21
+
22
+ def gdk_symbol
23
+ Gdk::Keyval.symbol( keyval )
24
+ end
25
+
26
+ def match( *args )
27
+ bools = args.map do |arg|
28
+ case arg
29
+ when String
30
+ key_name == arg
31
+ when Regexp
32
+ !arg.match( key_name ).nil?
33
+ when Symbol
34
+ arg.to_s.downcase == key_name.downcase
35
+ end
36
+ end
37
+ return bools.include?( true )
38
+ end
39
+
40
+ def =~( arg )
41
+ match( arg )
42
+ end
43
+
44
+ def method_missing( meth, *args, &block )
45
+ if meth.to_s[-1] == "?"[0]
46
+ possible_key = meth.to_s[0..-2]
47
+ if possible_key.size == 1
48
+ key_name == possible_key || key_name == possible_key.upcase
49
+ else
50
+ key_name == possible_key.capitalize
51
+ end
52
+ else
53
+ super
54
+ end
55
+ end
56
+ end
57
+
58
+ class EventKey
59
+ include KeyMatcher
60
+ def inspect
61
+ "#<Gdk::EventKey #{key_name}(#{keyval}) state=#{state.inspect}"
62
+ end
63
+ end
64
+ end