void PAGE_MainLayoutInit(int page) { (void)page; memset(lp, 0, sizeof(*lp)); BUTTON_RegisterCallback(&action, CHAN_ButtonMask(BUT_ENTER) | CHAN_ButtonMask(BUT_EXIT) | CHAN_ButtonMask(BUT_LEFT) | CHAN_ButtonMask(BUT_LEFT) | CHAN_ButtonMask(BUT_RIGHT) | CHAN_ButtonMask(BUT_UP) | CHAN_ButtonMask(BUT_DOWN), BUTTON_PRESS | BUTTON_LONGPRESS | BUTTON_PRIORITY, _action_cb, NULL); PAGE_ShowHeader(NULL); lp->long_press = 0; lp->newelem = 0; lp->selected_x = 0; const u16 color[5] = { RGB888_to_RGB565(0xaa, 0x44, 0x44), RGB888_to_RGB565(0x44, 0xaa, 0x44), RGB888_to_RGB565(0x44, 0x44, 0xaa), RGB888_to_RGB565(0x44, 0x44, 0x44), RGB888_to_RGB565(0x33, 0x33, 0x33), }; for (int i = 0 ; i < 5; i++) gui->desc[i] = (struct LabelDesc){ .font = 0, .font_color = 0xffff, .fill_color = color[i], .outline_color = 0, .style = LABEL_FILL}; gui->desc[1].font = TINY_FONT.font; //Special case for trims GUI_CreateIcon(&gui->newelem, 32, 0, &icons[ICON_LAYOUT_ADD], add_dlg_cb, NULL); GUI_CreateIcon(&gui->editelem, 64, 0, &icons[ICON_LAYOUT_CFG], cfg_cb, NULL); GUI_SetHidden((guiObject_t *)&gui->editelem, 1); //GUI_CreateTextSelect(&gui->newelem, 36, 12, TEXTSELECT_96, newelem_press_cb, newelem_cb, NULL); GUI_CreateLabel(&gui->xlbl, 80+18, 9, NULL, TITLE_FONT, "X"); GUI_CreateTextSelect(&gui->x, 88+18, 8, TEXTSELECT_64, NULL, xpos_cb, NULL); GUI_CreateLabel(&gui->ylbl, 164+16, 9, NULL, TITLE_FONT, "Y"); GUI_CreateTextSelect(&gui->y, 172+16, 8, TEXTSELECT_64, NULL, ypos_cb, NULL); GUI_SelectionNotify(notify_cb); draw_elements(); if (show_config_menu) { lp->selected_for_move = show_config_menu; show_config(); show_config_menu = 0; } } void PAGE_MainLayoutEvent() { } void PAGE_MainLayoutExit() { BUTTON_UnregisterCallback(&action); }
static void _show_title(int page) { mp->max_scroll = Model.num_channels + NUM_VIRT_CHANNELS > ENTRIES_PER_PAGE ? Model.num_channels + NUM_VIRT_CHANNELS - ENTRIES_PER_PAGE : Model.num_channels + NUM_VIRT_CHANNELS; PAGE_ShowHeader(PAGE_GetName(PAGEID_MIXER)); GUI_CreateIcon(&gui->testico, LCD_WIDTH-128, 0, &icons[ICON_CHANTEST], show_chantest_cb, NULL); GUI_CreateIcon(&gui->reorderico, LCD_WIDTH-96, 0, &icons[ICON_ORDER], reorder_cb, NULL); GUI_CreateScrollbar(&gui->scroll, LCD_WIDTH-16, 32, LCD_HEIGHT-32, mp->max_scroll+1, NULL, scroll_cb, NULL); GUI_SetScrollbar(&gui->scroll, page); }
void PAGE_ShowHeader(const char *title) { guiObject_t *obj; GUI_CreateIcon(&gui->exitico, 0, 0, &icons[ICON_EXIT], changepage_cb, (void *)0); if(title) GUI_CreateLabel(&gui->title, 40, 10, NULL, TITLE_FONT, (void *)title); obj = GUI_CreateIcon(&gui->previco, LCD_WIDTH-64, 0, &icons[ICON_PREVPAGE], changepage_cb, (void *)-1); GUI_SetSelectable(obj, 0); obj = GUI_CreateIcon(&gui->nextico, LCD_WIDTH-32, 0, &icons[ICON_NEXTPAGE], changepage_cb, (void *)1); GUI_SetSelectable(obj, 0); exit_cmd = changepage_cb; exit_data = NULL; }
void PAGE_ShowHeader_ExitOnly(const char *title, void (*CallBack)(guiObject_t *obj, const void *data)) { enter_cmd = CallBack; enter_data = (void *)1; exit_cmd = CallBack; exit_data = (void *)0; GUI_CreateIcon(&gui->exitico, 0, 0, &icons[ICON_EXIT], CallBack, (void *)0); if(title) GUI_CreateLabel(&gui->title, 40, 10, NULL, TITLE_FONT, (void *)title); }
void PAGE_ShowHeaderWithSize(const char *title, u16 width, u16 height) { guiObject_t *obj; if (HAS_TOUCH) { obj = GUI_CreateIcon(&gui->exitico, 0, 0, &icons[ICON_EXIT], changepage_cb, (void *)0); GUI_SetSelectable(obj, 0); } if(title) GUI_CreateLabelBox(&gui->title, 40, 10, width, height, &TITLE_FONT, NULL, NULL, (void *)title); //obj = GUI_CreateIcon(&gui->previco, LCD_WIDTH-64, 0, &icons[ICON_PREVPAGE], changepage_cb, (void *)-1); //GUI_SetSelectable(obj, 0); //obj = GUI_CreateIcon(&gui->nextico, LCD_WIDTH-32, 0, &icons[ICON_NEXTPAGE], changepage_cb, (void *)1); //GUI_SetSelectable(obj, 0); exit_cmd = changepage_cb; exit_data = NULL; }
void PAGE_ModelMenuInit(int page) { (void) page; long pos = 0; PAGE_SetModal(0); PAGE_ShowHeader_ExitOnly(PAGE_GetName(PAGEID_MODELMENU), goto_mainpage); u8 count = sizeof(menus) / sizeof(struct menu_s); for(int j = 0; j < 4; j++) { int y = 40 + j * (LCD_HEIGHT == 240 ? 50 : 59); for(int i = 0; i < 5; i++,pos++) { if (pos >= count) break; int x = (LCD_WIDTH == 320 ? 12 : 92) + i*60; GUI_CreateIcon(&gui->icon[pos], x, y, &menus[pos].icon, ico_select_cb, (void *)pos); } } }