summaryrefslogtreecommitdiff
path: root/window.h
diff options
context:
space:
mode:
authorDarkvater <darkvater@openttd.org>2005-02-21 18:59:54 +0000
committerDarkvater <darkvater@openttd.org>2005-02-21 18:59:54 +0000
commitd865c55007321366d49b9b3d49eb0d61715dfc98 (patch)
treeac473756965e88790f53e13ff4589035499ce9c1 /window.h
parent0d8dcacee2dbd1ae639f8851a2847b3806c7da16 (diff)
downloadopenttd-d865c55007321366d49b9b3d49eb0d61715dfc98.tar.xz
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
- Codechange: Introduction of Textbuf struct which not only holds physical data as length but also pixel-constrains (width) and information about the caret - Codechange: Move Clipboard function to OS specific file. Currently only Windows has clipboard actions - Feature: Editboxes, console and exit screen also accept the numeric-enter as a yes - Feature: Navigation through text with cursor keys is possible, as well as arbitrary insertion (also paste) and deletion; both backspace and del keys. Functions DeleteTextBufferChar, InsertTextBufferChar and InsertTextBufferClipboard handle input and deletion. Navigation is done through MoveTextBufferPos. - Fix: OTTD crash when opening 'add server' editbox - CodeChange: fix up some stringwidth calculations in gfx.c. You can get the width in pixels of a character by calling GetCharacterWidth().
Diffstat (limited to 'window.h')
-rw-r--r--window.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/window.h b/window.h
index 59b91897a..8259b2852 100644
--- a/window.h
+++ b/window.h
@@ -222,13 +222,20 @@ enum {
WDP_CENTER = -2,
};
+typedef struct Textbuf {
+ char *buf; /* buffer in which text is saved */
+ uint16 maxlength, maxwidth; /* the maximum size of the buffer. Maxwidth specifies screensize in pixels */
+ uint16 length, width; /* the current size of the buffer. Width specifies screensize in pixels */
+ bool caret; /* is the caret ("_") visible or not */
+ uint16 caretpos; /* the current position of the caret in the buffer */
+ uint16 caretxoffs; /* the current position of the caret in pixels */
+} Textbuf;
+
typedef struct {
StringID caption;
- bool caret;
WindowClass wnd_class;
WindowNumber wnd_num;
- uint16 maxlen, maxwidth;
- char *buf;
+ Textbuf text;
const char* orig;
} querystr_d;