(svn r14804) -Codechange: unify opening the OSK (Zuu)

This commit is contained in:
rubidium 2009-01-03 13:59:05 +00:00
parent 0d54db5f9f
commit e5c1a7b5c3
8 changed files with 35 additions and 33 deletions

View File

@ -373,10 +373,6 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
this->SetDirty();
break;
case GLAND_RANDOM_EDITBOX: // edit box for random seed
ShowOnScreenKeyboard(this, GLAND_RANDOM_EDITBOX, 0, 0);
break;
case GLAND_GENERATE_BUTTON: // Generate
_settings_game = _settings_newgame;

View File

@ -1061,6 +1061,11 @@ void QueryStringBaseWindow::DrawEditBox(int wid)
this->QueryString::DrawEditBox(this, wid);
}
void QueryStringBaseWindow::OnOpenOSKWindow(int wid)
{
ShowOnScreenKeyboard(this, wid, 0, 0);
}
enum QueryStringWidgets {
QUERY_STR_WIDGET_TEXT = 3,
QUERY_STR_WIDGET_DEFAULT,
@ -1103,10 +1108,6 @@ struct QueryStringWindow : public QueryStringBaseWindow
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case QUERY_STR_WIDGET_TEXT:
ShowOnScreenKeyboard(this, QUERY_STR_WIDGET_TEXT, QUERY_STR_WIDGET_CANCEL, QUERY_STR_WIDGET_OK);
break;
case QUERY_STR_WIDGET_DEFAULT:
this->text.buf[0] = '\0';
/* Fallthrough */
@ -1140,6 +1141,11 @@ struct QueryStringWindow : public QueryStringBaseWindow
return state;
}
virtual void OnOpenOSKWindow(int wid)
{
ShowOnScreenKeyboard(this, wid, QUERY_STR_WIDGET_CANCEL, QUERY_STR_WIDGET_OK);
}
~QueryStringWindow()
{
if (!this->handled && this->parent != NULL) {
@ -1594,10 +1600,6 @@ struct SaveLoadWindow : public QueryStringBaseWindow {
break;
}
case 10: // edit box
ShowOnScreenKeyboard(this, widget, 0, 0);
break;
case 11: case 12: // Delete, Save game
break;
}

View File

@ -448,10 +448,6 @@ struct NetworkChatWindow : public QueryStringBaseWindow {
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case 2:
ShowOnScreenKeyboard(this, 2, 0, 3);
break;
case 3: /* Send */
SendChat(this->text.buf, this->dtype, this->dest);
/* FALLTHROUGH */
@ -485,6 +481,11 @@ struct NetworkChatWindow : public QueryStringBaseWindow {
}
return state;
}
virtual void OnOpenOSKWindow(int wid)
{
ShowOnScreenKeyboard(this, wid, 0, 3);
}
};
static const Widget _chat_window_widgets[] = {

View File

@ -473,10 +473,6 @@ public:
{
this->field = widget;
switch (widget) {
case NGWW_CLIENT:
ShowOnScreenKeyboard(this, NGWW_CLIENT, 0, 0);
break;
case NGWW_CANCEL: // Cancel button
DeleteWindowById(WC_NETWORK_WINDOW, 0);
break;
@ -917,10 +913,6 @@ struct NetworkStartServerWindow : public QueryStringBaseWindow {
ShowNetworkGameWindow();
break;
case NSSW_GAMENAME:
ShowOnScreenKeyboard(this, NSSW_GAMENAME, 0, 0);
break;
case NSSW_SETPWD: // Set password button
this->widget_id = NSSW_SETPWD;
SetDParamStr(0, _settings_client.network.server_password);
@ -1907,10 +1899,6 @@ struct NetworkCompanyPasswordWindow : public QueryStringBaseWindow {
this->ToggleWidgetLoweredState(NCPWW_SAVE_AS_DEFAULT_PASSWORD);
this->SetDirty();
break;
case NCPWW_PASSWORD:
ShowOnScreenKeyboard(this, NCPWW_PASSWORD, NCPWW_CANCEL, NCPWW_OK);
break;
}
}
@ -1935,6 +1923,11 @@ struct NetworkCompanyPasswordWindow : public QueryStringBaseWindow {
}
return state;
}
virtual void OnOpenOSKWindow(int wid)
{
ShowOnScreenKeyboard(this, wid, NCPWW_CANCEL, NCPWW_OK);
}
};
static const Widget _ncp_window_widgets[] = {

View File

@ -67,6 +67,7 @@ struct QueryStringBaseWindow : public Window, public QueryString {
void DrawEditBox(int wid);
void HandleEditBox(int wid);
int HandleEditBoxKey(int wid, uint16 key, uint16 keycode, EventState &state);
virtual void OnOpenOSKWindow(int wid);
};
void ShowOnScreenKeyboard(QueryStringBaseWindow *parent, int button, int cancel, int ok);

View File

@ -278,10 +278,6 @@ struct SignWindow : QueryStringBaseWindow, SignList {
break;
}
case QUERY_EDIT_SIGN_WIDGET_TEXT:
ShowOnScreenKeyboard(this, widget, QUERY_EDIT_SIGN_WIDGET_CANCEL, QUERY_EDIT_SIGN_WIDGET_OK);
break;
case QUERY_EDIT_SIGN_WIDGET_DELETE:
/* Only need to set the buffer to null, the rest is handled as the OK button */
RenameSign(this->cur_sign, "");
@ -319,6 +315,11 @@ struct SignWindow : QueryStringBaseWindow, SignList {
{
this->HandleEditBox(QUERY_EDIT_SIGN_WIDGET_TEXT);
}
virtual void OnOpenOSKWindow(int wid)
{
ShowOnScreenKeyboard(this, wid, QUERY_EDIT_SIGN_WIDGET_CANCEL, QUERY_EDIT_SIGN_WIDGET_OK);
}
};
static const Widget _query_sign_edit_widgets[] = {

View File

@ -24,6 +24,7 @@
#include "window_func.h"
#include "tilehighlight_func.h"
#include "network/network.h"
#include "querystring_gui.h"
#include "table/sprites.h"
@ -184,6 +185,13 @@ static void DispatchLeftClickEvent(Window *w, int x, int y, bool double_click)
}
} else if (wi->type == WWT_SCROLLBAR || wi->type == WWT_SCROLL2BAR || wi->type == WWT_HSCROLLBAR) {
ScrollbarClickHandler(w, wi, x, y);
} else if (wi->type == WWT_EDITBOX) {
/* Open the OSK window if clicked on an edit box */
QueryStringBaseWindow *qs = dynamic_cast<QueryStringBaseWindow*>(w);
if (qs != NULL) {
const int widget_index = wi - w->widget;
qs->OnOpenOSKWindow(widget_index);
}
}
if (w->desc_flags & WDF_STD_BTN) {

View File

@ -477,7 +477,7 @@ enum WindowWidgetTypes {
WWT_CLOSEBOX, ///< Close box (at top-left of a window)
WWT_DROPDOWN, ///< Raised drop down list (regular)
WWT_DROPDOWNIN, ///< Inset drop down list (used on game options only)
WWT_EDITBOX, ///< a textbox for typing (don't forget to call ShowOnScreenKeyboard() when clicked)
WWT_EDITBOX, ///< a textbox for typing
WWT_LAST, ///< Last Item. use WIDGETS_END to fill up padding!!
WWT_MASK = 0x1F,