changeset 1879:4e5cb90acb42 draft

(svn r2385) - Feature: shortcut CTRL + U that clears the commandline of the current input-box. As requested by Tron.
author Darkvater <Darkvater@openttd.org>
date Mon, 30 May 2005 16:03:21 +0000
parents ec266a8f43ef
children 28674b7af97f
files console.c gui.h misc_gui.c
diffstat 3 files changed, 21 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/console.c
+++ b/console.c
@@ -151,9 +151,13 @@
 						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();
--- a/gui.h
+++ b/gui.h
@@ -108,6 +108,7 @@
 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);
--- a/misc_gui.c
+++ b/misc_gui.c
@@ -784,6 +784,17 @@
 }
 
 /**
+ * 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 @@
 		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);