annotate lib/ruby/kinput2.rb @ 16:598fcbe482b5

imported patch 19_kinput2-v3.1-ruby.patch
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Mon, 08 Mar 2010 20:38:17 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
1 $KCODE = 'e'
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
2 require "jcode"
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
3 require "kconv"
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
4 require 'suikyo/suikyo'
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
5
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
6 module Debug
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
7 attr_accessor :debug_mode
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
8 def debug_message (message, output = nil)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
9 if Debug::debug_mode?(output) || @debug_mode then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
10 puts "#{self.class}[#{self.id}]: #{message}"
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
11 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
12 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
13
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
14 def Debug::message (message, output = nil)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
15 if Debug::debug_mode?(output) then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
16 puts message
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
17 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
18 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
19
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
20 def Debug::debug_mode? (output = nil)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
21 return (ENV['RUBY_DEBUG'] || $DEBUG || output)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
22 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
23 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
24
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
25 class TextEdit
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
26 include Debug
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
27
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
28 attr_reader :cursor
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
29 def initialize (text = "", cursor = 0)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
30 @debug_mode = false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
31 set (text, cursor)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
32 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
33
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
34 def set (data, cursor = 0)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
35 @data = data
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
36 @cursor = cursor
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
37 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
38
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
39 def text
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
40 return @data
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
41 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
42
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
43 def reset
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
44 set ("", 0)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
45 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
46
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
47 def insert (string)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
48 @data = @data[0,@cursor] + string + @data[@cursor..-1]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
49 @cursor += string.length;
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
50 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
51
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
52 def delete
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
53 if (@cursor < @data.length) then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
54 @data = @data[0,@cursor] + @data[(@cursor + 1)..-1]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
55 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
56 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
57
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
58 def backspace
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
59 if (@cursor > 0) then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
60 @data = @data[0,(@cursor - 1)] + @data[@cursor..-1]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
61 @cursor -= 1
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
62 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
63 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
64
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
65 def cursor_left
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
66 if (@cursor > 0) then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
67 @cursor -= 1
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
68 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
69 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
70
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
71 def cursor_right
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
72 if (@cursor < @data.length) then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
73 @cursor += 1
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
74 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
75 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
76
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
77 def cursor_beginning
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
78 @cursor = 0
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
79 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
80
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
81 def cursor_end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
82 @cursor = @data.length
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
83 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
84
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
85 def segments
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
86 # [text before the cursor, text on the cursor, text after the cursor]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
87 return [@data[0,@cursor], @data[@cursor,1], @data[(@cursor + 1)..-1]]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
88 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
89 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
90
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
91 class JTextEdit < TextEdit
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
92 def initialize (text = "", cursor = 0)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
93 super
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
94 @suikyo = Suikyo.new
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
95 @suikyo.table.loadfile("romaji-kana")
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
96 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
97
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
98 def text
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
99 if @cursor == @data.length then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
100 return @suikyo.convert (@data)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
101 else
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
102 return super
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
103 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
104 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
105
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
106 def segments
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
107 if @cursor == @data.length then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
108 return [@suikyo.convert (@data), '', '']
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
109 else
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
110 return super
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
111 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
112 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
113 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
114
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
115 class Window
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
116 attr_reader :call_open, :call_close, :visible
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
117
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
118 def initialize (parent)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
119 @parent = parent
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
120 @visible = false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
121 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
122
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
123 def open
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
124 @call_open = true unless @visible
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
125 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
126 def open_end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
127 @call_open = false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
128 @visible = true
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
129 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
130
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
131 def close
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
132 @call_close = true if @visible
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
133 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
134 def close_end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
135 @call_close = false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
136 @visible = false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
137 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
138 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
139
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
140 class Dialog < Window
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
141 def text
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
142 @parent.cand_list.join(" ")
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
143 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
144 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
145
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
146 class Selection < Window
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
147 attr_reader :call_right, :call_left, :call_line_beginning, :call_line_end,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
148 :call_up, :call_down
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
149
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
150 def right
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
151 @call_right = true
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
152 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
153 def right_end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
154 @call_right = false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
155 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
156
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
157 def left
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
158 @call_left = true
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
159 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
160 def left_end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
161 @call_left = false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
162 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
163
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
164 def line_beginning
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
165 @call_line_beginning = true
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
166 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
167 def line_beginning_end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
168 @call_line_beginning = false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
169 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
170
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
171 def line_end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
172 @call_line_end = true
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
173 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
174 def line_end_end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
175 @call_line_end = false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
176 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
177
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
178 def up
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
179 @call_up = true
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
180 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
181 def up_end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
182 @call_up = false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
183 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
184
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
185 def down
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
186 @call_down = true
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
187 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
188 def down_end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
189 @call_down = false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
190 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
191 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
192
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
193 class KeyMap
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
194 @@keysym = {
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
195 :enter => 65293,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
196 :space => 32,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
197 :tab => 65289,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
198 :delete => 65535,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
199 :insert => 65379,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
200 :home => 65360,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
201 :end => 65367,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
202 :page_up => 65365,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
203 :page_down => 65366,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
204 :esc => 65307,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
205 :f1 => 65470,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
206 :f2 => 65471,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
207 :f3 => 65472,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
208 :f4 => 65473,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
209 :f5 => 65474,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
210 :f6 => 65475,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
211 :f7 => 65476,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
212 :f8 => 65477,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
213 :f9 => 65478,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
214 :f10 => 65479,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
215 :f11 => 65480,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
216 :f12 => 65481,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
217 :backspace => 65288,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
218 :muhenkan => 65314,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
219 :henkan => 65315,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
220 :hankaku_zenkaku => 65322,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
221 :katakana_hiragana => 65319,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
222 :up => 65362,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
223 :down => 65364,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
224 :right => 65363,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
225 :left => 65361,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
226 :ctrl_l => 65507,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
227 :ctrl_r => 65508,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
228 :alt_l => 65513,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
229 :alt_r => 65514,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
230 :shift_l => 65505,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
231 :shift_r => 65506,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
232 }
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
233
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
234 # @@enter = [13, 65293, 0]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
235 # @@ctrl_a = [1, 97, 4]; @@alt_a = [97, 97, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
236 # @@ctrl_b = [2, 98, 4]; @@alt_b = [98, 98, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
237 # @@ctrl_c = [3, 99, 4]; @@alt_c = [99, 99, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
238 # @@ctrl_d = [4, 100, 4]; @@alt_d = [100, 100, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
239 # @@ctrl_e = [5, 101, 4]; @@alt_e = [101, 101, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
240 # @@ctrl_f = [6, 102, 4]; @@alt_f = [102, 102, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
241 # @@ctrl_g = [7, 103, 4]; @@alt_g = [103, 103, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
242 # @@ctrl_h = [8, 104, 4]; @@alt_h = [104, 104, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
243 # @@ctrl_i = [9, 105, 4]; @@alt_i = [105, 105, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
244 # @@ctrl_j = [10, 106, 4]; @@alt_j = [106, 106, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
245 # @@ctrl_k = [11, 107, 4]; @@alt_k = [107, 107, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
246 # @@ctrl_l = [12, 108, 4]; @@alt_l = [108, 108, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
247 # @@ctrl_m = [13, 109, 4]; @@alt_m = [109, 109, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
248 # @@ctrl_n = [14, 110, 4]; @@alt_n = [110, 110, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
249 # @@ctrl_o = [15, 111, 4]; @@alt_o = [111, 111, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
250 # @@ctrl_p = [16, 112, 4]; @@alt_p = [112, 112, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
251 # @@ctrl_q = [17, 113, 4]; @@alt_q = [113, 113, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
252 # @@ctrl_r = [18, 114, 4]; @@alt_r = [114, 114, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
253 # @@ctrl_s = [19, 115, 4]; @@alt_s = [115, 115, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
254 # @@ctrl_t = [20, 116, 4]; @@alt_t = [116, 116, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
255 # @@ctrl_u = [21, 117, 4]; @@alt_u = [117, 117, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
256 # @@ctrl_v = [22, 118, 4]; @@alt_v = [118, 118, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
257 # @@ctrl_w = [23, 119, 4]; @@alt_w = [119, 119, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
258 # @@ctrl_x = [24, 120, 4]; @@alt_x = [120, 120, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
259 # @@ctrl_y = [25, 121, 4]; @@alt_y = [121, 121, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
260 # @@ctrl_z = [26, 122, 4]; @@alt_z = [122, 122, 8]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
261
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
262 @@modifier = { :shift => 1, :ctrl => 4, :alt => 8 }
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
263
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
264 def initialize
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
265 @keymap = Hash.new
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
266 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
267
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
268 def key (stroke)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
269 modifiers = 0
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
270 if stroke.kind_of?(Array) then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
271 main_key = stroke[0]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
272 stroke[1..-1].each {|modifier|
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
273 modifiers |=
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
274 (modifier.kind_of?(Symbol) ? @@modifier[modifier] : modifier)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
275 }
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
276 else
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
277 main_key = stroke
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
278 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
279 if main_key.kind_of?(Symbol) then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
280 main_key = @@keysym[main_key]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
281 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
282 return [main_key, modifiers]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
283 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
284
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
285 def ignore_shift (key)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
286 (main_key, modifiers) = key
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
287 return [main_key, (modifiers & ~@@modifier[:shift])]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
288 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
289
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
290 def add (stroke, command)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
291 @keymap[key(stroke)] = command
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
292 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
293
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
294 def del (stroke)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
295 @keymap.delete(key(stroke))
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
296 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
297
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
298 def command (stroke)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
299 return @keymap[key(stroke)] || @keymap[ignore_shift(key(stroke))]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
300 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
301 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
302
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
303
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
304 class ModeCore
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
305 attr_accessor :trap
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
306 attr_reader :label, :keymap
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
307 def initialize (parent)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
308 @parent = parent
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
309 @label = ""
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
310 @keymap = KeyMap.new
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
311 initialize_keys
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
312 @trap = true
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
313 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
314
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
315 def on (prev_mode = nil)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
316 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
317
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
318 def off (next_mode = nil)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
319 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
320
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
321 def entries
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
322 return []
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
323 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
324
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
325 def call (char, keysym, modifiers)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
326 command = @keymap.command([keysym, modifiers])
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
327 if command then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
328 return send(command, keysym, modifiers)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
329 else
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
330 return @trap
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
331 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
332 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
333 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
334
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
335 class ModeMaster
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
336 attr_reader :current_name
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
337
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
338 def initialize (parent, mode = :fund)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
339 @parent = parent
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
340 @mode = Hash.new
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
341 @current_name = nil
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
342 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
343
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
344 def set (name, mode)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
345 @mode[name] = mode
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
346 unless @current then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
347 @current_name = name
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
348 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
349 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
350
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
351 def current
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
352 return @mode[@current_name]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
353 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
354
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
355 def change (name)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
356 if @mode.key?(name) then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
357 @current_name = name
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
358 current.on
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
359 return true
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
360 else
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
361 return false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
362 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
363 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
364
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
365 def label (name = @current_name)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
366 if name then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
367 mode = @mode[name]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
368 else
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
369 mode = current
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
370 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
371
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
372 if mode then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
373 return mode.label.toeuc
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
374 else
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
375 return "NOMODE"
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
376 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
377 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
378 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
379
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
380 class KanjiConvCore
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
381 include Debug
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
382 attr_reader :cand_list, :cand_index,
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
383 :value_fixed, :call_fix, :mode
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
384
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
385 def initialize
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
386 @debug_mode = false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
387
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
388 @textEdit = TextEdit.new
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
389 @mode = ModeMaster.new (self)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
390 clear
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
391 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
392
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
393 def reset
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
394 clear
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
395 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
396
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
397 def clear
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
398 @cand_list = []
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
399 @cand_index = 0
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
400
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
401 @call_fix = false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
402 @value_fixed = ""
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
403 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
404
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
405 ## inputEvent (keynum, keysym = nil, state = nil)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
406 ## ReturnValue 1:Pass 0:Trap
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
407 def inputEvent (keynum, keysym = nil, state = nil)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
408 return 1
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
409 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
410
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
411 def fix (fixed_arg)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
412 # fixed_arg is a string or an index number of cand_list.
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
413 @call_fix = true
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
414 if fixed_arg.kind_of?(Integer) then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
415 word = @cand_list[fixed_arg]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
416 else
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
417 word = fixed_arg
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
418 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
419 @value_fixed = word
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
420 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
421 def fix_end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
422 @call_fix = false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
423 @value_fixed = ""
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
424 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
425
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
426 def modeline
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
427 return @mode.label
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
428 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
429
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
430 def set_cand_list (list, index = nil)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
431 if (list.is_a?(Array) && list.length > 0) then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
432 @cand_list = list.map {|cand| cand.toeuc}
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
433 @cand_index = index if index
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
434 return true
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
435 else
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
436 reset_cand_list
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
437 return false
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
438 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
439 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
440 def set_cand_index (index)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
441 debug_message("<<set_cand_index>> #{index}")
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
442 @cand_index = index
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
443 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
444 def reset_cand_list
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
445 @cand_list = []
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
446 @cand_index = 0
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
447 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
448
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
449 def segment_length
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
450 segments = (@mode.current.entries - [''])
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
451 return segments.length
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
452 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
453 def segment_word (n)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
454 segments = (@mode.current.entries - [''])
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
455 return segments[n]
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
456 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
457 def segment_status (n)
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
458 segments = @mode.current.entries
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
459 offset = 0
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
460 if segments[0] == "" then
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
461 offset += 1
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
462 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
463 return ((n + offset) % 3 == 1) ? :highlight : :normal
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
464 end
598fcbe482b5 imported patch 19_kinput2-v3.1-ruby.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
465 end