Changeset - r10547:46e9c74ed423
[Not reviewed]
master
0 8 0
rubidium - 16 years ago 2009-01-03 13:59:05
rubidium@openttd.org
(svn r14804) -Codechange: unify opening the OSK (Zuu)
8 files changed with 35 insertions and 33 deletions:
0 comments (0 inline, 0 general)
src/genworld_gui.cpp
Show inline comments
 
@@ -370,16 +370,12 @@ struct GenerateLandscapeWindow : public 
 
				_settings_newgame.game_creation.generation_seed = InteractiveRandom();
 
				snprintf(this->edit_str_buf, this->edit_str_size, "%u", _settings_newgame.game_creation.generation_seed);
 
				UpdateTextBufferSize(&this->text);
 
				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;
 

	
 
				if (_settings_game.economy.town_layout == TL_NO_ROADS) {
 
					ShowQuery(
 
						STR_TOWN_LAYOUT_WARNING_CAPTION,
src/misc_gui.cpp
Show inline comments
 
@@ -1058,12 +1058,17 @@ void QueryStringBaseWindow::HandleEditBo
 

	
 
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,
 
	QUERY_STR_WIDGET_CANCEL,
 
	QUERY_STR_WIDGET_OK
 
};
 
@@ -1100,16 +1105,12 @@ struct QueryStringWindow : public QueryS
 
		}
 
	}
 

	
 
	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 */
 
			case QUERY_STR_WIDGET_OK:
 
				this->OnOk();
 
				/* Fallthrough */
 
@@ -1137,12 +1138,17 @@ struct QueryStringWindow : public QueryS
 
			/* FALL THROUGH */
 
			case HEBR_CANCEL: delete this; break; // close window, abandon changes
 
		}
 
		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) {
 
			Window *parent = this->parent;
 
			this->parent = NULL; // so parent doesn't try to delete us again
 
			parent->OnQueryTextFinished(NULL);
 
@@ -1591,16 +1597,12 @@ struct SaveLoadWindow : public QueryStri
 
					this->SetDirty();
 
					BuildFileList();
 
				}
 
				break;
 
			}
 

	
 
			case 10: // edit box
 
				ShowOnScreenKeyboard(this, widget, 0, 0);
 
				break;
 

	
 
			case 11: case 12: // Delete, Save game
 
				break;
 
		}
 
	}
 

	
 
	virtual void OnMouseLoop()
src/network/network_chat_gui.cpp
Show inline comments
 
@@ -445,16 +445,12 @@ struct NetworkChatWindow : public QueryS
 
		this->DrawEditBox(2);
 
	}
 

	
 
	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 */
 
			case 0: /* Cancel */ delete this; break;
 
		}
 
	}
 
@@ -482,12 +478,17 @@ struct NetworkChatWindow : public QueryS
 
				/* FALLTHROUGH */
 
				case HEBR_CANCEL: delete this; break;
 
			}
 
		}
 
		return state;
 
	}
 

	
 
	virtual void OnOpenOSKWindow(int wid)
 
	{
 
		ShowOnScreenKeyboard(this, wid, 0, 3);
 
	}
 
};
 

	
 
static const Widget _chat_window_widgets[] = {
 
{   WWT_CLOSEBOX, RESIZE_NONE,   COLOUR_GREY,   0,  10,  0, 13, STR_00C5,                  STR_018B_CLOSE_WINDOW},
 
{      WWT_PANEL, RESIZE_RIGHT,  COLOUR_GREY,  11, 319,  0, 13, 0x0,                       STR_NULL}, // background
 
{    WWT_EDITBOX, RESIZE_RIGHT,  COLOUR_GREY,  75, 257,  1, 12, STR_NETWORK_CHAT_OSKTITLE, STR_NULL}, // text box
src/network/network_gui.cpp
Show inline comments
 
@@ -470,16 +470,12 @@ public:
 
	}
 

	
 
	virtual void OnClick(Point pt, int widget)
 
	{
 
		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;
 

	
 
			case NGWW_CONN_BTN: // 'Connection' droplist
 
				ShowDropDownMenu(this, _lan_internet_types_dropdown, _settings_client.network.lan_internet, NGWW_CONN_BTN, 0, 0); // do it for widget NSSW_CONN_BTN
 
@@ -914,16 +910,12 @@ struct NetworkStartServerWindow : public
 
		switch (widget) {
 
			case NSSW_CLOSE:  // Close 'X'
 
			case NSSW_CANCEL: // Cancel button
 
				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);
 
				ShowQueryString(STR_JUST_RAW_STRING, STR_NETWORK_SET_PASSWORD, 20, 250, this, CS_ALPHANUMERAL, QSF_NONE);
 
				break;
 

	
 
@@ -1904,16 +1896,12 @@ struct NetworkCompanyPasswordWindow : pu
 
				break;
 

	
 
			case NCPWW_SAVE_AS_DEFAULT_PASSWORD:
 
				this->ToggleWidgetLoweredState(NCPWW_SAVE_AS_DEFAULT_PASSWORD);
 
				this->SetDirty();
 
				break;
 

	
 
			case NCPWW_PASSWORD:
 
				ShowOnScreenKeyboard(this, NCPWW_PASSWORD, NCPWW_CANCEL, NCPWW_OK);
 
				break;
 
		}
 
	}
 

	
 
	virtual void OnMouseLoop()
 
	{
 
		this->HandleEditBox(4);
 
@@ -1932,12 +1920,17 @@ struct NetworkCompanyPasswordWindow : pu
 
			case HEBR_CANCEL:
 
				delete this;
 
				break;
 
		}
 
		return state;
 
	}
 

	
 
	virtual void OnOpenOSKWindow(int wid)
 
	{
 
		ShowOnScreenKeyboard(this, wid, NCPWW_CANCEL, NCPWW_OK);
 
	}
 
};
 

	
 
