Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
Thomas E. Dickey (beginning revision 1.27 in 1996).
-$Id: ncurses.c,v 1.288 2007/05/12 23:04:11 tom Exp $
+$Id: ncurses.c,v 1.296 2007/12/29 21:05:43 tom Exp $
***************************************************************************/
winstack[level].frame = box_win;
}
+#if USE_SOFTKEYS && (NCURSES_VERSION_PATCH < 20071229)
+static void
+slk_repaint(void)
+{
+ /* this chunk is now done in resize_term() */
+ slk_touch();
+ slk_clear();
+ slk_noutrefresh();
+}
+
+#else
+#define slk_repaint() /* nothing */
+#endif
+
/*
* For wgetch_test(), we create pairs of windows - one for a box, one for text.
* Resize both and paint the box in the parent.
touchwin(stdscr);
wnoutrefresh(stdscr);
-#if USE_SOFTKEYS
- /* FIXME: this chunk should be done in resizeterm() */
- slk_touch();
- slk_clear();
- slk_noutrefresh();
-#endif
+ slk_repaint();
for (n = 0; n < level; ++n) {
wresize(winstack[n].frame, high, wide);
getch_test(void)
{
int delay = begin_getch_test();
+
+ slk_restore();
wgetch_test(0, stdscr, delay);
forget_boxes();
finish_getch_test();
#if USE_WIDEC_SUPPORT
/*
- * For wgetch_test(), we create pairs of windows - one for a box, one for text.
+ * For wget_wch_test(), we create pairs of windows - one for a box, one for text.
* Resize both and paint the box in the parent.
*/
#ifdef KEY_RESIZE
touchwin(stdscr);
wnoutrefresh(stdscr);
-#if USE_SOFTKEYS
- /* FIXME: this chunk should be done in resizeterm() */
- slk_touch();
- slk_clear();
- slk_noutrefresh();
-#endif
+ slk_repaint();
for (n = 0; n < level; ++n) {
wresize(winstack[n].frame, high, wide);
get_wch_test(void)
{
int delay = begin_getch_test();
+
+ slk_restore();
wget_wch_test(0, stdscr, delay);
forget_boxes();
finish_getch_test();
}
break;
#endif
+#if defined(NCURSES_VERSION) && defined(KEY_RESIZE) && HAVE_WRESIZE
+ case KEY_RESIZE:
+ break;
+#endif
default:
beep();
}
- } while
- ((c = Getchar()) != EOF);
+ } while (!isQuit(c = Getchar()));
done:
slk_clear();
call_slk_color(fg, bg);
}
break;
-
+#if defined(NCURSES_VERSION) && defined(KEY_RESIZE) && HAVE_WRESIZE
+ case KEY_RESIZE:
+ break;
+#endif
default:
beep();
}
- } while
- ((c = Getchar()) != EOF);
+ } while (!isQuit(c = Getchar()));
done:
slk_clear();
WINDOW *wind;
};
-#if defined(NCURSES_VERSION) && !NCURSES_OPAQUE
-#define keypad_active(win) (win)->_use_keypad
-#define scroll_active(win) (win)->_scroll
+#if defined(NCURSES_VERSION)
+#if NCURSES_VERSION_PATCH < 20070331
+#define is_keypad(win) (win)->_use_keypad
+#define is_scrollok(win) (win)->_scroll
+#endif
#else
-#define keypad_active(win) FALSE
-#define scroll_active(win) FALSE
+#define is_keypad(win) FALSE
+#define is_scrollok(win) FALSE
#endif
/* We need to know if these flags are actually set, so don't look in FRAME.
{
WINDOW *win = (curp ? curp->wind : stdscr);
(void) win;
- return keypad_active(win);
+ return is_keypad(win);
}
static bool
{
WINDOW *win = (curp ? curp->wind : stdscr);
(void) win;
- return scroll_active(win);
+ return is_scrollok(win);
}
static void
int finished = 0, c;
unsigned n = 0;
+#ifdef NCURSES_MOUSE_VERSION
+ mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
+#endif
+
move(18, 0);
addstr("Defined edit/traversal keys: ^Q/ESC- exit form\n");
addstr("^N -- go to next field ^P -- go to previous field\n");
free_fieldtype(fty_passwd);
noraw();
nl();
+
+#ifdef NCURSES_MOUSE_VERSION
+ mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
+#endif
}
#endif /* USE_LIBFORM */
wbkgd(win, A_REVERSE);
werase(win);
wmove(win, 0, 0);
- wprintw(win, "footer: %d columns", cols);
+ wprintw(win, "footer: window %p, %d columns", win, cols);
wnoutrefresh(win);
return OK;
}
wbkgd(win, A_REVERSE);
werase(win);
wmove(win, 0, 0);
- wprintw(win, "header: %d columns", cols);
+ wprintw(win, "header: window %p, %d columns", win, cols);
wnoutrefresh(win);
return OK;
}
setlocale(LC_ALL, "");
- while ((c = getopt(argc, argv, "a:de:fhmp:s:t:")) != EOF) {
+ while ((c = getopt(argc, argv, "a:de:fhmp:s:t:")) != -1) {
switch (c) {
#ifdef NCURSES_VERSION
case 'a':