1 #
2 # tk/kinput.rb : control kinput
3 #
4 require 'tk'
5
6 module TkKinput
7 include Tk
8 extend Tk
9
10 TkCommandNames = [
11 'kinput_start'.freeze,
12 'kinput_send_spot'.freeze,
13 'kanjiInput'.freeze
14 ].freeze
15
16 def TkKinput.start(win, style=None)
17 tk_call('kinput_start', win, style)
18 end
19 def kinput_start(style=None)
20 TkKinput.start(self, style)
21 end
22
23 def TkKinput.send_spot(win)
24 tk_call('kinput_send_spot', win)
25 end
26 def kinput_send_spot
27 TkKinput.send_spot(self)
28 end
29
30 def TkKinput.input_start(win, keys=nil)
31 tk_call('kanjiInput', 'start', win, *hash_kv(keys))
32 end
33 def kanji_input_start(keys=nil)
34 TkKinput.input_start(self, keys)
35 end
36
37 def TkKinput.attribute_config(win, slot, value=None)
38 if slot.kind_of? Hash
39 tk_call('kanjiInput', 'attribute', win, *hash_kv(slot))
40 else
41 tk_call('kanjiInput', 'attribute', win, "-#{slot}", value)
42 end
43 end
44 def kinput_attribute_config(slot, value=None)
45 TkKinput.attribute_config(self, slot, value)
46 end
47
48 def TkKinput.attribute_info(win, slot=nil)
49 if slot
50 conf = tk_split_list(tk_call('kanjiInput', 'attribute',
51 win, "-#{slot}"))
52 conf[0] = conf[0][1..-1]
53 conf
54 else
55 tk_split_list(tk_call('kanjiInput', 'attribute', win)).collect{|conf|
56 conf[0] = conf[0][1..-1]
57 conf
58 }
59 end
60 end
61 def kinput_attribute_info(slot=nil)
62 TkKinput.attribute_info(self, slot)
63 end
64
65 def TkKinput.input_end(win)
66 tk_call('kanjiInput', 'end', win)
67 end
68 def kanji_input_end
69 TkKinput.input_end(self)
70 end
71 end