const char *menusel_cb(guiObject_t *obj, int dir, void *data) { (void) obj; (void) dir; int i = (long)data; int max_pages = PAGE_GetNumPages(); int start_page = PAGE_GetStartPage(); int page = GUI_TextSelectHelper(pc.quickpage[i], start_page, max_pages -1, dir, 1, 1, NULL); if (page != pc.quickpage[i]) { int increment = (page > pc.quickpage[i]) ? 1 : -1; while (page >= start_page && page != max_pages && ! PAGE_IsValid(page)) { page = (page + increment); } if (page >= start_page && page != max_pages) pc.quickpage[i] = page; } return PAGE_GetName(pc.quickpage[i]); }
void PAGE_ChangeQuick(int dir) { int quick = 0; for (int i = 0; i < NUM_QUICKPAGES; i++) { if(Model.pagecfg2.quickpage[i] && Model.pagecfg2.quickpage[i] == cur_page) { quick = i+1; break; } } int increment = dir > 0 ? 1 : NUM_QUICKPAGES; while(1) { quick = (quick + increment) % 5; if (quick == 0 || (Model.pagecfg2.quickpage[quick-1] && PAGE_IsValid(Model.pagecfg2.quickpage[quick-1]))) { break; } } if (quick == 0) { PAGE_ChangeByID(PAGEID_MAIN); } else { PAGE_ChangeByID(Model.pagecfg2.quickpage[quick-1]); } }