X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=test%2Ftestcurs.c;h=c1268981e051203c0b930011d31a92c753905402;hp=06d70d8430956e0e5db178cdf0920d16c5a1e1a4;hb=73ab536b636227eed291dad213ca88c93d422fb8;hpb=5ae2721913c0d2adde0d65063e37a723bf8a0987 diff --git a/test/testcurs.c b/test/testcurs.c index 06d70d84..c1268981 100644 --- a/test/testcurs.c +++ b/test/testcurs.c @@ -6,7 +6,7 @@ * wrs(5/28/93) -- modified to be consistent (perform identically) with either * PDCurses or under Unix System V, R4 * - * $Id: testcurs.c,v 1.45 2012/11/03 19:27:18 tom Exp $ + * $Id: testcurs.c,v 1.48 2013/05/18 22:05:06 tom Exp $ */ #include @@ -341,6 +341,9 @@ inputTest(WINDOW *win) typeahead(-1); #endif +#ifdef NCURSES_MOUSE_VERSION + mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0); +#endif #if defined(PDCURSES) mouse_set(ALL_MOUSE_EVENTS); #endif @@ -355,8 +358,38 @@ inputTest(WINDOW *win) wprintw(win, "Key Pressed: %c", c); else wprintw(win, "Key Pressed: %s", unctrl(UChar(c))); -#if defined(PDCURSES) +#ifdef KEY_MOUSE if (c == KEY_MOUSE) { +#if defined(NCURSES_MOUSE_VERSION) +#define ButtonChanged(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, 037)) +#define ButtonPressed(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED)) +#define ButtonDouble(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED)) +#define ButtonTriple(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED)) +#define ButtonRelease(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED)) + MEVENT event; + int button = 0; + + getmouse(&event); + if (ButtonChanged(1)) + button = 1; + else if (ButtonChanged(2)) + button = 2; + else if (ButtonChanged(3)) + button = 3; + else + button = 0; + wmove(win, 4, 18); + wprintw(win, "Button %d: ", button); + if (ButtonPressed(button)) + wprintw(win, "pressed: "); + else if (ButtonDouble(button)) + wprintw(win, "double: "); + else if (ButtonTriple(button)) + wprintw(win, "triple: "); + else + wprintw(win, "released: "); + wprintw(win, " Position: Y: %d X: %d", event.y, event.x); +#elif defined(PDCURSES) int button = 0; request_mouse_pos(); if (BUTTON_CHANGED(1)) @@ -378,8 +411,9 @@ inputTest(WINDOW *win) else wprintw(win, "released: "); wprintw(win, " Position: Y: %d X: %d", MOUSE_Y_POS, MOUSE_X_POS); +#endif /* NCURSES_VERSION vs PDCURSES */ } -#endif +#endif /* KEY_MOUSE */ wrefresh(win); if (c == ' ') break; @@ -681,9 +715,11 @@ padTest(WINDOW *dummy GCC_UNUSED) raw(); wgetch(pad); - spad = subpad(pad, 12, 25, 6, 52); - MvWAddStr(spad, 2, 2, "This is a new subpad"); - box(spad, 0, 0); + if ((spad = subpad(pad, 12, 25, 6, 52)) != 0) { + MvWAddStr(spad, 2, 2, "This is a new subpad"); + box(spad, 0, 0); + delwin(spad); + } prefresh(pad, 0, 0, 0, 0, 15, 75); keypad(pad, TRUE); raw();