textbuf_gui.h File Reference

Stuff related to the text buffer GUI. More...

#include "window_type.h"
#include "string_type.h"
#include "strings_type.h"
#include "core/enum_type.hpp"

Go to the source code of this file.

Data Structures

struct  Textbuf
 Helper/buffer for input fields. More...

Typedefs

typedef void QueryCallbackProc (Window *, bool)

Enumerations

enum  QueryStringFlags { QSF_NONE = 0, QSF_ACCEPT_UNCHANGED = 0x01, QSF_ENABLE_DEFAULT = 0x02, QSF_LEN_IN_CHARS = 0x04 }
 

Flags used in ShowQueryString() call.

More...

Functions

bool HandleCaret (Textbuf *tb)
void DeleteTextBufferAll (Textbuf *tb)
 Delete every character in the textbuffer.
bool DeleteTextBufferChar (Textbuf *tb, int delmode)
 Delete a character from a textbuffer, either with 'Delete' or 'Backspace' The character is delete from the position the caret is at.
bool InsertTextBufferChar (Textbuf *tb, uint32 key)
bool InsertTextBufferClipboard (Textbuf *tb)
 Insert a chunk of text from the clipboard onto the textbuffer.
bool MoveTextBufferPos (Textbuf *tb, int navmode)
 Handle text navigation with arrow keys left/right.
void InitializeTextBuffer (Textbuf *tb, char *buf, uint16 max_bytes, uint16 max_pixels)
 Initialize the textbuffer by supplying it the buffer to write into and the maximum length of this buffer.
void InitializeTextBuffer (Textbuf *tb, char *buf, uint16 max_bytes, uint16 max_chars, uint16 max_pixels)
 Initialize the textbuffer by supplying it the buffer to write into and the maximum length of this buffer.
void UpdateTextBufferSize (Textbuf *tb)
 Update Textbuf type with its actual physical character and screenlength Get the count of characters in the string as well as the width in pixels.
void ShowQueryString (StringID str, StringID caption, uint max_len, uint max_pixels, Window *parent, CharSetFilter afilter, QueryStringFlags flags)
 Show a query popup window with a textbox in it.
void ShowQuery (StringID caption, StringID message, Window *w, QueryCallbackProc *callback)
 Show a modal confirmation window with standard 'yes' and 'no' buttons The window is aligned to the centre of its parent.

Variables

static const uint OSK_KEYBOARD_ENTRIES = 50
 The number of 'characters' on the on-screen keyboard.
char _keyboard_opt [2][OSK_KEYBOARD_ENTRIES *4+1]
 The number of characters has to be OSK_KEYBOARD_ENTRIES.

Detailed Description

Stuff related to the text buffer GUI.

Definition in file textbuf_gui.h.


Enumeration Type Documentation

Flags used in ShowQueryString() call.

Enumerator:
QSF_ACCEPT_UNCHANGED 

return success even when the text didn't change

QSF_ENABLE_DEFAULT 

enable the 'Default' button ("\0" is returned)

QSF_LEN_IN_CHARS 

the length of the string is counted in characters

Definition at line 46 of file textbuf_gui.h.


Function Documentation

void DeleteTextBufferAll ( Textbuf tb  ) 

Delete every character in the textbuffer.

Parameters:
tb Textbuf buffer to be emptied

Definition at line 1025 of file misc_gui.cpp.

References Textbuf::buf, Textbuf::bytes, Textbuf::caretpos, Textbuf::caretxoffs, Textbuf::chars, Textbuf::max_bytes, and Textbuf::pixels.

Referenced by IConsoleWindow::OnKeyPress().

bool DeleteTextBufferChar ( Textbuf tb,
int  delmode 
)

Delete a character from a textbuffer, either with 'Delete' or 'Backspace' The character is delete from the position the caret is at.

Parameters:
tb Textbuf type to be changed
delmode Type of deletion, either WKC_BACKSPACE or WKC_DELETE
Returns:
Return true on successful change of Textbuf, or false otherwise

Definition at line 1008 of file misc_gui.cpp.

References Textbuf::bytes, and Textbuf::caretpos.

Referenced by OskWindow::OnClick(), and IConsoleWindow::OnKeyPress().

void InitializeTextBuffer ( Textbuf tb,
char *  buf,
uint16  max_bytes,
uint16  max_chars,
uint16  max_pixels 
)

Initialize the textbuffer by supplying it the buffer to write into and the maximum length of this buffer.

Parameters:
tb Textbuf type which is getting initialized
buf the buffer that will be holding the data for input
max_bytes maximum size in bytes, including terminating ''
max_chars maximum size in chars, including terminating ''
max_pixels maximum length in pixels of this buffer. If reached, buffer cannot grow, even if maxsize would allow because there is space. Width of zero '0' means the buffer is only restricted by maxsize

Definition at line 1181 of file misc_gui.cpp.

References Textbuf::buf, Textbuf::caret, Textbuf::max_bytes, Textbuf::max_chars, Textbuf::max_pixels, and UpdateTextBufferSize().

void InitializeTextBuffer ( Textbuf tb,
char *  buf,
uint16  max_bytes,
uint16  max_pixels 
)

Initialize the textbuffer by supplying it the buffer to write into and the maximum length of this buffer.

Parameters:
tb Textbuf type which is getting initialized
buf the buffer that will be holding the data for input
max_bytes maximum size in bytes, including terminating ''
max_pixels maximum length in pixels of this buffer. If reached, buffer cannot grow, even if maxsize would allow because there is space. Width of zero '0' means the buffer is only restricted by maxsize

Definition at line 1165 of file misc_gui.cpp.

References InitializeTextBuffer().

Referenced by InitializeTextBuffer(), and NetworkContentListWindow::NetworkContentListWindow().

