void GUI_RemoveScrollableObjs(struct guiObject *obj) { struct guiScrollable *scrollable = (struct guiScrollable *)obj; guiObject_t *head = objHEAD; objHEAD = scrollable->head; GUI_RemoveAllObjects(); objHEAD = head; scrollable->head = NULL; }
void PAGE_RemoveAllObjects() { enter_cmd = NULL; exit_cmd = NULL; if(! GUI_IsEmpty()) { GUI_RemoveAllObjects(); memset(&gui_objs, 0, sizeof(gui_objs)); BUTTON_InterruptLongPress(); //Make sure button press is not passed to next page } }
void PAGE_Init() { cur_page = sizeof(pages) / sizeof(struct page) - 1; cur_section = 0; modal = 0; GUI_RemoveAllObjects(); enter_cmd = NULL; exit_cmd = NULL; BUTTON_RegisterCallback(&button_action, CHAN_ButtonMask(BUT_ENTER) | CHAN_ButtonMask(BUT_EXIT) | CHAN_ButtonMask(BUT_RIGHT) | CHAN_ButtonMask(BUT_LEFT), BUTTON_PRESS | BUTTON_LONGPRESS, page_change_cb, NULL); PAGE_ChangeByID(PAGEID_SPLASH); //PAGE_ChangeByID(PAGEID_MAIN); }
void GUI_RemoveHierObjects(struct guiObject *obj) { if(obj == objHEAD) { GUI_RemoveAllObjects(); return; } struct guiObject *parent = objHEAD; while(parent && parent->next != obj) parent = parent->next; if(! parent) return; while(parent->next) GUI_RemoveObj(parent->next); FullRedraw = REDRAW_IF_NOT_MODAL; }
void PAGE_Init() { cur_page = 0; modal = 0; page_scrollable = NULL; GUI_RemoveAllObjects(); enter_cmd = NULL; exit_cmd = NULL; BUTTON_RegisterCallback(&button_action, CHAN_ButtonMask(BUT_ENTER) | CHAN_ButtonMask(BUT_EXIT) | CHAN_ButtonMask(BUT_LEFT) | CHAN_ButtonMask(BUT_RIGHT) | CHAN_ButtonMask(BUT_UP) | CHAN_ButtonMask(BUT_DOWN), BUTTON_PRESS | BUTTON_LONGPRESS | BUTTON_RELEASE | BUTTON_PRIORITY, page_change_cb, NULL); PAGE_ChangeByID(PAGEID_SPLASH, 0); //PAGE_ChangeByID(PAGEID_MAIN); }
static void show_iconsel_page(int SelectedIcon) { GUI_RemoveAllObjects(); memset(gui, 0, sizeof(*gui)); current_toggleicon = SelectedIcon; int toggleinput = MIXER_SRC(Model.pagecfg2.elem[tp->tglidx].src); //Header PAGE_ShowHeader(INPUT_SourceNameAbbrevSwitch(tempstring, toggleinput)); labelDesc.style = LABEL_CENTER; GUI_CreateButtonPlateText(&gui->revert, REVERT_X, 0, REVERT_W, HEADER_WIDGET_HEIGHT, &labelDesc, NULL, 0, revert_cb, (void *)_tr("Revert")); #if SEPARATOR GUI_CreateRect(&gui->separator, SEPARATOR_X, HEADER_WIDGET_HEIGHT, 1, LCD_HEIGHT-HEADER_HEIGHT, &labelDesc); #endif int row = ROW_Y; int num_positions = INPUT_NumSwitchPos(toggleinput); if(num_positions < 2) num_positions = 2; static const char * const tglidx[3] = {"0:", "1:", "2:"}; labelDesc.style = LABEL_INVERTED; for (int i = 0; i < num_positions; i++) { GUI_CreateLabelBox(&gui->togglelabel[i], LABEL_X, row, LABEL_W, LABEL_H, SelectedIcon == i ? &labelDesc : &DEFAULT_FONT, NULL, NULL, tglidx[i]); #ifdef HAS_CHAR_ICONS GUI_CreateLabelBox(&gui->toggleicon[i], ICON_X, row, ICON_W, LABEL_H, &DEFAULT_FONT, TGLICO_font_cb, NULL, (void *)(long)Model.pagecfg2.elem[tp->tglidx].extra[i]); #else struct ImageMap img = TGLICO_GetImage(Model.pagecfg2.elem[tp->tglidx].extra[i]); GUI_CreateImageOffset(&gui->toggleicon[i], ICON_X, row, ICON_W, LABEL_H, img.x_off, img.y_off, img.file, NULL, //SelectedIcon == 0 ? tglico_reset_cb : tglico_setpos_cb, (void *)(long)i); #endif row += ROW_INCREMENT; } int count = get_toggle_icon_count(); int rows = (count + NUM_COLS - 1) / NUM_COLS; GUI_CreateScrollable(&gui->scrollable, SCROLLABLE_X, SCROLLABLE_Y, LCD_WIDTH - SCROLLABLE_X, SCROLLABLE_H, SCROLL_ROW_H, rows, row_cb, NULL, NULL, (void *)(long)SelectedIcon); }