diff options
author | Darkvater <Darkvater@openttd.org> | 2005-05-30 16:03:21 +0000 |
---|---|---|
committer | Darkvater <Darkvater@openttd.org> | 2005-05-30 16:03:21 +0000 |
commit | 53b1de7d70c92d78d3ef5d5d6021bea0bfe39073 (patch) | |
tree | b3abbef3ec0c78027bf6b01ef5ca1b7b224c77fe | |
parent | 2d355e0826fc32e9b40a1b0d9b623362b9ea45f5 (diff) | |
download | openttd-53b1de7d70c92d78d3ef5d5d6021bea0bfe39073.tar.xz |
(svn r2385) - Feature: shortcut CTRL + U that clears the commandline of the current input-box. As requested by Tron.
-rw-r--r-- | console.c | 6 | ||||
-rw-r--r-- | gui.h | 1 | ||||
-rw-r--r-- | misc_gui.c | 15 |
3 files changed, 21 insertions, 1 deletions
@@ -151,9 +151,13 @@ static void IConsoleWndProc(Window* w, WindowEvent* e) SetWindowDirty(w); } break; - case (WKC_CTRL | 'L'): + case (WKC_CTRL | 'L'): IConsoleCmdExec("clear"); break; + case (WKC_CTRL | 'U'): + DeleteTextBufferAll(&_iconsole_cmdline); + SetWindowDirty(w); + break; case WKC_BACKSPACE: case WKC_DELETE: if (DeleteTextBufferChar(&_iconsole_cmdline, e->keypress.keycode)) { IConsoleResetHistoryPos(); @@ -108,6 +108,7 @@ void HandleEditBox(Window *w, int wid); int HandleEditBoxKey(Window *w, int wid, WindowEvent *we); bool HandleCaret(Textbuf *tb); +void DeleteTextBufferAll(Textbuf *tb); bool DeleteTextBufferChar(Textbuf *tb, int delmode); bool InsertTextBufferChar(Textbuf *tb, byte key); bool InsertTextBufferClipboard(Textbuf *tb); diff --git a/misc_gui.c b/misc_gui.c index 37d7c2509..63fb1b6ef 100644 --- a/misc_gui.c +++ b/misc_gui.c @@ -784,6 +784,17 @@ bool DeleteTextBufferChar(Textbuf *tb, int delmode) } /** + * Delete every character in the textbuffer + * @param tb @Textbuf buffer to be emptied + */ +void DeleteTextBufferAll(Textbuf *tb) +{ + memset(tb->buf, 0, tb->maxlength); + tb->length = tb->width = 0; + tb->caretpos = tb->caretxoffs = 0; +} + +/** * Insert a character to a textbuffer. If maxlength is zero, we don't care about * the screenlength but only about the physical length of the string * @param tb @Textbuf type to be changed @@ -875,6 +886,10 @@ int HandleEditBoxKey(Window *w, int wid, WindowEvent *we) if (InsertTextBufferClipboard(&WP(w, querystr_d).text)) InvalidateWidget(w, wid); break; + case (WKC_CTRL | 'U'): + DeleteTextBufferAll(&WP(w, querystr_d).text); + InvalidateWidget(w, wid); + break; case WKC_BACKSPACE: case WKC_DELETE: if (DeleteTextBufferChar(&WP(w, querystr_d).text, we->keypress.keycode)) InvalidateWidget(w, wid); |