フィルタへのショートカットキー実装。
1 parent cf7b595 commit 82fe2550d84cedf2f24d386e5d4a66b09a9fcd03
@tamra tamra authored on 29 Aug 2006
Showing 3 changed files
View
1
■■■■
honoka/libhonoka/honokapluginbase.h
#define HONOKA_CONFIG_PLUGINLOADER_PREFIX "/IMEngine/Honoka/PluginLoader"
#define HONOKA_CONFIG_KEY_CONVERTOR_PREFIX "/IMEngine/Honoka/Key/Convertor"
#define HONOKA_CONFIG_KEY_PREEDITOR_PREFIX "/IMEngine/Honoka/Key/PreEditor"
#define HONOKA_CONFIG_KEY_PREDICTOR_PREFIX "/IMEngine/Honoka/Key/Predictor"
#define HONOKA_CONFIG_KEY_FILTER_PREFIX "/IMEngine/Honoka/Key/Filter"
 
 
 
/**
View
37
honoka/src/honoka_imengine.cpp
scim_string_to_key_list(k,
_scim_config->read(String(HONOKA_CONFIG_KEY_PREDICTOR_PREFIX) + String("/") + predictors[i]->getName(),String("")));
k_predictor.push_back(k);
}
for(unsigned int i = 0;i < filters.size();i ++) {
HonokaKeyEventList k;
scim_string_to_key_list(k,
_scim_config->read(String(HONOKA_CONFIG_KEY_FILTER_PREFIX) + String("/") + filters[i]->getName(),String("")));
k_filter.push_back(k);
}
if (save_setting) {
changePreEditor(_scim_config->read(String(HONOKA_PREVIOUS_PREEDITOR),String()));
changePredictor(_scim_config->read(String(HONOKA_PREVIOUS_PREDICTOR),String()));
if (k_predictor[i].comp(key)) {
if (predictors[i] == m_predictor) return true;
//m_predictor = predictors[i];
changePredictor(predictors[i]->getName());
updatePreEditor();
return true;
}
}
for(unsigned int i = 0;i < k_filter.size();i ++) {
if (k_filter[i].comp(key)) {
if (filters[i] == m_filter) return true;
//m_predictor = predictors[i];
changeFilter(filters[i]->getName());
updatePreEditor();
return true;
}
}
}
}
}
// フィルタ選択キー
for(unsigned int i = 0;i < k_filter.size();i ++) {
if (k_filter[i].comp(key)) {
TextFilter *f = m_filter;
if (filters[i] != m_filter) changeFilter(filters[i]->getName());
commit_string(m_filter->filter(segments));
m_filter = f;
m_convertor->updateFrequency();
if (prediction) if (m_predictor->isConnected()) m_predictor->update(getConvertedText(),m_preeditor->getText(true));
m_preeditor->reset();
m_convertor->reset();
m_conversion = false;
updatePreEditor();
m_lookup = false;
alp_count = 1;
if (m_def_convertor != m_convertor) m_convertor = m_def_convertor;
updateProperty();
return true;
}
}
 
// それ以外のキーの場合、表示可能キーなら確定してPreEdit入力を再開。
if (key.get_unicode_code()) {
commit_string(getConvertedText());
m_convertor->updateFrequency();
View
honoka/src/honoka_imengine.h