ITEM
static ITEM *item;
ITEM *cur_item;
extern ITEM **pstate; /* pointers to the descriptions of the states */
ITEM *q;
register ITEM *p;
pstate = (ITEM **)
realloc((char *)pstate, sizeof (ITEM *)*(nstatesz+2));
psmem = (ITEM *) realloc((char *)psmem, sizeof (ITEM) * new_pstsize);
psmem = (ITEM *) malloc(sizeof (ITEM) * new_pstsize);
pstate = (ITEM **)malloc(sizeof (ITEM *)*(nstatesz+2));
static ITEM *psmem, *zzmemsz;
ITEM *p1, *p2, *k, *l, *q1, *q2;
ITEM **pstate; /* ptr to descriptions of the states */
register ITEM *j;
ITEM *p, *q;
register ITEM *pp, *qq;
_affect_change(MENU *m, int newtop, ITEM *newcurrent)
ITEM *oldcur;
_chk_top(MENU *m, int *top, ITEM *current)
_chk_current(MENU *m, int *top, ITEM *current)
ITEM **ip;
Items(m) = (ITEM **) NULL;
ITEM **ip;
_connect(MENU *m, ITEM **items)
ITEM **ip;
set_current_item(MENU *m, ITEM *current)
ITEM *
return ((ITEM *)0);
item_index(ITEM *i)
ITEM *current;
if (Right(current) == (ITEM *)0) {
if (Left(current) == (ITEM *)0) {
if (Up(current) == (ITEM *)0) {
if (Down(current) == (ITEM *)0) {
(ITEM **) NULL, /* items */
(ITEM *) NULL, /* curitem */
ITEM _Default_Item = {
set_item_opts(ITEM *i, OPTIONS opt)
item_opts_off(ITEM *i, OPTIONS opt)
item_opts_on(ITEM *i, OPTIONS opt)
item_opts(ITEM *i)
set_item_userptr(ITEM *i, char *u)
item_userptr(ITEM *i)
set_item_value(ITEM *i, int v)
item_value(ITEM *i)
Left(i) = c ? IthItem(m, n-1) : (ITEM *) NULL;
Right(i) = (c == Cols(m)-1 || n == Nitems(m)-1) ? (ITEM *)0 :
Up(i) = r ? IthItem(m, n-Cols(m)) : (ITEM *) NULL;
Down(i) = (ITEM *) NULL;
ITEM *i;
Left(i) = c ? IthItem(m, n-Rows(m)) : (ITEM *) NULL;
Right(i) = (ITEM *) NULL;
Up(i) = r ? IthItem(m, n-1) : (ITEM *) NULL;
Down(i) = (r == Rows(m)-1) ? (ITEM *)0 : IthItem(m, n+1);
ITEM *i;
set_menu_items(MENU *m, ITEM **i)
if (i && *i == (ITEM *) NULL) {
ITEM **
return ((ITEM **) NULL);
ITEM **ip;
ITEM *
ITEM *item;
if (item = (ITEM *) calloc(1, sizeof (ITEM))) {
return ((ITEM *) NULL);
free_item(ITEM *i)
item_name(ITEM *i)
item_description(ITEM *i)
new_menu(ITEM **items)
if (*items == (ITEM *)0 || !_connect(m, items)) {
ITEM *current;
_match(MENU *m, char c, ITEM **current)
_move_post_item(MENU *m, ITEM *k)
_movecurrent(MENU *m, ITEM *oldcur)
ITEM *i, *j;
ITEM *si, *sj;
si = Cyclic(m) ? i : (ITEM *) NULL;
sj = Cyclic(m) ? j : (ITEM *) NULL;
ITEM **ip;
_post_item(MENU *m, ITEM *k)
ITEM *current;
item_visible(ITEM *i)
extern ITEM **menu_items(MENU *),
extern MENU *new_menu(ITEM **);
extern OPTIONS item_opts(ITEM *),
extern char *item_description(ITEM *),
*item_name(ITEM *),
*item_userptr(ITEM *),
extern int free_item(ITEM *),
item_index(ITEM *),
item_opts_off(ITEM *, OPTIONS),
item_opts_on(ITEM *, OPTIONS),
item_value(ITEM *),
item_visible(ITEM *),
set_current_item(MENU *, ITEM *),
set_item_opts(ITEM *, OPTIONS),
set_item_userptr(ITEM *, char *),
set_item_value(ITEM *, int),
set_menu_items(MENU *, ITEM **),
extern ITEM **menu_items(),
struct ITEM *left;
struct ITEM *right;
struct ITEM *up;
struct ITEM *down;
ITEM **items;
ITEM *curitem; /* Current item */
extern ITEM _Default_Item;
extern void _affect_change(MENU *, int, ITEM *);
extern void _chk_current(MENU *, int *, ITEM *);
extern void _chk_top(MENU *, int *, ITEM *);
extern void _move_post_item(MENU *, ITEM *);
extern void _movecurrent(MENU *, ITEM *);
extern int _match(MENU *, char, ITEM **);
extern int _connect(MENU *, ITEM **);
ITEM(item)->i_next = NULL;
ITEM(item)->i_prev = lp->l_tail;
ITEM(item)->i_next = lp->l_head;
ITEM(item)->i_prev = NULL;