Пример #1
0
void PAGE_Change(int dir)
{
    if ( modal || GUI_IsModal())
        return;
    if (Model.mixer_mode != 0 || (cur_page >= sizeof(groups) / sizeof(struct page_group) - 1) || groups[cur_page].group & 0x80) {
        //Don't use left/right on model pages in standard mode
        return;
    }
    u8 nextpage = cur_page;
    if(dir > 0) {
        if (groups[nextpage+1].group == groups[cur_page].group) {
            nextpage++;
        } else {
            while(nextpage && groups[nextpage-1].group == groups[cur_page].group)
              nextpage--;
        } 
    } else if (dir < 0) {
        if (nextpage && groups[nextpage-1].group == groups[cur_page].group) {
            nextpage--;
        } else {
            while(groups[nextpage+1].group == groups[cur_page].group)
                nextpage++;
        }
    }
    if (cur_page == nextpage)
        return;
    PAGE_Exit();
    PAGE_ChangeByID(groups[nextpage].id);
}
Пример #2
0
void PAGE_ChangeByID(enum PageID id, s8 menuPage)
{
    if ( modal || GUI_IsModal())
        return;
    PAGE_SaveCurrentPos();
    page_scrollable = NULL;
    PAGE_Exit();
    GUI_SelectionNotify(NULL);
    cur_page = id;
    BUTTON_InterruptLongPress(); //Make sure button press is not passed to the new page
    if (pages[cur_page].init == PAGE_MainInit)
        quick_page_enabled = 1;
    else if (pages[cur_page].init == PAGE_MenuInit)
        quick_page_enabled = 0;
    PAGE_RemoveAllObjects();
    if (HAS_TOUCH) {
        GUI_ChangeSelectionOnTouch(1);
    }
    ActionCB = default_button_action_cb;
    pages[cur_page].init(menuPage);
    if (page_scrollable) {
        guiObject_t *obj = GUI_ShowScrollableRowOffset(page_scrollable, *current_selected);
        if(! HAS_TOUCH || ! GUI_InTouch())
            GUI_SetSelected(obj);
    }
}
Пример #3
0
void PAGE_ChangeByID(enum PageID id)
{
    if (cur_page != id && id < sizeof(pages) / sizeof(struct page)) {
        PAGE_Exit();
        cur_page = id;
        PAGE_RemoveAllObjects();
        pages[cur_page].init(0);
    }
}