Patch by Matt Ebb: upgraded usablitiy of text button.
Textbuttons now allow a selection too (like any textbutton in other UIs). By default, on activating a textbutton, the entire button text is selected when you enter the button. A single arrowkey or LMB click reveils the cursor then. Here's more user notes: LMB click: If inside the button, places the text cursor at the clicked position. If outside the button, confirms/finishes editing LMB drag: Selects the text between the start and end point of the drag. Backspace: Deletes selected text, or backspaces a character Shift Backspace: Deletes all, as before. Delete: Deletes selected text or forward deletes a character Shift LeftArrow: Extends the selection left Shift RightArrow: Extends the selection right LeftArrow: If there's a selection, move the cursor to the left edge of the selection, otherwise move the cursor left a character. RightArrow: If there's a selection, move the cursor to the right edge of the selection, otherwise move the cursor right a character. UpArrow/Home: Move the cursor to the beginning of the line DownArrow/End: Move the cursor to the end of the line Ctrl Left arrow and Ctrl Right arrow to jump between directory separators
This commit is contained in:
@@ -63,7 +63,11 @@
|
||||
#define PNL_TABBED 8
|
||||
#define PNL_OVERLAP 16
|
||||
|
||||
|
||||
/* Button text selection:
|
||||
* extension direction, selextend, inside ui_do_but_TEX */
|
||||
#define EXTEND_LEFT 1
|
||||
#define EXTEND_RIGHT 2
|
||||
#define SELWIDTH (but->selend - but->selsta)
|
||||
|
||||
typedef struct {
|
||||
short xim, yim;
|
||||
@@ -103,7 +107,7 @@ typedef struct {
|
||||
|
||||
struct uiBut {
|
||||
uiBut *next, *prev;
|
||||
short type, pointype, bit, bitnr, retval, strwidth, ofs, pos;
|
||||
short type, pointype, bit, bitnr, retval, strwidth, ofs, pos, selsta, selend;
|
||||
int flag;
|
||||
|
||||
char *str;
|
||||
|
||||
Reference in New Issue
Block a user