Method: Textbringer::TCodeInputMethod#process_mazegaki_conversion

Defined in:
lib/textbringer/input_methods/t_code_input_method.rb

#process_mazegaki_conversion(event, key_index) ⇒ Object



201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
# File 'lib/textbringer/input_methods/t_code_input_method.rb', line 201

def process_mazegaki_conversion(event, key_index)
  case event
  when " "
    mazegaki_next_page
    return true
  when "<"
    mazegaki_relimit_left
    return true
  when ">"
    mazegaki_relimit_right
    return true
  end
  begin
    if @mazegaki_candidates.size == 1
      if event == "\C-m"
        mazegaki_finish(@mazegaki_candidates[0])
        return true
      elsif key_index
        mazegaki_finish(@mazegaki_candidates[0])
        return false
      end
    elsif key_index
      mazegaki_limit = MAZEGAKI_STROKE_PRIORITY_LIST.size
      i = MAZEGAKI_STROKE_PRIORITY_LIST.index(key_index)
      if i
        offset = @mazegaki_candidates_page * mazegaki_limit + i
        c = @mazegaki_candidates[offset]
        if c
          mazegaki_finish(c)
          return true
        end
      end
    end
    mazegaki_reset
    true
  ensure
    @mazegaki_start_pos = nil
    @mazegaki_candidates = nil
    Window.redisplay
  end
end