cursor at EOL in input widget

Max Schedriviy max at tavrida.net
Sun Aug 19 16:59:39 UTC 2001


This patch move cursor in input fields to end of line and change color of 
this text if it will be disappear on typing.


ChangeLog:
---------------------------------
2001-08-19  Max Schedriviy  <max at tavrida.net>
	* color.[ch], main.c, text.c: Defined color for not changed text
	in WInput widget (INPUT_COLOR_NOTCH). Default color is gray on cyan.

	* wtools.c (quick_dialog_skip): Move cursor position on creation
	WInput widget to end of line. Set text color to INPUT_COLOR_NOTCH.
	
	* widget.c (handle_char): Set color to INPUT_COLOR if color is
	INPUT_COLOR_NOTCH.
---------------------------------


input_EOL.diff
---------------------------------
diff -Naur src/color.c src_new/color.c
--- src/color.c	Tue Jul 31 13:32:50 2001
+++ src_new/color.c	Sun Aug 19 17:46:31 2001
@@ -104,7 +104,7 @@
     { "core=",       0, 0 }, /* core files */              /* 29 */
 
     { 0,             0, 0 }, /* not usable (DEFAULT_COLOR_INDEX) *//* 30 */
-    { 0,             0, 0 }, /* unused */
+    { "inputnotch=", 0, 0 }, /* not changed input field */
     { 0,             0, 0 }, /* not usable (A_REVERSE) */
     { 0,             0, 0 }, /* not usable (A_REVERSE_BOLD) */
 
diff -Naur src/color.h src_new/color.h
--- src/color.h	Tue May 29 20:02:28 2001
+++ src_new/color.h	Sun Aug 19 17:44:36 2001
@@ -80,6 +80,7 @@
 /* For the default color any unused index may be chosen. */
 #define DEFAULT_COLOR_INDEX   30
 #define DEFAULT_COLOR  (PORT_COLOR (MY_COLOR_PAIR(DEFAULT_COLOR_INDEX),0))
+#define INPUT_COLOR_NOTCH (PORT_COLOR 
(MY_COLOR_PAIR(DEFAULT_COLOR_INDEX+1),0))
 
 /*
  * editor colors - only 3 for normal, search->found, and select, respectively
diff -Naur src/main.c src_new/main.c
--- src/main.c	Sat Aug 18 18:18:56 2001
+++ src_new/main.c	Sun Aug 19 19:00:46 2001
@@ -2551,7 +2551,7 @@
 	     "{FORE} and {BACK} can be ommited, and the default will be used\n"
 	     "\n"
 	     "Keywords:\n"
-	     "   Global:       errors, reverse, gauge, input\n"
+	     "   Global:       errors, reverse, gauge, input, inputnotch\n"
 	     "   File display: normal, selected, marked, markselect\n"
 	     "   Dialog boxes: dnormal, dfocus, dhotnormal, dhotfocus\n"
 	     "   Menus:        menu, menuhot, menusel, menuhotsel\n"
diff -Naur src/text.c src_new/text.c
--- src/text.c	Thu Jun 14 18:59:52 2001
+++ src_new/text.c	Sun Aug 19 17:40:28 2001
@@ -39,6 +39,7 @@
 "helpslink=yellow,blue:"
 "gauge=white,black:"
 "input=black,cyan:"
+"inputnotch=gray,cyan:"
 "directory=white,blue:"
 "executable=brightgreen,blue:"
 "link=lightgray,blue:"
diff -Naur src/widget.c src_new/widget.c
--- src/widget.c	Tue Jul 31 14:04:21 2001
+++ src_new/widget.c	Sun Aug 19 18:58:09 2001
@@ -1584,6 +1584,9 @@
 
     v = 0;
 
+    if (in->color == INPUT_COLOR_NOTCH)
+	in->color = INPUT_COLOR;
+
     if (quote){
     	free_completions (in);
 	v = insert_char (in, c_code);
diff -Naur src/wtools.c src_new/wtools.c
--- src/wtools.c	Wed Jun 20 20:12:47 2001
+++ src_new/wtools.c	Sun Aug 19 17:47:36 2001
@@ -476,10 +476,13 @@
 
 	    /* We use the hotkey pos as the field length */
 	case quick_input:
-	    input = input_new (ypos, xpos, INPUT_COLOR,
+	    input = input_new (ypos, xpos, INPUT_COLOR_NOTCH,
 			       qw->hotkey_pos, qw->text, qw->tkname);
 	    input->is_password = qw->value == 1;
-	    input->point = 0;
+	    if (qw->text)
+ 		input->point = strlen(qw->text);
+	    else
+ 		input->point = 0;
 	    if (qw->value & 2)
 	        input->completion_flags |= INPUT_COMPLETE_CD;
 	    widget = input;
---------------------------------

-- 
C U L8er!
Max Schedriviy                  mailto:max at tavrida.net




More information about the mc-devel mailing list