Lines Matching refs:menu

48 #define Remove_Character_From_Pattern(menu) \  argument
49 (menu)->pattern[--((menu)->pindex)] = '\0'
52 #define Add_Character_To_Pattern(menu,ch) \ argument
53 { (menu)->pattern[((menu)->pindex)++] = (char) (ch);\
54 (menu)->pattern[(menu)->pindex] = '\0'; }
122 (MENU *menu, int ch, ITEM **item) in _nc_Match_Next_Character_In_Item_Name() argument
128 (void *)menu, ch, (void *)item)); in _nc_Match_Next_Character_In_Item_Name()
130 assert(menu && item && *item); in _nc_Match_Next_Character_In_Item_Name()
137 if ((menu->pindex + 1) > menu->namelen) in _nc_Match_Next_Character_In_Item_Name()
140 Add_Character_To_Pattern(menu, ch); in _nc_Match_Next_Character_In_Item_Name()
147 idx = menu->nitems - 1; in _nc_Match_Next_Character_In_Item_Name()
157 idx = menu->nitems - 1; in _nc_Match_Next_Character_In_Item_Name()
161 if (++idx >= menu->nitems) in _nc_Match_Next_Character_In_Item_Name()
164 if (Is_Sub_String((bool)((menu->opt & O_IGNORECASE) != 0), in _nc_Match_Next_Character_In_Item_Name()
165 menu->pattern, in _nc_Match_Next_Character_In_Item_Name()
166 menu->items[idx]->name.str) in _nc_Match_Next_Character_In_Item_Name()
178 *item = menu->items[idx]; in _nc_Match_Next_Character_In_Item_Name()
193 if (ch && ch != BS && menu->pindex > 0) in _nc_Match_Next_Character_In_Item_Name()
196 Remove_Character_From_Pattern(menu); in _nc_Match_Next_Character_In_Item_Name()
215 menu_driver(MENU *menu, int c) in menu_driver() argument
227 T((T_CALLED("menu_driver(%p,%d)"), (void *)menu, c)); in menu_driver()
229 if (!menu) in menu_driver()
232 if (menu->status & _IN_DRIVER) in menu_driver()
234 if (!(menu->status & _POSTED)) in menu_driver()
237 item = menu->curitem; in menu_driver()
239 my_top_row = menu->toprow; in menu_driver()
249 assert(menu->pattern); in menu_driver()
250 Reset_Pattern(menu); in menu_driver()
288 if ((my_top_row + menu->arows >= menu->rows) || !(item->down)) in menu_driver()
304 rdiff = menu->rows - (menu->arows + my_top_row); in menu_driver()
305 if (rdiff > menu->arows) in menu_driver()
306 rdiff = menu->arows; in menu_driver()
319 rdiff = (menu->arows < my_top_row) ? menu->arows : my_top_row; in menu_driver()
332 item = menu->items[0]; in menu_driver()
337 item = menu->items[menu->nitems - 1]; in menu_driver()
342 if ((item->index + 1) >= menu->nitems) in menu_driver()
344 if (menu->opt & O_NONCYCLIC) in menu_driver()
347 item = menu->items[0]; in menu_driver()
350 item = menu->items[item->index + 1]; in menu_driver()
357 if (menu->opt & O_NONCYCLIC) in menu_driver()
360 item = menu->items[menu->nitems - 1]; in menu_driver()
363 item = menu->items[item->index - 1]; in menu_driver()
368 if (menu->opt & O_ONEVALUE) in menu_driver()
374 if (menu->curitem->opt & O_SELECTABLE) in menu_driver()
376 menu->curitem->value = !menu->curitem->value; in menu_driver()
377 Move_And_Post_Item(menu, menu->curitem); in menu_driver()
378 _nc_Show_Menu(menu); in menu_driver()
392 if (menu->pindex > 0) in menu_driver()
394 assert(menu->pattern); in menu_driver()
395 Remove_Character_From_Pattern(menu); in menu_driver()
396 pos_menu_cursor(menu); in menu_driver()
404 assert(menu->pattern); in menu_driver()
405 if (menu->pattern[0]) in menu_driver()
406 result = _nc_Match_Next_Character_In_Item_Name(menu, 0, &item); in menu_driver()
409 if ((item->index + 1) < menu->nitems) in menu_driver()
410 item = menu->items[item->index + 1]; in menu_driver()
413 if (menu->opt & O_NONCYCLIC) in menu_driver()
416 item = menu->items[0]; in menu_driver()
423 assert(menu->pattern); in menu_driver()
424 if (menu->pattern[0]) in menu_driver()
425 result = _nc_Match_Next_Character_In_Item_Name(menu, BS, &item); in menu_driver()
429 item = menu->items[item->index - 1]; in menu_driver()
432 if (menu->opt & O_NONCYCLIC) in menu_driver()
435 item = menu->items[menu->nitems - 1]; in menu_driver()
449 result = _nc_Match_Next_Character_In_Item_Name(menu, c, &item); in menu_driver()
454 WINDOW *uwin = Get_Menu_UserWin(menu); in menu_driver()
464 WINDOW *sub = Get_Menu_Window(menu); in menu_driver()
475 result = menu_driver(menu, REQ_SCR_ULINE); in menu_driver()
477 result = menu_driver(menu, REQ_SCR_UPAGE); in menu_driver()
479 result = menu_driver(menu, REQ_FIRST_ITEM); in menu_driver()
487 result = menu_driver(menu, REQ_SCR_DLINE); in menu_driver()
489 result = menu_driver(menu, REQ_SCR_DPAGE); in menu_driver()
491 result = menu_driver(menu, REQ_LAST_ITEM); in menu_driver()
504 for (i = 0; i < menu->nitems; i++) in menu_driver()
506 int err = _nc_menu_cursor_pos(menu, in menu_driver()
507 menu->items[i], in menu_driver()
514 (rx < x + menu->itemlen)) in menu_driver()
516 item = menu->items[i]; in menu_driver()
530 _nc_New_TopRow_and_CurrentItem(menu, in menu_driver()
533 menu_driver(menu, REQ_TOGGLE_ITEM); in menu_driver()
543 if (menu->opt & O_MOUSE_MENU) in menu_driver()
563 else if (item->y >= (my_top_row + menu->arows)) in menu_driver()
564 my_top_row = item->y - menu->arows + 1; in menu_driver()
566 _nc_New_TopRow_and_CurrentItem(menu, my_top_row, item); in menu_driver()