nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit 235ab192aff72b6a13ca68d8e493eda4c756a31a
parent 6b58acd377b41b69bd4eea8324f69f16131cae47
Author: Chris Allegretta <chrisa@asty.org>
Date:   Thu, 12 Apr 2001 13:24:40 +0000

Add yesno support to mouse


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@594 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

Diffstat:
MChangeLog | 4++--
Mwinio.c | 39+++++++++++++++++++++++++++++++++++++++
2 files changed, 41 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,8 +1,8 @@ Cvs code - - General - New global variables currshortcut and currslen to support using - the mouse with the shortcuts. FIXME - Does not support the - do_yesno function yet as that will have to be done by hand. + the mouse with the shortcuts. FIXME - Does not support clicking + on filenames in the browser, yet. nano 1.1 tree forked here 04/07/2001 diff --git a/winio.c b/winio.c @@ -1044,6 +1044,12 @@ int do_yesno(int all, int leavecursor, char *msg, ...) char *nostr; /* Same for no */ char *allstr; /* And all, surprise! */ char shortstr[5]; /* Temp string for above */ +#ifndef NANO_SMALL +#ifdef NCURSES_MOUSE_VERSION + MEVENT mevent; +#endif +#endif + /* Yes, no and all are strings of any length. Each string consists of all characters accepted as a valid character for that value. @@ -1091,6 +1097,39 @@ int do_yesno(int all, int leavecursor, char *msg, ...) kbinput = wgetch(edit); switch (kbinput) { +#ifndef NANO_SMALL +#ifdef NCURSES_MOUSE_VERSION + case KEY_MOUSE: + + /* Look ma! We get to duplicate lots of code from do_mouse!! */ + if (getmouse(&mevent) == ERR) + break; + if (!wenclose(bottomwin, mevent.y, mevent.x) || ISSET(NO_HELP)) + break; + mevent.y -= editwinrows + 3; + if (mevent.y < 0) + break; + else { + + /* Rather than a bunch of if statements, set up a matrix + of possible return keystrokes based on the x and y values */ + if (all) { + char yesnosquare[2][2] = { + {yesstr[0], allstr[0]}, + {nostr[0], NANO_CONTROL_C }}; + + ungetch(yesnosquare[mevent.y][mevent.x/(COLS/6)]); + } else { + char yesnosquare[2][2] = { + {yesstr[0], '\0'}, + {nostr[0], NANO_CONTROL_C }}; + + ungetch(yesnosquare[mevent.y][mevent.x/(COLS/6)]); + } + } + break; +#endif +#endif case NANO_CONTROL_C: ok = -2; break;