|
OpenTTD
|
The On Screen Keyboard GUI. More...
#include "stdafx.h"#include "string_func.h"#include "strings_func.h"#include "debug.h"#include "window_func.h"#include "gfx_func.h"#include "querystring_gui.h"#include "video/video_driver.hpp"#include "widgets/osk_widget.h"#include "table/sprites.h"#include "table/strings.h"#include "safeguards.h"Go to the source code of this file.
Data Structures | |
| struct | OskWindow |
Enumerations | |
| enum | KeyStateBits { KEYS_NONE, KEYS_SHIFT, KEYS_CAPS } |
Functions | |
| static void | AddKey (NWidgetHorizontal *hor, int height, int num_half, WidgetType widtype, int widnum, uint16 widdata, int *biggest_index) |
| Add a key widget to a row of the keyboard. | |
| static NWidgetBase * | MakeTopKeys (int *biggest_index) |
| Construct the top row keys (cancel, ok, backspace). | |
| static NWidgetBase * | MakeNumberKeys (int *biggest_index) |
| Construct the row containing the digit keys. | |
| static NWidgetBase * | MakeQwertyKeys (int *biggest_index) |
| Construct the qwerty row keys. | |
| static NWidgetBase * | MakeAsdfgKeys (int *biggest_index) |
| Construct the asdfg row keys. | |
| static NWidgetBase * | MakeZxcvbKeys (int *biggest_index) |
| Construct the zxcvb row keys. | |
| static NWidgetBase * | MakeSpacebarKeys (int *biggest_index) |
| Construct the spacebar row keys. | |
| void | GetKeyboardLayout () |
| Retrieve keyboard layout from language string or (if set) config file. | |
| void | ShowOnScreenKeyboard (Window *parent, int button) |
| Show the on-screen keyboard (osk) associated with a given textbox. | |
| void | UpdateOSKOriginalText (const Window *parent, int button) |
| Updates the original text of the OSK so when the 'parent' changes the original and you press on cancel you won't get the 'old' original text but the updated one. | |
| bool | IsOSKOpenedFor (const Window *w, int button) |
| Check whether the OSK is opened for a specific editbox. | |
Variables | |
| char | _keyboard_opt [2][OSK_KEYBOARD_ENTRIES *4+1] |
| The number of characters has to be OSK_KEYBOARD_ENTRIES. | |
| static WChar | _keyboard [2][OSK_KEYBOARD_ENTRIES] |
| static byte | _keystate = KEYS_NONE |
| static const int | HALF_KEY_WIDTH = 7 |
| static const int | INTER_KEY_SPACE = 2 |
| static const NWidgetPart | _nested_osk_widgets [] |
| static WindowDesc | _osk_desc (WDP_CENTER,"query_osk", 0, 0, WC_OSK, WC_NONE, 0, _nested_osk_widgets, lengthof(_nested_osk_widgets)) |
The On Screen Keyboard GUI.
Definition in file osk_gui.cpp.
|
static |
Add a key widget to a row of the keyboard.
| hor | Row container to add key widget to. |
| height | Height of the key (all keys in a row should have equal height). |
| num_half | Number of 1/2 key widths that this key has. |
| widtype | Widget type of the key. Must be either NWID_SPACER for an invisible key, or a WWT_* widget. |
| widnum | Widget number of the key. |
| widdata | Data value of the key widget. |
| biggest_index | Collected biggest widget index so far. |
Definition at line 230 of file osk_gui.cpp.
References NWidgetContainer::Add(), NWidgetContainer::IsEmpty(), max(), NWID_SPACER, and NWidgetResizeBase::SetMinimalSize().
Referenced by MakeAsdfgKeys(), MakeNumberKeys(), MakeQwertyKeys(), MakeSpacebarKeys(), MakeTopKeys(), and MakeZxcvbKeys().
| void GetKeyboardLayout | ( | ) |
Retrieve keyboard layout from language string or (if set) config file.
Also check for invalid characters.
Definition at line 357 of file osk_gui.cpp.
References _keyboard_opt, lastof, OSK_KEYBOARD_ENTRIES, ShowInfoF(), strecpy(), and StrEmpty().
Referenced by ShowOnScreenKeyboard().
| bool IsOSKOpenedFor | ( | const Window * | w, |
| int | button | ||
| ) |
Check whether the OSK is opened for a specific editbox.
w Window to check for
| button | Editbox of w to check for |
Definition at line 444 of file osk_gui.cpp.
References FindWindowById(), Window::parent, OskWindow::text_btn, and WC_OSK.
|
static |
Construct the asdfg row keys.
Definition at line 290 of file osk_gui.cpp.
References AddKey(), FONT_HEIGHT_NORMAL, WID_OSK_ASDFG_FIRST, WID_OSK_ASDFG_LAST, WID_OSK_CAPS, WWT_IMGBTN, and WWT_PUSHBTN.
|
static |
Construct the row containing the digit keys.
Definition at line 264 of file osk_gui.cpp.
References AddKey(), FONT_HEIGHT_NORMAL, WID_OSK_NUMBERS_FIRST, WID_OSK_NUMBERS_LAST, and WWT_PUSHBTN.
|
static |
Construct the qwerty row keys.
Definition at line 276 of file osk_gui.cpp.
References AddKey(), FONT_HEIGHT_NORMAL, NWID_SPACER, WID_OSK_QWERTY_FIRST, WID_OSK_QWERTY_LAST, WID_OSK_SPECIAL, WWT_PUSHBTN, and WWT_PUSHIMGBTN.
|
static |
Construct the spacebar row keys.
Definition at line 317 of file osk_gui.cpp.
References AddKey(), FONT_HEIGHT_NORMAL, NWID_SPACER, WID_OSK_LEFT, WID_OSK_RIGHT, WID_OSK_SPACE, WWT_PUSHIMGBTN, and WWT_PUSHTXTBTN.
|
static |
Construct the top row keys (cancel, ok, backspace).
Definition at line 252 of file osk_gui.cpp.
References AddKey(), FONT_HEIGHT_NORMAL, WID_OSK_BACKSPACE, WID_OSK_CANCEL, WID_OSK_OK, WWT_PUSHIMGBTN, and WWT_TEXTBTN.
|
static |
Construct the zxcvb row keys.
Definition at line 303 of file osk_gui.cpp.
References AddKey(), FONT_HEIGHT_NORMAL, NWID_SPACER, WID_OSK_SHIFT, WID_OSK_ZXCVB_FIRST, WID_OSK_ZXCVB_LAST, WWT_IMGBTN, and WWT_PUSHBTN.
| void ShowOnScreenKeyboard | ( | Window * | parent, |
| int | button | ||
| ) |
Show the on-screen keyboard (osk) associated with a given textbox.
| parent | pointer to the Window where this keyboard originated from |
| button | widget number of parent's textbox |
Definition at line 412 of file osk_gui.cpp.
References DeleteWindowById(), GetKeyboardLayout(), and WC_OSK.
| void UpdateOSKOriginalText | ( | const Window * | parent, |
| int | button | ||
| ) |
Updates the original text of the OSK so when the 'parent' changes the original and you press on cancel you won't get the 'old' original text but the updated one.
| parent | window that just updated its orignal text |
| button | widget number of parent's textbox to update |
Definition at line 427 of file osk_gui.cpp.
References Textbuf::buf, FindWindowById(), free(), OskWindow::orig_str_buf, Window::parent, OskWindow::qs, Window::SetDirty(), stredup(), OskWindow::text_btn, and WC_OSK.
| char _keyboard_opt[2][OSK_KEYBOARD_ENTRIES *4+1] |
The number of characters has to be OSK_KEYBOARD_ENTRIES.
However, these have to be UTF-8 encoded, which means up to 4 bytes per character. Furthermore the string needs to be '\0'-terminated.
Definition at line 28 of file osk_gui.cpp.
Referenced by GetKeyboardLayout().
|
static |
Definition at line 331 of file osk_gui.cpp.
1.8.1.2