Mercurial > kinput2.yaz
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 |
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 |