static const Widget _ncp_window_widgets[] = {
 
{   WWT_CLOSEBOX,  RESIZE_NONE,  COLOUR_GREY,   0,  10,  0, 13, STR_00C5,                          STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,  RESIZE_NONE,  COLOUR_GREY,  11, 299,  0, 13, STR_COMPANY_PASSWORD_CAPTION,      STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,  RESIZE_NONE,  COLOUR_GREY,   0, 299, 14, 50, 0x0,                               STR_NULL},
src/querystring_gui.h
Show inline comments
 
@@ -64,11 +64,12 @@ struct QueryStringBaseWindow : public Wi
 
		free(this->edit_str_buf);
 
	}
 

	
 
	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);
 

	
 
#endif /* QUERYSTRING_GUI_H */
src/signs_gui.cpp
Show inline comments
 
@@ -275,16 +275,12 @@ struct SignWindow : QueryStringBaseWindo
 
				/* Scroll to sign and reopen window */
 
				ScrollMainWindowToTile(TileVirtXY(si->x, si->y));
 
				UpdateSignEditWindow(si);
 
				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, "");
 
				/* don't delete this, we are deleted in Sign::~Sign() -> DeleteRenameSignWindow() */
 
				break;
 

	
 
@@ -316,12 +312,17 @@ struct SignWindow : QueryStringBaseWindo
 
	}
 

	
 
	virtual void OnMouseLoop()
 
	{
 
		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[] = {
 
{ WWT_CLOSEBOX, RESIZE_NONE,  COLOUR_GREY,   0,  10,   0,  13, STR_00C5,          STR_018B_CLOSE_WINDOW},
 
{  WWT_CAPTION, RESIZE_NONE,  COLOUR_GREY,  11, 259,   0,  13, STR_012D,          STR_NULL },
 
{    WWT_PANEL, RESIZE_NONE,  COLOUR_GREY,   0, 259,  14,  29, STR_NULL,          STR_NULL },
src/window.cpp
Show inline comments
 
@@ -21,12 +21,13 @@
 
#include "vehicle_base.h"
 
#include "settings_type.h"
 
#include "cheat_func.h"
 
#include "window_func.h"
 
#include "tilehighlight_func.h"
 
#include "network/network.h"
 
#include "querystring_gui.h"
 

	
 
#include "table/sprites.h"
 

	
 
static Point _drag_delta; ///< delta between mouse cursor and upper left corner of dragged window
 
static Window *_mouseover_last_w = NULL; ///< Window of the last MOUSEOVER event
 

	
 
@@ -181,12 +182,19 @@ static void DispatchLeftClickEvent(Windo
 
				case WWT_TEXTBTN | WWB_PUSHBUTTON: /* WWT_PUSHTXTBTN */
 
					w->HandleButtonClick(widget);
 
					break;
 
			}
 
		} 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) {
 
			if (widget == 0) { /* 'X' */
 
				delete w;
 
				return;
src/window_gui.h
Show inline comments
 
@@ -474,13 +474,13 @@ enum WindowWidgetTypes {
 
	WWT_STICKYBOX,  ///< Sticky box (normally at top-right of a window)
 
	WWT_SCROLL2BAR, ///< 2nd vertical scrollbar
 
	WWT_RESIZEBOX,  ///< Resize box (normally at bottom-right of a window)
 
	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,
 

	
 
	WWT_PUSHBTN     = WWT_PANEL   | WWB_PUSHBUTTON,
 
	WWT_PUSHTXTBTN  = WWT_TEXTBTN | WWB_PUSHBUTTON,
0 comments (0 inline, 0 general)