GUI: Improve naming of PredictiveDialog's members.

This commit is contained in:
Johannes Schickel 2016-01-24 03:35:18 +01:00
parent 7c687a05c7
commit adbbe6b113
2 changed files with 196 additions and 196 deletions

View file

@ -70,34 +70,34 @@ enum {
PredictiveDialog::PredictiveDialog() : Dialog("Predictive") { PredictiveDialog::PredictiveDialog() : Dialog("Predictive") {
new StaticTextWidget(this, "Predictive.Headline", "Enter Text"); new StaticTextWidget(this, "Predictive.Headline", "Enter Text");
_btns[kCancelAct] = new ButtonWidget(this, "Predictive.Cancel", _("Cancel") , 0, kCancelCmd); _button[kCancelAct] = new ButtonWidget(this, "Predictive.Cancel", _("Cancel") , 0, kCancelCmd);
_btns[kOkAct] = new ButtonWidget(this, "Predictive.OK", _("Ok") , 0, kOkCmd); _button[kOkAct] = new ButtonWidget(this, "Predictive.OK", _("Ok") , 0, kOkCmd);
_btns[kBtn1Act] = new ButtonWidget(this, "Predictive.Button1", "1 `-.&" , 0, kBut1Cmd); _button[kButton1Act] = new ButtonWidget(this, "Predictive.Button1", "1 `-.&" , 0, kBut1Cmd);
_btns[kBtn2Act] = new ButtonWidget(this, "Predictive.Button2", "2 abc" , 0, kBut2Cmd); _button[kButton2Act] = new ButtonWidget(this, "Predictive.Button2", "2 abc" , 0, kBut2Cmd);
_btns[kBtn3Act] = new ButtonWidget(this, "Predictive.Button3", "3 def" , 0, kBut3Cmd); _button[kButton3Act] = new ButtonWidget(this, "Predictive.Button3", "3 def" , 0, kBut3Cmd);
_btns[kBtn4Act] = new ButtonWidget(this, "Predictive.Button4", "4 ghi" , 0, kBut4Cmd); _button[kButton4Act] = new ButtonWidget(this, "Predictive.Button4", "4 ghi" , 0, kBut4Cmd);
_btns[kBtn5Act] = new ButtonWidget(this, "Predictive.Button5", "5 jkl" , 0, kBut5Cmd); _button[kButton5Act] = new ButtonWidget(this, "Predictive.Button5", "5 jkl" , 0, kBut5Cmd);
_btns[kBtn6Act] = new ButtonWidget(this, "Predictive.Button6", "6 mno" , 0, kBut6Cmd); _button[kButton6Act] = new ButtonWidget(this, "Predictive.Button6", "6 mno" , 0, kBut6Cmd);
_btns[kBtn7Act] = new ButtonWidget(this, "Predictive.Button7", "7 pqrs" , 0, kBut7Cmd); _button[kButton7Act] = new ButtonWidget(this, "Predictive.Button7", "7 pqrs" , 0, kBut7Cmd);
_btns[kBtn8Act] = new ButtonWidget(this, "Predictive.Button8", "8 tuv" , 0, kBut8Cmd); _button[kButton8Act] = new ButtonWidget(this, "Predictive.Button8", "8 tuv" , 0, kBut8Cmd);
_btns[kBtn9Act] = new ButtonWidget(this, "Predictive.Button9", "9 wxyz" , 0, kBut9Cmd); _button[kButton9Act] = new ButtonWidget(this, "Predictive.Button9", "9 wxyz" , 0, kBut9Cmd);
_btns[kBtn0Act] = new ButtonWidget(this, "Predictive.Button0", "0" , 0, kBut0Cmd); _button[kButton0Act] = new ButtonWidget(this, "Predictive.Button0", "0" , 0, kBut0Cmd);
// I18N: You must leave "#" as is, only word 'next' is translatable // I18N: You must leave "#" as is, only word 'next' is translatable
_btns[kNextAct] = new ButtonWidget(this, "Predictive.Next", _("# next") , 0, kNextCmd); _button[kNextAct] = new ButtonWidget(this, "Predictive.Next", _("# next") , 0, kNextCmd);
_btns[kAddAct] = new ButtonWidget(this, "Predictive.Add", _("add") , 0, kAddCmd); _button[kAddAct] = new ButtonWidget(this, "Predictive.Add", _("add") , 0, kAddCmd);
_btns[kAddAct]->setEnabled(false); _button[kAddAct]->setEnabled(false);
#ifndef DISABLE_FANCY_THEMES #ifndef DISABLE_FANCY_THEMES
if (g_gui.xmlEval()->getVar("Globals.Predictive.ShowDeletePic") == 1 && g_gui.theme()->supportsImages()) { if (g_gui.xmlEval()->getVar("Globals.Predictive.ShowDeletePic") == 1 && g_gui.theme()->supportsImages()) {
_btns[kDelAct] = new PicButtonWidget(this, "Predictive.Delete", _("Delete char"), kDelCmd); _button[kDelAct] = new PicButtonWidget(this, "Predictive.Delete", _("Delete char"), kDelCmd);
((PicButtonWidget *)_btns[kDelAct])->useThemeTransparency(true); ((PicButtonWidget *)_button[kDelAct])->useThemeTransparency(true);
((PicButtonWidget *)_btns[kDelAct])->setGfx(g_gui.theme()->getImageSurface(ThemeEngine::kImageDelbtn)); ((PicButtonWidget *)_button[kDelAct])->setGfx(g_gui.theme()->getImageSurface(ThemeEngine::kImageDelbtn));
} else } else
#endif #endif
_btns[kDelAct] = new ButtonWidget(this, "Predictive.Delete" , _("<") , 0, kDelCmd); _button[kDelAct] = new ButtonWidget(this, "Predictive.Delete" , _("<") , 0, kDelCmd);
// I18N: Pre means 'Predictive', leave '*' as is // I18N: Pre means 'Predictive', leave '*' as is
_btns[kModeAct] = new ButtonWidget(this, "Predictive.Pre", _("* Pre"), 0, kModeCmd); _button[kModeAct] = new ButtonWidget(this, "Predictive.Pre", _("* Pre"), 0, kModeCmd);
_edittext = new EditTextWidget(this, "Predictive.Word", _search, 0, 0, 0); _editText = new EditTextWidget(this, "Predictive.Word", _search, 0, 0, 0);
_userDictHasChanged = false; _userDictHasChanged = false;
@ -130,18 +130,18 @@ PredictiveDialog::PredictiveDialog() : Dialog("Predictive") {
_numMatchingWords = 0; _numMatchingWords = 0;
memset(_predictiveResult, 0, sizeof(_predictiveResult)); memset(_predictiveResult, 0, sizeof(_predictiveResult));
_lastbutton = kNoAct; _lastButton = kNoAct;
_mode = kModePre; _mode = kModePre;
_lastTime = 0; _lastTime = 0;
_curTime = 0; _curTime = 0;
_lastPressBtn = kNoAct; _lastPressedButton = kNoAct;
_memoryList[0] = _predictiveDict.dictText; _memoryList[0] = _predictiveDict.dictText;
_memoryList[1] = _userDict.dictText; _memoryList[1] = _userDict.dictText;
_numMemory = 0; _numMemory = 0;
_navigationwithkeys = false; _navigationWithKeys = false;
} }
PredictiveDialog::~PredictiveDialog() { PredictiveDialog::~PredictiveDialog() {
@ -155,17 +155,17 @@ PredictiveDialog::~PredictiveDialog() {
void PredictiveDialog::reflowLayout() { void PredictiveDialog::reflowLayout() {
#ifndef DISABLE_FANCY_THEMES #ifndef DISABLE_FANCY_THEMES
removeWidget(_btns[kDelAct]); removeWidget(_button[kDelAct]);
_btns[kDelAct]->setNext(0); _button[kDelAct]->setNext(0);
delete _btns[kDelAct]; delete _button[kDelAct];
_btns[kDelAct] = nullptr; _button[kDelAct] = nullptr;
if (g_gui.xmlEval()->getVar("Globals.Predictive.ShowDeletePic") == 1 && g_gui.theme()->supportsImages()) { if (g_gui.xmlEval()->getVar("Globals.Predictive.ShowDeletePic") == 1 && g_gui.theme()->supportsImages()) {
_btns[kDelAct] = new PicButtonWidget(this, "Predictive.Delete", _("Delete char"), kDelCmd); _button[kDelAct] = new PicButtonWidget(this, "Predictive.Delete", _("Delete char"), kDelCmd);
((PicButtonWidget *)_btns[kDelAct])->useThemeTransparency(true); ((PicButtonWidget *)_button[kDelAct])->useThemeTransparency(true);
((PicButtonWidget *)_btns[kDelAct])->setGfx(g_gui.theme()->getImageSurface(ThemeEngine::kImageDelbtn)); ((PicButtonWidget *)_button[kDelAct])->setGfx(g_gui.theme()->getImageSurface(ThemeEngine::kImageDelbtn));
} else { } else {
_btns[kDelAct] = new ButtonWidget(this, "Predictive.Delete" , _("<") , 0, kDelCmd); _button[kDelAct] = new ButtonWidget(this, "Predictive.Delete" , _("<") , 0, kDelCmd);
} }
#endif #endif
@ -189,22 +189,22 @@ void PredictiveDialog::saveUserDictToFile() {
} }
void PredictiveDialog::handleKeyUp(Common::KeyState state) { void PredictiveDialog::handleKeyUp(Common::KeyState state) {
if (_currBtn != kNoAct && !_needRefresh) { if (_curPressedButton != kNoAct && !_needRefresh) {
_btns[_currBtn]->startAnimatePressedState(); _button[_curPressedButton]->startAnimatePressedState();
processBtnActive(_currBtn); processButton(_curPressedButton);
} }
} }
void PredictiveDialog::handleKeyDown(Common::KeyState state) { void PredictiveDialog::handleKeyDown(Common::KeyState state) {
_currBtn = kNoAct; _curPressedButton = kNoAct;
_needRefresh = false; _needRefresh = false;
if (getFocusWidget() == _edittext) { if (getFocusWidget() == _editText) {
setFocusWidget(_btns[kAddAct]); setFocusWidget(_button[kAddAct]);
} }
if (_lastbutton == kNoAct) { if (_lastButton == kNoAct) {
_lastbutton = kBtn5Act; _lastButton = kButton5Act;
} }
switch (state.keycode) { switch (state.keycode) {
@ -213,128 +213,128 @@ void PredictiveDialog::handleKeyDown(Common::KeyState state) {
close(); close();
return; return;
case Common::KEYCODE_LEFT: case Common::KEYCODE_LEFT:
_navigationwithkeys = true; _navigationWithKeys = true;
if (_lastbutton == kBtn1Act || _lastbutton == kBtn4Act || _lastbutton == kBtn7Act) if (_lastButton == kButton1Act || _lastButton == kButton4Act || _lastButton == kButton7Act)
_currBtn = ButtonId(_lastbutton + 2); _curPressedButton = ButtonId(_lastButton + 2);
else if (_lastbutton == kDelAct) else if (_lastButton == kDelAct)
_currBtn = kBtn1Act; _curPressedButton = kButton1Act;
else if (_lastbutton == kModeAct) else if (_lastButton == kModeAct)
_currBtn = kNextAct; _curPressedButton = kNextAct;
else if (_lastbutton == kNextAct) else if (_lastButton == kNextAct)
_currBtn = kBtn0Act; _curPressedButton = kButton0Act;
else if (_lastbutton == kAddAct) else if (_lastButton == kAddAct)
_currBtn = kOkAct; _curPressedButton = kOkAct;
else if (_lastbutton == kCancelAct) else if (_lastButton == kCancelAct)
_currBtn = kAddAct; _curPressedButton = kAddAct;
else else
_currBtn = ButtonId(_lastbutton - 1); _curPressedButton = ButtonId(_lastButton - 1);
if (_mode != kModeAbc && _lastbutton == kCancelAct) if (_mode != kModeAbc && _lastButton == kCancelAct)
_currBtn = kOkAct; _curPressedButton = kOkAct;
_needRefresh = true; _needRefresh = true;
break; break;
case Common::KEYCODE_RIGHT: case Common::KEYCODE_RIGHT:
_navigationwithkeys = true; _navigationWithKeys = true;
if (_lastbutton == kBtn3Act || _lastbutton == kBtn6Act || _lastbutton == kBtn9Act || _lastbutton == kOkAct) if (_lastButton == kButton3Act || _lastButton == kButton6Act || _lastButton == kButton9Act || _lastButton == kOkAct)
_currBtn = ButtonId(_lastbutton - 2); _curPressedButton = ButtonId(_lastButton - 2);
else if (_lastbutton == kDelAct) else if (_lastButton == kDelAct)
_currBtn = kBtn3Act; _curPressedButton = kButton3Act;
else if (_lastbutton == kBtn0Act) else if (_lastButton == kButton0Act)
_currBtn = kNextAct; _curPressedButton = kNextAct;
else if (_lastbutton == kNextAct) else if (_lastButton == kNextAct)
_currBtn = kModeAct; _curPressedButton = kModeAct;
else if (_lastbutton == kAddAct) else if (_lastButton == kAddAct)
_currBtn = kCancelAct; _curPressedButton = kCancelAct;
else if (_lastbutton == kOkAct) else if (_lastButton == kOkAct)
_currBtn = kAddAct; _curPressedButton = kAddAct;
else else
_currBtn = ButtonId(_lastbutton + 1); _curPressedButton = ButtonId(_lastButton + 1);
if (_mode != kModeAbc && _lastbutton == kOkAct) if (_mode != kModeAbc && _lastButton == kOkAct)
_currBtn = kCancelAct; _curPressedButton = kCancelAct;
_needRefresh = true; _needRefresh = true;
break; break;
case Common::KEYCODE_UP: case Common::KEYCODE_UP:
_navigationwithkeys = true; _navigationWithKeys = true;
if (_lastbutton <= kBtn3Act) if (_lastButton <= kButton3Act)
_currBtn = kDelAct; _curPressedButton = kDelAct;
else if (_lastbutton == kDelAct) else if (_lastButton == kDelAct)
_currBtn = kOkAct; _curPressedButton = kOkAct;
else if (_lastbutton == kModeAct) else if (_lastButton == kModeAct)
_currBtn = kBtn7Act; _curPressedButton = kButton7Act;
else if (_lastbutton == kBtn0Act) else if (_lastButton == kButton0Act)
_currBtn = kBtn8Act; _curPressedButton = kButton8Act;
else if (_lastbutton == kNextAct) else if (_lastButton == kNextAct)
_currBtn = kBtn9Act; _curPressedButton = kButton9Act;
else if (_lastbutton == kAddAct) else if (_lastButton == kAddAct)
_currBtn = kModeAct; _curPressedButton = kModeAct;
else if (_lastbutton == kCancelAct) else if (_lastButton == kCancelAct)
_currBtn = kBtn0Act; _curPressedButton = kButton0Act;
else if (_lastbutton == kOkAct) else if (_lastButton == kOkAct)
_currBtn = kNextAct; _curPressedButton = kNextAct;
else else
_currBtn = ButtonId(_lastbutton - 3); _curPressedButton = ButtonId(_lastButton - 3);
_needRefresh = true; _needRefresh = true;
break; break;
case Common::KEYCODE_DOWN: case Common::KEYCODE_DOWN:
_navigationwithkeys = true; _navigationWithKeys = true;
if (_lastbutton == kDelAct) if (_lastButton == kDelAct)
_currBtn = kBtn3Act; _curPressedButton = kButton3Act;
else if (_lastbutton == kBtn7Act) else if (_lastButton == kButton7Act)
_currBtn = kModeAct; _curPressedButton = kModeAct;
else if (_lastbutton == kBtn8Act) else if (_lastButton == kButton8Act)
_currBtn = kBtn0Act; _curPressedButton = kButton0Act;
else if (_lastbutton == kBtn9Act) else if (_lastButton == kButton9Act)
_currBtn = kNextAct; _curPressedButton = kNextAct;
else if (_lastbutton == kModeAct) else if (_lastButton == kModeAct)
_currBtn = kAddAct; _curPressedButton = kAddAct;
else if (_lastbutton == kBtn0Act) else if (_lastButton == kButton0Act)
_currBtn = kCancelAct; _curPressedButton = kCancelAct;
else if (_lastbutton == kNextAct) else if (_lastButton == kNextAct)
_currBtn = kOkAct; _curPressedButton = kOkAct;
else if (_lastbutton == kAddAct || _lastbutton == kCancelAct || _lastbutton == kOkAct) else if (_lastButton == kAddAct || _lastButton == kCancelAct || _lastButton == kOkAct)
_currBtn = kDelAct; _curPressedButton = kDelAct;
else else
_currBtn = ButtonId(_lastbutton + 3); _curPressedButton = ButtonId(_lastButton + 3);
if (_mode != kModeAbc && _lastbutton == kModeAct) if (_mode != kModeAbc && _lastButton == kModeAct)
_currBtn = kCancelAct; _curPressedButton = kCancelAct;
_needRefresh = true; _needRefresh = true;
break; break;
case Common::KEYCODE_KP_ENTER: case Common::KEYCODE_KP_ENTER:
case Common::KEYCODE_RETURN: case Common::KEYCODE_RETURN:
if (state.flags & Common::KBD_CTRL) { if (state.flags & Common::KBD_CTRL) {
_currBtn = kOkAct; _curPressedButton = kOkAct;
break; break;
} }
if (_navigationwithkeys) { if (_navigationWithKeys) {
// when the user has utilized arrow key navigation, // when the user has utilized arrow key navigation,
// interpret enter as 'click' on the _currBtn button // interpret enter as 'click' on the _curPressedButton button
_currBtn = _lastbutton; _curPressedButton = _lastButton;
_needRefresh = false; _needRefresh = false;
} else { } else {
// else it is a shortcut for 'Ok' // else it is a shortcut for 'Ok'
_currBtn = kOkAct; _curPressedButton = kOkAct;
} }
break; break;
case Common::KEYCODE_KP_PLUS: case Common::KEYCODE_KP_PLUS:
_currBtn = kAddAct; _curPressedButton = kAddAct;
break; break;
case Common::KEYCODE_BACKSPACE: case Common::KEYCODE_BACKSPACE:
case Common::KEYCODE_KP_MINUS: case Common::KEYCODE_KP_MINUS:
_currBtn = kDelAct; _curPressedButton = kDelAct;
break; break;
case Common::KEYCODE_KP_DIVIDE: case Common::KEYCODE_KP_DIVIDE:
_currBtn = kNextAct; _curPressedButton = kNextAct;
break; break;
case Common::KEYCODE_KP_MULTIPLY: case Common::KEYCODE_KP_MULTIPLY:
_currBtn = kModeAct; _curPressedButton = kModeAct;
break; break;
case Common::KEYCODE_KP0: case Common::KEYCODE_KP0:
_currBtn = kBtn0Act; _curPressedButton = kButton0Act;
break; break;
case Common::KEYCODE_KP1: case Common::KEYCODE_KP1:
case Common::KEYCODE_KP2: case Common::KEYCODE_KP2:
@ -345,79 +345,79 @@ void PredictiveDialog::handleKeyDown(Common::KeyState state) {
case Common::KEYCODE_KP7: case Common::KEYCODE_KP7:
case Common::KEYCODE_KP8: case Common::KEYCODE_KP8:
case Common::KEYCODE_KP9: case Common::KEYCODE_KP9:
_currBtn = ButtonId(state.keycode - Common::KEYCODE_KP1); _curPressedButton = ButtonId(state.keycode - Common::KEYCODE_KP1);
break; break;
default: default:
Dialog::handleKeyDown(state); Dialog::handleKeyDown(state);
} }
if (_lastbutton != _currBtn) if (_lastButton != _curPressedButton)
_btns[_lastbutton]->stopAnimatePressedState(); _button[_lastButton]->stopAnimatePressedState();
if (_currBtn != kNoAct && !_needRefresh) if (_curPressedButton != kNoAct && !_needRefresh)
_btns[_currBtn]->setPressedState(); _button[_curPressedButton]->setPressedState();
else else
updateHighLightedButton(_currBtn); updateHighLightedButton(_curPressedButton);
} }
void PredictiveDialog::updateHighLightedButton(ButtonId act) { void PredictiveDialog::updateHighLightedButton(ButtonId act) {
if (_currBtn != kNoAct) { if (_curPressedButton != kNoAct) {
_btns[_lastbutton]->setHighLighted(false); _button[_lastButton]->setHighLighted(false);
_lastbutton = act; _lastButton = act;
_btns[_lastbutton]->setHighLighted(true); _button[_lastButton]->setHighLighted(true);
} }
} }
void PredictiveDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) { void PredictiveDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
_currBtn = kNoAct; _curPressedButton = kNoAct;
_navigationwithkeys = false; _navigationWithKeys = false;
if (_lastbutton != kNoAct) if (_lastButton != kNoAct)
_btns[_lastbutton]->setHighLighted(false); _button[_lastButton]->setHighLighted(false);
switch (cmd) { switch (cmd) {
case kDelCmd: case kDelCmd:
_currBtn = kDelAct; _curPressedButton = kDelAct;
break; break;
case kNextCmd: case kNextCmd:
_currBtn = kNextAct; _curPressedButton = kNextAct;
break; break;
case kAddCmd: case kAddCmd:
_currBtn = kAddAct; _curPressedButton = kAddAct;
break; break;
case kModeCmd: case kModeCmd:
_currBtn = kModeAct; _curPressedButton = kModeAct;
break; break;
case kBut1Cmd: case kBut1Cmd:
_currBtn = kBtn1Act; _curPressedButton = kButton1Act;
break; break;
case kBut2Cmd: case kBut2Cmd:
_currBtn = kBtn2Act; _curPressedButton = kButton2Act;
break; break;
case kBut3Cmd: case kBut3Cmd:
_currBtn = kBtn3Act; _curPressedButton = kButton3Act;
break; break;
case kBut4Cmd: case kBut4Cmd:
_currBtn = kBtn4Act; _curPressedButton = kButton4Act;
break; break;
case kBut5Cmd: case kBut5Cmd:
_currBtn = kBtn5Act; _curPressedButton = kButton5Act;
break; break;
case kBut6Cmd: case kBut6Cmd:
_currBtn = kBtn6Act; _curPressedButton = kButton6Act;
break; break;
case kBut7Cmd: case kBut7Cmd:
_currBtn = kBtn7Act; _curPressedButton = kButton7Act;
break; break;
case kBut8Cmd: case kBut8Cmd:
_currBtn = kBtn8Act; _curPressedButton = kButton8Act;
break; break;
case kBut9Cmd: case kBut9Cmd:
_currBtn = kBtn9Act; _curPressedButton = kButton9Act;
break; break;
case kBut0Cmd: case kBut0Cmd:
_currBtn = kBtn0Act; _curPressedButton = kButton0Act;
break; break;
case kCancelCmd: case kCancelCmd:
saveUserDictToFile(); saveUserDictToFile();
@ -427,18 +427,18 @@ void PredictiveDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 d
_predictiveResult[0] = 0; _predictiveResult[0] = 0;
return; return;
case kOkCmd: case kOkCmd:
_currBtn = kOkAct; _curPressedButton = kOkAct;
break; break;
default: default:
Dialog::handleCommand(sender, cmd, data); Dialog::handleCommand(sender, cmd, data);
} }
if (_currBtn != kNoAct) { if (_curPressedButton != kNoAct) {
processBtnActive(_currBtn); processButton(_curPressedButton);
} }
} }
void PredictiveDialog::processBtnActive(ButtonId button) { void PredictiveDialog::processButton(ButtonId button) {
uint8 x; uint8 x;
static const char *const buttonStr[] = { static const char *const buttonStr[] = {
"1", "2", "3", "1", "2", "3",
@ -458,10 +458,10 @@ void PredictiveDialog::processBtnActive(ButtonId button) {
}; };
if (_mode == kModeAbc) { if (_mode == kModeAbc) {
if (button >= kBtn1Act && button <= kBtn9Act) { if (button >= kButton1Act && button <= kButton9Act) {
if (!_lastTime) if (!_lastTime)
_lastTime = g_system->getMillis(); _lastTime = g_system->getMillis();
if (_lastPressBtn == button) { if (_lastPressedButton == button) {
_curTime = g_system->getMillis(); _curTime = g_system->getMillis();
if ((_curTime - _lastTime) < kRepeatDelay) { if ((_curTime - _lastTime) < kRepeatDelay) {
button = kNextAct; button = kNextAct;
@ -470,15 +470,15 @@ void PredictiveDialog::processBtnActive(ButtonId button) {
_lastTime = 0; _lastTime = 0;
} }
} else { } else {
_lastPressBtn = button; _lastPressedButton = button;
_lastTime = g_system->getMillis(); _lastTime = g_system->getMillis();
} }
} }
} }
if (button >= kBtn1Act) { if (button >= kButton1Act) {
_lastbutton = button; _lastButton = button;
if (button == kBtn0Act && _mode != kModeNum) { // Space if (button == kButton0Act && _mode != kModeNum) { // Space
// bring MRU word at the top of the list when changing words // bring MRU word at the top of the list when changing words
if (_mode == kModePre && _unitedDict.dictActLine && _numMatchingWords > 1 && _wordNumber != 0) if (_mode == kModePre && _unitedDict.dictActLine && _numMatchingWords > 1 && _wordNumber != 0)
bringWordtoTop(_unitedDict.dictActLine, _wordNumber); bringWordtoTop(_unitedDict.dictActLine, _wordNumber);
@ -492,9 +492,9 @@ void PredictiveDialog::processBtnActive(ButtonId button) {
_numMatchingWords = 0; _numMatchingWords = 0;
memset(_repeatcount, 0, sizeof(_repeatcount)); memset(_repeatcount, 0, sizeof(_repeatcount));
_lastTime = 0; _lastTime = 0;
_lastPressBtn = kNoAct; _lastPressedButton = kNoAct;
_curTime = 0; _curTime = 0;
} else if (button < kNextAct || button == kDelAct || button == kBtn0Act) { // number or backspace } else if (button < kNextAct || button == kDelAct || button == kButton0Act) { // number or backspace
if (button == kDelAct) { // backspace if (button == kDelAct) { // backspace
if (_currentCode.size()) { if (_currentCode.size()) {
_repeatcount[_currentCode.size() - 1] = 0; _repeatcount[_currentCode.size() - 1] = 0;
@ -506,7 +506,7 @@ void PredictiveDialog::processBtnActive(ButtonId button) {
_prefix.deleteLastChar(); _prefix.deleteLastChar();
} }
} else if (_prefix.size() + _currentCode.size() < kMaxWordLen - 1) { // don't overflow the dialog line } else if (_prefix.size() + _currentCode.size() < kMaxWordLen - 1) { // don't overflow the dialog line
if (button == kBtn0Act) { // zero if (button == kButton0Act) { // zero
_currentCode += buttonStr[9]; _currentCode += buttonStr[9];
} else { } else {
_currentCode += buttonStr[button]; _currentCode += buttonStr[button];
@ -566,18 +566,18 @@ void PredictiveDialog::processBtnActive(ButtonId button) {
bringWordtoTop(_unitedDict.dictActLine, _wordNumber); bringWordtoTop(_unitedDict.dictActLine, _wordNumber);
} else if (button == kModeAct) { // Mode } else if (button == kModeAct) { // Mode
_mode++; _mode++;
_btns[kAddAct]->setEnabled(false); _button[kAddAct]->setEnabled(false);
if (_mode > kModeAbc) { if (_mode > kModeAbc) {
_mode = kModePre; _mode = kModePre;
// I18N: Pre means 'Predictive', leave '*' as is // I18N: Pre means 'Predictive', leave '*' as is
_btns[kModeAct]->setLabel("* Pre"); _button[kModeAct]->setLabel("* Pre");
} else if (_mode == kModeNum) { } else if (_mode == kModeNum) {
// I18N: 'Num' means Numbers // I18N: 'Num' means Numbers
_btns[kModeAct]->setLabel("* Num"); _button[kModeAct]->setLabel("* Num");
} else { } else {
// I18N: 'Abc' means Latin alphabet input // I18N: 'Abc' means Latin alphabet input
_btns[kModeAct]->setLabel("* Abc"); _button[kModeAct]->setLabel("* Abc");
_btns[kAddAct]->setEnabled(true); _button[kAddAct]->setEnabled(true);
} }
// truncate current input at mode change // truncate current input at mode change
@ -589,7 +589,7 @@ void PredictiveDialog::processBtnActive(ButtonId button) {
memset(_repeatcount, 0, sizeof(_repeatcount)); memset(_repeatcount, 0, sizeof(_repeatcount));
_lastTime = 0; _lastTime = 0;
_lastPressBtn = kNoAct; _lastPressedButton = kNoAct;
_curTime = 0; _curTime = 0;
} }
} }
@ -735,7 +735,7 @@ bool PredictiveDialog::matchWord() {
// The entries in the dictionary consist of a code, a space, and then // The entries in the dictionary consist of a code, a space, and then
// a space-separated list of words matching this code. // a space-separated list of words matching this code.
// To ex_currBtnly match a code, we therefore match the code plus the trailing // To ex_curPressedButtonly match a code, we therefore match the code plus the trailing
// space in the dictionary. // space in the dictionary.
Common::String code = _currentCode + " "; Common::String code = _currentCode + " ";
@ -998,9 +998,9 @@ void PredictiveDialog::loadAllDictionary(Dict &dict) {
void PredictiveDialog::pressEditText() { void PredictiveDialog::pressEditText() {
Common::strlcpy(_predictiveResult, _prefix.c_str(), sizeof(_predictiveResult)); Common::strlcpy(_predictiveResult, _prefix.c_str(), sizeof(_predictiveResult));
Common::strlcat(_predictiveResult, _currentWord.c_str(), sizeof(_predictiveResult)); Common::strlcat(_predictiveResult, _currentWord.c_str(), sizeof(_predictiveResult));
_edittext->setEditString(_predictiveResult); _editText->setEditString(_predictiveResult);
//_edittext->setCaretPos(_prefix.size() + _currentWord.size()); //_editText->setCaretPos(_prefix.size() + _currentWord.size());
_edittext->draw(); _editText->draw();
} }
} // namespace GUI } // namespace GUI

View file

@ -34,27 +34,27 @@ class ButtonWidget;
class PicButtonWidget; class PicButtonWidget;
enum ButtonId { enum ButtonId {
kBtn1Act = 0, kButton1Act = 0,
kBtn2Act = 1, kButton2Act = 1,
kBtn3Act = 2, kButton3Act = 2,
kBtn4Act = 3, kButton4Act = 3,
kBtn5Act = 4, kButton5Act = 4,
kBtn6Act = 5, kButton6Act = 5,
kBtn7Act = 6, kButton7Act = 6,
kBtn8Act = 7, kButton8Act = 7,
kBtn9Act = 8, kButton9Act = 8,
kNextAct = 9, kNextAct = 9,
kAddAct = 10, kAddAct = 10,
kDelAct = 11, kDelAct = 11,
kCancelAct = 12, kCancelAct = 12,
kOkAct = 13, kOkAct = 13,
kModeAct = 14, kModeAct = 14,
kBtn0Act = 15, kButton0Act = 15,
kNoAct = -1 kNoAct = -1
}; };
enum { enum {
kButtonCount = kBtn0Act + 1 kButtonCount = kButton0Act + 1
}; };
enum { enum {
@ -102,7 +102,7 @@ private:
bool searchWord(const char *const where, const Common::String &whatCode); bool searchWord(const char *const where, const Common::String &whatCode);
int binarySearch(const char *const *const dictLine, const Common::String &code, const int dictLineCount); int binarySearch(const char *const *const dictLine, const Common::String &code, const int dictLineCount);
bool matchWord(); bool matchWord();
void processBtnActive(ButtonId active); void processButton(ButtonId active);
void pressEditText(); void pressEditText();
void saveUserDictToFile(); void saveUserDictToFile();
@ -116,7 +116,7 @@ private:
Dict _userDict; Dict _userDict;
int _mode; int _mode;
ButtonId _lastbutton; ButtonId _lastButton;
bool _userDictHasChanged; bool _userDictHasChanged;
@ -129,8 +129,8 @@ private:
Common::String _prefix; Common::String _prefix;
uint32 _curTime, _lastTime; uint32 _curTime, _lastTime;
ButtonId _lastPressBtn; ButtonId _lastPressedButton;
ButtonId _currBtn; ButtonId _curPressedButton;
char _temp[kMaxWordLen + 1]; char _temp[kMaxWordLen + 1];
int _repeatcount[kMaxWordLen]; int _repeatcount[kMaxWordLen];
@ -140,11 +140,11 @@ private:
Common::String _search; Common::String _search;
bool _navigationwithkeys; bool _navigationWithKeys;
bool _needRefresh; bool _needRefresh;
private: private:
EditTextWidget *_edittext; EditTextWidget *_editText;
ButtonWidget *_btns[kButtonCount]; ButtonWidget *_button[kButtonCount];
}; };
} // namespace GUI } // namespace GUI