bool InsertTextBufferClipboard ( Textbuf tb  ) 

Insert a chunk of text from the clipboard onto the textbuffer.

Get TEXT clipboard and append this up to the maximum length (either absolute or screenlength). If maxlength is zero, we don't care about the screenlength but only about the physical length of the string

Parameters:
tb Textbuf type to be changed
Returns:
true on successful change of Textbuf, or false otherwise

Definition at line 1065 of file misc_gui.cpp.

References Textbuf::buf, Textbuf::bytes, Textbuf::caretpos, Textbuf::caretxoffs, Textbuf::chars, FS_NORMAL, GetCharacterWidth(), GetClipboardContents(), lengthof, Textbuf::max_bytes, Textbuf::max_chars, Textbuf::max_pixels, Textbuf::pixels, and Utf8CharLen().

Referenced by IConsoleWindow::OnKeyPress().

bool MoveTextBufferPos ( Textbuf tb,
int  navmode 
)

Handle text navigation with arrow keys left/right.

This defines where the caret will blink and the next characer interaction will occur

Parameters:
tb Textbuf type where navigation occurs
navmode Direction in which navigation occurs WKC_LEFT, WKC_RIGHT, WKC_END, WKC_HOME
Returns:
Return true on successful change of Textbuf, or false otherwise

Definition at line 1112 of file misc_gui.cpp.

References Textbuf::buf, Textbuf::bytes, Textbuf::caretpos, Textbuf::caretxoffs, FS_NORMAL, GetCharacterWidth(), Textbuf::pixels, Utf8Decode(), and Utf8PrevChar().

Referenced by OskWindow::OnClick(), and IConsoleWindow::OnKeyPress().

void ShowQuery ( StringID  caption,
StringID  message,
Window parent,
QueryCallbackProc *  callback 
)

Show a modal confirmation window with standard 'yes' and 'no' buttons The window is aligned to the centre of its parent.

Parameters:
caption string shown as window caption
message string that will be shown for the window
parent pointer to parent window, if this pointer is NULL the parent becomes the main window WC_MAIN_WINDOW
callback callback function pointer to set in the window descriptor

Definition at line 1663 of file misc_gui.cpp.

References FindWindowById(), Window::parent, QueryWindow::proc, and Window::window_class.

Referenced by CmdPause(), ScenarioEditorLandscapeGenerationWindow::OnClick(), NewGRFWindow::OnClick(), GenerateProgressWindow::OnClick(), GenerateLandscapeWindow::OnClick(), and DepotWindow::OnClick().

void ShowQueryString ( StringID  str,
StringID  caption,
uint  maxsize,
uint  maxwidth,
Window parent,
CharSetFilter  afilter,
QueryStringFlags  flags 
)

Show a query popup window with a textbox in it.

Parameters:
str StringID for the text shown in the textbox
caption StringID of text shown in caption of querywindow
maxsize maximum size in bytes or characters (including terminating '') depending on flags
maxwidth maximum width in pixels allowed
parent pointer to a Window that will handle the events (ok/cancel) of this window. If NULL, results are handled by global function HandleOnEditText
afilter filters out unwanted character input
flags various flags,
See also:
QueryStringFlags

Definition at line 1516 of file misc_gui.cpp.

References DeleteWindowById(), MAX_CHAR_LENGTH, and QSF_LEN_IN_CHARS.

Referenced by WaypointWindow::OnClick(), VehicleDetailsWindow::OnClick(), TownViewWindow::OnClick(), TimetableWindow::OnClick(), StationViewWindow::OnClick(), CustomCurrencyWindow::OnClick(), GameSettingsWindow::OnClick(), OrdersWindow::OnClick(), NewGRFWindow::OnClick(), NewGRFParametersWindow::OnClick(), SpriteAlignerWindow::OnClick(), NetworkStartServerWindow::OnClick(), NetworkGameWindow::OnClick(), IndustryViewWindow::OnClick(), CreateScenarioWindow::OnClick(), GenerateLandscapeWindow::OnClick(), DepotWindow::OnClick(), CompanyWindow::OnClick(), SelectCompanyManagerFaceWindow::OnClick(), CheatWindow::OnClick(), BuildVehicleWindow::OnClick(), AISettingsWindow::OnClick(), GenerateLandscapeWindow::OnDropdownSelect(), and ToolbarScenDatePanel().

void UpdateTextBufferSize ( Textbuf tb  ) 

Update Textbuf type with its actual physical character and screenlength Get the count of characters in the string as well as the width in pixels.

Useful when copying in a larger amount of text at once

Parameters:
tb Textbuf type which length is calculated

Definition at line 1200 of file misc_gui.cpp.

References Textbuf::buf, Textbuf::bytes, Textbuf::caretpos, Textbuf::caretxoffs, Textbuf::chars, FS_NORMAL, GetCharacterWidth(), Textbuf::max_bytes, Textbuf::max_chars, Textbuf::pixels, and Utf8CharLen().

Referenced by NetworkChatWindow::ChatTabCompletion(), SignListWindow::ClearFilterTextWidget(), IConsoleHistoryNavigate(), InitializeTextBuffer(), OskWindow::OnClick(), GenerateLandscapeWindow::OnClick(), SaveLoadWindow::OnClick(), and SaveLoadWindow::OnTimeout().


Variable Documentation

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 ''-terminated.

Definition at line 51 of file osk_gui.cpp.

Referenced by GetKeyboardLayout().

const uint OSK_KEYBOARD_ENTRIES = 50 [static]

The number of 'characters' on the on-screen keyboard.

Definition at line 62 of file textbuf_gui.h.

Referenced by GetKeyboardLayout(), and OskWindow::UpdateOskState().


Generated on Fri Mar 18 23:18:03 2011 for OpenTTD by  doxygen 1.6.1