+/****************************************************************************
+ * Copyright (c) 2003-2007,2008 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+ * "Software"), to deal in the Software without restriction, including *
+ * without limitation the rights to use, copy, modify, merge, publish, *
+ * distribute, distribute with modifications, sublicense, and/or sell *
+ * copies of the Software, and to permit persons to whom the Software is *
+ * furnished to do so, subject to the following conditions: *
+ * *
+ * The above copyright notice and this permission notice shall be included *
+ * in all copies or substantial portions of the Software. *
+ * *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
+ * *
+ * Except as contained in this notice, the name(s) of the above copyright *
+ * holders shall not be used in advertising or otherwise to promote the *
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************/
/*
- * $Id: demo_forms.c,v 1.18 2005/10/08 21:54:20 tom Exp $
+ * $Id: demo_forms.c,v 1.26 2008/08/23 23:22:55 tom Exp $
*
* Demonstrate a variety of functions from the form library.
* Thomas Dickey - 2003/4/26
*/
/*
-TYPE_ALNUM -
TYPE_ENUM -
TYPE_REGEXP -
dup_field -
{
WINDOW *w;
FORM *form;
- FIELD *f[100];
+ FIELD *f[100]; /* FIXME memset to zero */
int finished = 0, c;
unsigned n = 0;
int pg;
WINDOW *also;
+#ifdef NCURSES_MOUSE_VERSION
+ mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
+#endif
+
help_edit_field();
mvaddstr(4, 57, "Forms Entry Test");
refresh();
/* describe the form */
+ memset(f, 0, sizeof(f));
for (pg = 0; pg < 4; ++pg) {
char label[80];
sprintf(label, "Sample Form Page %d", pg + 1);
f[n++] = make_field(3, 34, 1, 12);
set_field_type(f[n - 1], TYPE_ALPHA, 1);
break;
+ case 1:
+ f[n++] = make_label(2, 0, "Last Name");
+ f[n++] = make_field(3, 0, 1, 18);
+ set_field_type(f[n - 1], TYPE_ALPHA, 1);
+
+ f[n++] = make_label(2, 20, "First Name");
+ f[n++] = make_field(3, 20, 1, 12);
+ set_field_type(f[n - 1], TYPE_ALPHA, 1);
+
+ f[n++] = make_label(2, 34, "MI");
+ f[n++] = make_field(3, 34, 1, 1);
+ set_field_type(f[n - 1], TYPE_ALPHA, 1);
+ break;
case 2:
f[n++] = make_label(2, 0, "Host Name");
f[n++] = make_field(3, 0, 1, 18);
- set_field_type(f[n - 1], TYPE_ALPHA, 1);
+ set_field_type(f[n - 1], TYPE_ALNUM, 1);
#ifdef NCURSES_VERSION
f[n++] = make_label(2, 20, "IP Address");
f[n++] = (FIELD *) 0;
- form = new_form(f);
+ if ((form = new_form(f)) != 0) {
- display_form(form);
+ display_form(form);
- w = form_win(form);
- also = newwin(getmaxy(stdscr) - getmaxy(w), COLS, getmaxy(w), 0);
- show_current_field(also, form);
+ w = form_win(form);
+ also = newwin(getmaxy(stdscr) - getmaxy(w), COLS, getmaxy(w), 0);
+ show_current_field(also, form);
- while (!finished) {
- switch (edit_field(form, &c)) {
- case E_OK:
- break;
- case E_UNKNOWN_COMMAND:
- finished = my_form_driver(form, c);
- break;
- default:
- beep();
- break;
+ while (!finished) {
+ switch (edit_field(form, &c)) {
+ case E_OK:
+ break;
+ case E_UNKNOWN_COMMAND:
+ finished = my_form_driver(form, c);
+ break;
+ default:
+ beep();
+ break;
+ }
+ show_current_field(also, form);
}
- show_current_field(also, form);
- }
- erase_form(form);
+ erase_form(form);
- free_form(form);
+ free_form(form);
+ }
for (c = 0; f[c] != 0; c++)
free_field(f[c]);
noraw();
nl();
+
+#ifdef NCURSES_MOUSE_VERSION
+ mousemask(0, (mmask_t *) 0);
+#endif
}
static void
setlocale(LC_ALL, "");
- while ((ch = getopt(argc, argv, "dj:m:o:t:")) != EOF) {
+ while ((ch = getopt(argc, argv, "dj:m:o:t:")) != -1) {
switch (ch) {
case 'd':
d_option = TRUE;