/****************************************************************************
- * Copyright (c) 2003-2007,2008 Free Software Foundation, Inc. *
+ * Copyright (c) 2003-2011,2012 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 *
* authorization. *
****************************************************************************/
/*
- * $Id: demo_forms.c,v 1.30 2008/10/18 20:38:20 tom Exp $
+ * $Id: demo_forms.c,v 1.40 2012/11/18 01:22:44 tom Exp $
*
* Demonstrate a variety of functions from the form library.
* Thomas Dickey - 2003/4/26
if (f) {
set_field_buffer(f, 0, label);
- set_field_opts(f, (int) (field_opts(f) & ~O_ACTIVE));
+ set_field_opts(f, (int) ((unsigned) field_opts(f) & ~O_ACTIVE));
}
return (f);
}
FIELD *f = new_field(rows, cols, frow, fcol, o_value, 1);
if (f) {
+ FieldAttrs *ptr;
+
set_field_back(f, A_UNDERLINE);
/*
* If -j and -d options are combined, -j loses. It is documented in
set_field_just(f, j_value);
if (d_option) {
if (has_colors()) {
- set_field_fore(f, COLOR_PAIR(2));
+ set_field_fore(f, (chtype) COLOR_PAIR(2));
set_field_back(f, A_UNDERLINE | COLOR_PAIR(3));
} else {
set_field_fore(f, A_BOLD);
/*
* The userptr is used in edit_field.c's inactive_field().
*/
- set_field_userptr(f, (void *) (long) field_back(f));
+ ptr = (FieldAttrs *) field_userptr(f);
+ if (ptr == 0) {
+ ptr = typeCalloc(FieldAttrs, 1);
+ ptr->background = field_back(f);
+ }
+ set_field_userptr(f, (void *) ptr);
if (t_value)
set_field_buffer(f, 0, t_value);
}
set_form_sub(f, derwin(w, rows, cols, 1, 2));
box(w, 0, 0);
keypad(w, TRUE);
- }
- if (post_form(f) != E_OK)
- wrefresh(w);
+ if (post_form(f) != E_OK)
+ wrefresh(w);
+ }
}
static void
static void
show_insert_mode(bool insert_mode)
{
- mvaddstr(5, 57, (insert_mode
+ MvAddStr(5, 57, (insert_mode
? "form_status: insert "
: "form_status: overlay"));
}
case MY_EDT_MODE:
if ((field = current_field(form)) != 0) {
set_current_field(form, another_field(form, field));
- if (field_opts(field) & O_EDIT) {
+ if ((unsigned) field_opts(field) & O_EDIT) {
field_opts_off(field, O_EDIT);
set_field_status(field, 0);
} else {
char *buffer;
int nbuf;
int field_rows, field_cols, field_max;
+ int currow, curcol;
if (has_colors()) {
- wbkgd(win, COLOR_PAIR(1));
+ wbkgd(win, (chtype) COLOR_PAIR(1));
}
werase(win);
- wprintw(win, "Cursor: %d,%d", form->currow, form->curcol);
+ form_getyx(form, currow, curcol);
+ wprintw(win, "Cursor: %d,%d", currow, curcol);
if (data_ahead(form))
waddstr(win, " ahead");
if (data_behind(form))
waddstr(win, "other");
}
- if (field_opts(field) & O_EDIT)
+ if ((unsigned) field_opts(field) & O_EDIT)
waddstr(win, " editable");
else
waddstr(win, " readonly");
}
waddch(win, ' ');
- wattrset(win, field_fore(field));
+ (void) wattrset(win, (int) field_fore(field));
waddstr(win, "fore");
- wattroff(win, field_fore(field));
+ wattroff(win, (int) field_fore(field));
waddch(win, '/');
- wattrset(win, field_back(field));
+ (void) wattrset(win, (int) field_back(field));
waddstr(win, "back");
- wattroff(win, field_back(field));
+ wattroff(win, (int) field_back(field));
wprintw(win, ", pad '%c'",
field_pad(field));
for (nbuf = 0; nbuf <= 2; ++nbuf) {
if ((buffer = field_buffer(field, nbuf)) != 0) {
wprintw(win, "buffer %d:", nbuf);
- wattrset(win, A_REVERSE);
+ (void) wattrset(win, A_REVERSE);
waddstr(win, buffer);
wattroff(win, A_REVERSE);
waddstr(win, "\n");
help_edit_field();
- mvaddstr(4, 57, "Forms Entry Test");
+ MvAddStr(4, 57, "Forms Entry Test");
show_insert_mode(TRUE);
refresh();
set_field_buffer(f[n - 1], 1, "Hello\nWorld!");
}
- f[n++] = (FIELD *) 0;
+ f[n] = (FIELD *) 0;
if ((form = new_form(f)) != 0) {
free_form(form);
}
- for (c = 0; f[c] != 0; c++)
+ for (c = 0; f[c] != 0; c++) {
+ void *ptr = field_userptr(f[c]);
+ free(ptr);
free_field(f[c]);
+ }
noraw();
nl();
init_pair(1, COLOR_WHITE, COLOR_BLUE);
init_pair(2, COLOR_GREEN, COLOR_BLACK);
init_pair(3, COLOR_CYAN, COLOR_BLACK);
- bkgd(COLOR_PAIR(1));
+ bkgd((chtype) COLOR_PAIR(1));
refresh();
}
endwin();
ExitProgram(EXIT_SUCCESS);
}
+
#else
int
main(void)