Index: src/misc_gui.cpp =================================================================== --- src/misc_gui.cpp (revision 14532) +++ src/misc_gui.cpp (working copy) @@ -960,14 +960,14 @@ return false; } -int QueryString::HandleEditBoxKey(Window *w, int wid, uint16 key, uint16 keycode, Window::EventState &state) +HandleEditBoxResult QueryString::HandleEditBoxKey(Window *w, int wid, uint16 key, uint16 keycode, Window::EventState &state) { state = Window::ES_HANDLED; switch (keycode) { - case WKC_ESC: return 2; + case WKC_ESC: return HEBR_ESCAPE_KEY; - case WKC_RETURN: case WKC_NUM_ENTER: return 1; + case WKC_RETURN: case WKC_NUM_ENTER: return HEBR_RETURN_KEY; case (WKC_CTRL | 'V'): if (InsertTextBufferClipboard(&this->text)) w->InvalidateWidget(wid); @@ -994,7 +994,7 @@ } } - return 0; + return HEBR_OTHER_KEY; } void QueryString::HandleEditBox(Window *w, int wid) @@ -1124,13 +1124,13 @@ EventState state; switch (this->HandleEditBoxKey(QUERY_STR_WIDGET_TEXT, key, keycode, state)) { default: NOT_REACHED(); - case 0: { + case HEBR_OTHER_KEY: { Window *osk = FindWindowById(WC_OSK, 0); if (osk != NULL && osk->parent == this) osk->OnInvalidateData(); } break; - case 1: this->OnOk(); // Enter pressed, confirms change + case HEBR_RETURN_KEY: this->OnOk(); // Enter pressed, confirms change /* FALL THROUGH */ - case 2: delete this; break; // ESC pressed, closes window, abandons changes + case HEBR_ESCAPE_KEY: delete this; break; // ESC pressed, closes window, abandons changes } return state; } @@ -1624,7 +1624,7 @@ EventState state = ES_NOT_HANDLED; if ((_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) && - this->HandleEditBoxKey(10, key, keycode, state) == 1) { // Press Enter + this->HandleEditBoxKey(10, key, keycode, state) == HEBR_RETURN_KEY) { // Press Enter this->HandleButtonClick(12); } Index: src/network/network_chat_gui.cpp =================================================================== --- src/network/network_chat_gui.cpp (revision 14532) +++ src/network/network_chat_gui.cpp (working copy) @@ -468,14 +468,14 @@ _chat_tab_completion_active = false; switch (this->HandleEditBoxKey(2, key, keycode, state)) { default: NOT_REACHED(); - case 0: { + case HEBR_OTHER_KEY: { Window *osk = FindWindowById(WC_OSK, 0); if (osk != NULL && osk->parent == this) osk->OnInvalidateData(); } break; - case 1: /* Return */ + case HEBR_RETURN_KEY: /* Return */ SendChat(this->text.buf, this->dtype, this->dest); /* FALLTHROUGH */ - case 2: /* Escape */ delete this; break; + case HEBR_ESCAPE_KEY: /* Escape */ delete this; break; } } return state; Index: src/network/network_gui.cpp =================================================================== --- src/network/network_gui.cpp (revision 14532) +++ src/network/network_gui.cpp (working copy) @@ -668,7 +668,7 @@ return state; } - if (this->HandleEditBoxKey(NGWW_CLIENT, key, keycode, state) == 1) return state; // enter pressed + if (this->HandleEditBoxKey(NGWW_CLIENT, key, keycode, state) == HEBR_RETURN_KEY) return state; // enter pressed /* The name is only allowed when it starts with a letter! */ if (!StrEmpty(this->edit_str_buf) && this->edit_str_buf[0] != ' ') { @@ -1047,7 +1047,7 @@ { EventState state = ES_NOT_HANDLED; if (this->field == NSSW_GAMENAME) { - if (this->HandleEditBoxKey(NSSW_GAMENAME, key, keycode, state) == 1) return state; // enter pressed + if (this->HandleEditBoxKey(NSSW_GAMENAME, key, keycode, state) == HEBR_RETURN_KEY) return state; // enter pressed ttd_strlcpy(_settings_client.network.server_name, this->text.buf, sizeof(_settings_client.network.server_name)); } @@ -1906,11 +1906,13 @@ { EventState state; switch (this->HandleEditBoxKey(4, key, keycode, state)) { - case 1: // Return + default: break; + + case HEBR_RETURN_KEY: // Return this->OnOk(); /* FALL THROUGH */ - case 2: // Escape + case HEBR_ESCAPE_KEY: // Escape delete this; break; } Index: src/querystring_gui.h =================================================================== --- src/querystring_gui.h (revision 14532) +++ src/querystring_gui.h (working copy) @@ -9,6 +9,16 @@ #include "window_gui.h" /** + * Return values for HandleEditBoxKey + */ +enum HandleEditBoxResult +{ + HEBR_OTHER_KEY = 0, // This is returned when none of the below are the case. Suggestions for a better name than 'default' are welcome. + HEBR_RETURN_KEY, + HEBR_ESCAPE_KEY, +}; + +/** * Data stored about a string that can be modified in the GUI */ struct QueryString { @@ -35,7 +45,7 @@ void DrawEditBox(Window *w, int wid); void HandleEditBox(Window *w, int wid); - int HandleEditBoxKey(Window *w, int wid, uint16 key, uint16 keycode, Window::EventState &state); + HandleEditBoxResult HandleEditBoxKey(Window *w, int wid, uint16 key, uint16 keycode, Window::EventState &state); }; struct QueryStringBaseWindow : public Window, public QueryString { Index: src/signs_gui.cpp =================================================================== --- src/signs_gui.cpp (revision 14532) +++ src/signs_gui.cpp (working copy) @@ -309,11 +309,13 @@ { EventState state = ES_NOT_HANDLED; switch (this->HandleEditBoxKey(QUERY_EDIT_SIGN_WIDGET_TEXT, key, keycode, state)) { - case 1: // Enter pressed, confirms change + default: break; + + case HEBR_RETURN_KEY: // Enter pressed, confirms change if (RenameSign(this->cur_sign, this->text.buf)) break; /* FALL THROUGH */ - case 2: // ESC pressed, closes window, abandons changes + case HEBR_ESCAPE_KEY: // ESC pressed, closes window, abandons changes delete this; break; }