Skip to content

Commit

Permalink
Display "[DictEdit]" way different from other components.
Browse files Browse the repository at this point in the history
  • Loading branch information
ueno committed May 7, 2010
1 parent adc1879 commit 4ba7513
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 36 deletions.
23 changes: 15 additions & 8 deletions engine/engine.py
Expand Up @@ -347,22 +347,29 @@ def __possibly_update_config(self):
# }

def __update(self):
prefix, midasi, suffix = self.__skk.preedit_components()
midasi_start = len(prefix)
suffix_start = midasi_start + len(midasi)
prompt, prefix, word, suffix = self.__skk.preedit_components()
prefix_start = len(prompt)
word_start = prefix_start + len(prefix)
suffix_start = word_start + len(word)
suffix_end = suffix_start + len(suffix)
attrs = ibus.AttrList()
# Display "[DictEdit]" way different from other components
# (black/lightsalmon).
attrs.append(ibus.AttributeForeground(ibus.RGB(0, 0, 0),
0, prefix_start))
attrs.append(ibus.AttributeBackground(ibus.RGB(255, 160, 122),
0, prefix_start))
if self.__skk.conv_state == skk.CONV_STATE_SELECT:
# Use colors from skk-henkan-face-default (black/darkseagreen2).
attrs.append(ibus.AttributeForeground(ibus.RGB(0, 0, 0),
midasi_start, suffix_start))
word_start, suffix_start))
attrs.append(ibus.AttributeBackground(ibus.RGB(180, 238, 180),
midasi_start, suffix_start))
word_start, suffix_start))
attrs.append(ibus.AttributeUnderline(ibus.ATTR_UNDERLINE_SINGLE,
suffix_start, suffix_end))
else:
attrs.append(ibus.AttributeUnderline(ibus.ATTR_UNDERLINE_SINGLE,
midasi_start, suffix_end))
word_start, suffix_end))
# Color cursor, currently disabled.
#
# if self.__skk.abbrev:
Expand All @@ -372,9 +379,9 @@ def __update(self):
# self.__skk.input_mode)
# attrs.append(ibus.AttributeBackground(ibus.RGB(*cursor_color),
# suffix_end, suffix_end + 1))
# preedit = ''.join((prefix, midasi, suffix, u' '))
# preedit = ''.join((prompt, prefix, word, suffix, u' '))
#
preedit = ''.join((prefix, midasi, suffix))
preedit = ''.join((prompt, prefix, word, suffix))
self.update_preedit_text(ibus.Text(preedit, attrs),
len(preedit), len(preedit) > 0)
visible = self.__candidate_selector.lookup_table_visible()
Expand Down
67 changes: 39 additions & 28 deletions engine/skk.py
Expand Up @@ -1307,43 +1307,50 @@ def dict_edit_level(self):
return len(self.__state_stack) - 1

def __dict_edit_prompt(self):
if self.dict_edit_level() > 0:
if self.__previous_state().okuri_rom_kana_state:
midasi = self.__previous_state().rom_kana_state[0] + \
u'*' + \
self.__previous_state().okuri_rom_kana_state[0] + \
self.__previous_state().okuri_rom_kana_state[1]
else:
midasi = self.__previous_state().rom_kana_state[0] + \
self.__previous_state().rom_kana_state[1]
return u'%s%s%s %s ' % (u'[' * self.dict_edit_level(),
self.translated_strings['dict-edit-prompt'],
u']' * self.dict_edit_level(),
midasi)
if self.__previous_state().okuri_rom_kana_state:
midasi = self.__previous_state().rom_kana_state[0] + \
u'*' + \
self.__previous_state().okuri_rom_kana_state[0] + \
self.__previous_state().okuri_rom_kana_state[1]
else:
return u''
midasi = self.__previous_state().rom_kana_state[0] + \
self.__previous_state().rom_kana_state[1]
return u'%s%s%s %s ' % (u'[' * self.dict_edit_level(),
self.translated_strings['dict-edit-prompt'],
u']' * self.dict_edit_level(),
midasi)

def preedit_components(self):
'''Return a tuple representing the current preedit text. The
format of the tuple is (PREFIX, MIDASI, SUFFIX). For example PREFIX
will include "▽", MIDASI is "かんが", and SUFFIX is "*え" in okuri-ari
conversion.'''
prefix = self.__dict_edit_prompt()
format of the tuple is (PROMPT, PREFIX, WORD, SUFFIX).
For example, in okuri-ari conversion (in dict-edit mode level 2) the
elements will be "[[DictEdit]] かんが*え ", "▽", "かんが", "*え" .'''
if self.dict_edit_level() > 0:
prefix += self.__current_state().dict_edit_output
prompt = self.__dict_edit_prompt()
prefix = self.__current_state().dict_edit_output
else:
prompt = u''
prefix = u''
if self.__current_state().conv_state == CONV_STATE_NONE:
if self.__current_state().rom_kana_state:
return (prefix, self.__current_state().rom_kana_state[1], u'')
return (prefix, u'', u'')
return (prompt,
prefix,
self.__current_state().rom_kana_state[1],
u'')
else:
return (prompt, prefix, u'', u'')
elif self.__current_state().conv_state == CONV_STATE_START:
if self.__current_state().okuri_rom_kana_state:
return (prefix + u'▽',
return (prompt,
prefix + u'▽',
self.__current_state().rom_kana_state[0],
u'*' + \
self.__current_state().okuri_rom_kana_state[0] + \
self.__current_state().okuri_rom_kana_state[1])
else:
return (prefix + u'▽',
return (prompt,
prefix + u'▽',
self.__current_state().rom_kana_state[0] + \
self.__current_state().rom_kana_state[1],
u'')
Expand All @@ -1352,25 +1359,29 @@ def preedit_components(self):
if self.__current_state().midasi:
candidate = self.__candidate_selector.candidate()
if candidate:
return (prefix + u'▼',
return (prompt,
prefix + u'▼',
candidate[0],
self.__current_state().okuri_rom_kana_state[0])
return (prefix + u'▼',
return (prompt,
prefix + u'▼',
self.__current_state().rom_kana_state[0],
self.__current_state().okuri_rom_kana_state[0])
else:
if self.__current_state().midasi:
candidate = self.__candidate_selector.candidate()
if candidate:
return (prefix + u'▼',
return (prompt,
prefix + u'▼',
candidate[0],
(self.__current_state().\
auto_start_henkan_keyword or u''))
return (prefix + u'▼',
return (prompt,
prefix + u'▼',
self.__current_state().rom_kana_state[0],
(self.__current_state().\
auto_start_henkan_keyword or u''))
return (prefix, u'', u'')
return (prompt, prefix, u'', u'')

preedit = property(lambda self: ''.join(self.preedit_components()))

Expand Down

0 comments on commit 4ba7513

Please sign in to comment.