diff options
author | frosch <frosch@openttd.org> | 2012-11-13 21:47:02 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2012-11-13 21:47:02 +0000 |
commit | c4d7c8dd427287d42374b5a83842f570642b100c (patch) | |
tree | 2f27364c8fa88537277244fade47f87bcbe4b6fd /src | |
parent | 7699a7dc06049956b90d3f41a14109ee05b97514 (diff) | |
download | openttd-c4d7c8dd427287d42374b5a83842f570642b100c.tar.xz |
(svn r24733) -Codechange: Move handling of editbox keys to window class.
Diffstat (limited to 'src')
-rw-r--r-- | src/ai/ai_gui.cpp | 6 | ||||
-rw-r--r-- | src/fios_gui.cpp | 5 | ||||
-rw-r--r-- | src/genworld_gui.cpp | 7 | ||||
-rw-r--r-- | src/misc_gui.cpp | 15 | ||||
-rw-r--r-- | src/network/network_chat_gui.cpp | 8 | ||||
-rw-r--r-- | src/network/network_content_gui.cpp | 8 | ||||
-rw-r--r-- | src/network/network_gui.cpp | 28 | ||||
-rw-r--r-- | src/newgrf_gui.cpp | 8 | ||||
-rw-r--r-- | src/querystring_gui.h | 2 | ||||
-rw-r--r-- | src/settings_gui.cpp | 8 | ||||
-rw-r--r-- | src/signs_gui.cpp | 17 | ||||
-rw-r--r-- | src/town_gui.cpp | 7 | ||||
-rw-r--r-- | src/window.cpp | 9 |
13 files changed, 34 insertions, 94 deletions
diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index e4320ae17..060f6b946 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -1340,10 +1340,8 @@ struct AIDebugWindow : public QueryStringBaseWindow { virtual EventState OnKeyPress(uint16 key, uint16 keycode) { EventState state = ES_NOT_HANDLED; - if (this->HandleEditBoxKey(WID_AID_BREAK_STR_EDIT_BOX, key, keycode, state) == HEBR_NOT_FOCUSED) { - /* Edit boxs is not globally foused => handle hotkeys of AI Debug window. */ - int num = CheckHotkeyMatch(aidebug_hotkeys, keycode, this); - if (num == -1) return ES_NOT_HANDLED; + int num = CheckHotkeyMatch(aidebug_hotkeys, keycode, this); + if (num != -1) { if (this->show_break_box && num == WID_AID_BREAK_STR_EDIT_BOX) { this->SetFocusedWidget(WID_AID_BREAK_STR_EDIT_BOX); SetFocusedWindow(this); diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index a038d0654..8cf3c840a 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -622,10 +622,7 @@ public: return ES_HANDLED; } - EventState state = ES_NOT_HANDLED; - this->HandleEditBoxKey(WID_SL_SAVE_OSK_TITLE, key, keycode, state); - - return state; + return ES_NOT_HANDLED; } virtual void OnTimeout() diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index 26911f309..452223062 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -694,13 +694,6 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow { } } - virtual EventState OnKeyPress(uint16 key, uint16 keycode) - { - EventState state = ES_NOT_HANDLED; - this->HandleEditBoxKey(WID_GL_RANDOM_EDITBOX, key, keycode, state); - return state; - } - virtual void OnOSKInput(int wid) { if (wid == WID_GL_RANDOM_EDITBOX) { diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index 868c105a9..4d43db770 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -811,10 +811,10 @@ void QueryString::DrawEditBox(const Window *w, int wid) const _cur_dpi = old_dpi; } -HandleEditBoxResult QueryStringBaseWindow::HandleEditBoxKey(int wid, uint16 key, uint16 keycode, EventState &state) +EventState QueryStringBaseWindow::HandleEditBoxKey(int wid, uint16 key, uint16 keycode) { - HandleEditBoxResult result = this->QueryString::HandleEditBoxKey(this, wid, key, keycode, state); - switch (result) { + EventState state = ES_NOT_HANDLED; + switch (this->QueryString::HandleEditBoxKey(this, wid, key, keycode, state)) { case HEBR_EDITING: this->OnOSKInput(wid); break; @@ -835,7 +835,7 @@ HandleEditBoxResult QueryStringBaseWindow::HandleEditBoxKey(int wid, uint16 key, default: break; } - return result; + return state; } /** Class for the string query window. */ @@ -916,13 +916,6 @@ struct QueryStringWindow : public QueryStringBaseWindow } } - virtual EventState OnKeyPress(uint16 key, uint16 keycode) - { - EventState state = ES_NOT_HANDLED; - this->HandleEditBoxKey(WID_QS_TEXT, key, keycode, state); - return state; - } - ~QueryStringWindow() { if (!this->handled && this->parent != NULL) { diff --git a/src/network/network_chat_gui.cpp b/src/network/network_chat_gui.cpp index 0cd9c0558..af2357dc1 100644 --- a/src/network/network_chat_gui.cpp +++ b/src/network/network_chat_gui.cpp @@ -510,13 +510,15 @@ struct NetworkChatWindow : public QueryStringBaseWindow { if (keycode == WKC_TAB) { ChatTabCompletion(); state = ES_HANDLED; - } else { - _chat_tab_completion_active = false; - this->HandleEditBoxKey(WID_NC_TEXTBOX, key, keycode, state); } return state; } + virtual void OnOSKInput(int wid) + { + _chat_tab_completion_active = false; + } + /** * Some data on this window has become invalid. * @param data Information about the changed data. diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp index 995f40ddf..2262a09fb 100644 --- a/src/network/network_content_gui.cpp +++ b/src/network/network_content_gui.cpp @@ -763,12 +763,8 @@ public: } /* FALL THROUGH, space is pressed and filter isn't focused. */ - default: { - /* Handle editbox input */ - EventState state = ES_NOT_HANDLED; - this->HandleEditBoxKey(WID_NCL_FILTER, key, keycode, state); - return state; - } + default: + return ES_NOT_HANDLED; } if (_network_content_client.Length() == 0) return ES_HANDLED; diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index 7b4735629..a3b5726d8 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -835,14 +835,12 @@ public: return ES_HANDLED; } - if (this->HandleEditBoxKey(WID_NG_CLIENT, key, keycode, state) == HEBR_NOT_FOCUSED) { - if (this->server != NULL) { - if (keycode == WKC_DELETE) { // Press 'delete' to remove servers - NetworkGameListRemoveItem(this->server); - if (this->server == this->last_joined) this->last_joined = NULL; - this->server = NULL; - this->list_pos = SLP_INVALID; - } + if (this->server != NULL) { + if (keycode == WKC_DELETE) { // Press 'delete' to remove servers + NetworkGameListRemoveItem(this->server); + if (this->server == this->last_joined) this->last_joined = NULL; + this->server = NULL; + this->list_pos = SLP_INVALID; } } @@ -1172,13 +1170,6 @@ struct NetworkStartServerWindow : public QueryStringBaseWindow { this->SetDirty(); } - virtual EventState OnKeyPress(uint16 key, uint16 keycode) - { - EventState state = ES_NOT_HANDLED; - this->HandleEditBoxKey(WID_NSS_GAMENAME, key, keycode, state); - return state; - } - virtual void OnOSKInput(int wid) { if (wid == WID_NSS_GAMENAME) { @@ -2151,13 +2142,6 @@ struct NetworkCompanyPasswordWindow : public QueryStringBaseWindow { break; } } - - virtual EventState OnKeyPress(uint16 key, uint16 keycode) - { - EventState state = ES_NOT_HANDLED; - this->HandleEditBoxKey(WID_NCP_PASSWORD, key, keycode, state); - return state; - } }; static const NWidgetPart _nested_network_company_password_window_widgets[] = { diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index 85f6e3618..4cd60a7c4 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -1262,12 +1262,8 @@ struct NewGRFWindow : public QueryStringBaseWindow, NewGRFScanCallback { this->avail_pos = this->avails.Length() - 1; break; - default: { - /* Handle editbox input */ - EventState state = ES_NOT_HANDLED; - this->HandleEditBoxKey(WID_NS_FILTER, key, keycode, state); - return state; - } + default: + return ES_NOT_HANDLED; } if (this->avails.Length() == 0) this->avail_pos = -1; diff --git a/src/querystring_gui.h b/src/querystring_gui.h index 554d6ccb2..08f99f29d 100644 --- a/src/querystring_gui.h +++ b/src/querystring_gui.h @@ -78,7 +78,7 @@ struct QueryStringBaseWindow : public Window, public QueryString { free(this->edit_str_buf); } - HandleEditBoxResult HandleEditBoxKey(int wid, uint16 key, uint16 keycode, EventState &state); + EventState HandleEditBoxKey(int wid, uint16 key, uint16 keycode); /** * Callback for when on input has been entered with the OSK. diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 4091bb25c..839134030 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -2406,14 +2406,6 @@ struct GameSettingsWindow : QueryStringBaseWindow { this->SetWidgetDisabledState(WID_GS_COLLAPSE_ALL, all_folded); } - virtual EventState OnKeyPress(uint16 key, uint16 keycode) - { - /* Handle editbox input */ - EventState state = ES_NOT_HANDLED; - this->HandleEditBoxKey(WID_GS_FILTER, key, keycode, state); - return state; - } - virtual void OnOSKInput(int wid) { if (wid == WID_GS_FILTER) { diff --git a/src/signs_gui.cpp b/src/signs_gui.cpp index 2e875d5f8..73d8af2b8 100644 --- a/src/signs_gui.cpp +++ b/src/signs_gui.cpp @@ -306,12 +306,10 @@ struct SignListWindow : QueryStringBaseWindow, SignList { virtual EventState OnKeyPress(uint16 key, uint16 keycode) { EventState state = ES_NOT_HANDLED; - if (this->HandleEditBoxKey(WID_SIL_FILTER_TEXT, key, keycode, state) == HEBR_NOT_FOCUSED) { - if (CheckHotkeyMatch(signlist_hotkeys, keycode, this) == SLHK_FOCUS_FILTER_BOX) { - this->SetFocusedWidget(WID_SIL_FILTER_TEXT); - SetFocusedWindow(this); // The user has asked to give focus to the text box, so make sure this window is focused. - state = ES_HANDLED; - } + if (CheckHotkeyMatch(signlist_hotkeys, keycode, this) == SLHK_FOCUS_FILTER_BOX) { + this->SetFocusedWidget(WID_SIL_FILTER_TEXT); + SetFocusedWindow(this); // The user has asked to give focus to the text box, so make sure this window is focused. + state = ES_HANDLED; } return state; @@ -540,13 +538,6 @@ struct SignWindow : QueryStringBaseWindow, SignList { break; } } - - virtual EventState OnKeyPress(uint16 key, uint16 keycode) - { - EventState state = ES_NOT_HANDLED; - this->HandleEditBoxKey(WID_QES_TEXT, key, keycode, state); - return state; - } }; static const NWidgetPart _nested_query_sign_edit_widgets[] = { diff --git a/src/town_gui.cpp b/src/town_gui.cpp index d3c759e37..dba12cac7 100644 --- a/src/town_gui.cpp +++ b/src/town_gui.cpp @@ -1101,13 +1101,6 @@ public: } } - virtual EventState OnKeyPress(uint16 key, uint16 keycode) - { - EventState state = ES_NOT_HANDLED; - this->HandleEditBoxKey(WID_TF_TOWN_NAME_EDITBOX, key, keycode, state); - return state; - } - virtual void OnPlaceObject(Point pt, TileIndex tile) { this->ExecuteFoundTownCommand(tile, false, STR_ERROR_CAN_T_FOUND_TOWN_HERE, CcFoundTown); diff --git a/src/window.cpp b/src/window.cpp index b7741be30..23db475f4 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -2263,8 +2263,13 @@ void HandleKeypress(uint32 raw_key) /* Check if the focused window has a focused editbox */ if (EditBoxInGlobalFocus()) { - /* All input will in this case go to the focused window */ - if (_focused_window->OnKeyPress(key, keycode) == ES_HANDLED) return; + /* All input will in this case go to the focused editbox */ + if (_focused_window->window_class == WC_CONSOLE) { + if (_focused_window->OnKeyPress(key, keycode) == ES_HANDLED) return; + } else { + QueryStringBaseWindow *query = dynamic_cast<QueryStringBaseWindow*>(_focused_window); + if (query != NULL && query->HandleEditBoxKey(_focused_window->nested_focus->index, key, keycode) == ES_HANDLED) return; + } } /* Call the event, start with the uppermost window, but ignore the toolbar. */ |