void menu_list_read_key(menu_t* menu,int c,int jump_to) { list_entry_t* m; int i; switch(c) { case KEY_HOME: mpriv->current = mpriv->menu; break; case KEY_END: for(m = mpriv->current ; m && m->next ; m = m->next) /**/; if(m) mpriv->current = m; break; case KEY_PAGE_UP: for(i = 0, m = mpriv->current ; m && m->prev && i < mpriv->disp_lines ; m = m->prev, i++) /**/; if(m) mpriv->current = m; break; case KEY_PAGE_DOWN: for(i = 0, m = mpriv->current ; m && m->next && i < mpriv->disp_lines ; m = m->next, i++) /**/; if(m) mpriv->current = m; break; default: if(jump_to) menu_list_jump_to_key(menu,c); else menu_dflt_read_key(menu,c); } }
static int read_key(menu_t* menu,int c){ char **str; for (str=mpriv->actions; str && *str; str++) if (c == (*str)[0]) { action = &(*str)[2]; read_cmd(menu,MENU_CMD_ACTION); return 1; } if (menu_dflt_read_key(menu, c)) return 1; return menu_list_jump_to_key(menu, c); }
static int read_key(menu_t* menu,int c){ if (menu_dflt_read_key(menu, c)) return 1; return menu_list_jump_to_key(menu, c); }