コード例 #1
0
ファイル: pages.c プロジェクト: silpstream/deviation
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);
    }
}
コード例 #2
0
ファイル: model_config.c プロジェクト: Chen-Leon/DeviationX
void PAGE_VideoSetupInit(int page)
{
    (void)page;
    show_titlerow(_tr("Video"));
    GUI_CreateScrollable(&gui->scrollable, 0, HEADER_HEIGHT, LCD_WIDTH, LCD_HEIGHT - HEADER_HEIGHT,
                         LINE_SPACE, 4, row4_cb, NULL, NULL, NULL);
    GUI_SetSelected(GUI_ShowScrollableRowOffset(&gui->scrollable, 0));
}
コード例 #3
0
ファイル: lang_select.c プロジェクト: Chen-Leon/DeviationX
void PAGE_LanguageInit(int page)
{
    int num_lang = count_num_languages();
    PAGE_ShowHeader(_tr("Press ENT to change"));

    GUI_CreateScrollable(&gui->scrollable, 0, HEADER_HEIGHT, LCD_WIDTH, LCD_HEIGHT - HEADER_HEIGHT,
                     LINE_SPACE, num_lang, row_cb, NULL, NULL, NULL);
    GUI_SetSelected(GUI_ShowScrollableRowOffset(&gui->scrollable, Transmitter.language));
}
コード例 #4
0
ファイル: timer_page.c プロジェクト: caoqing32/deviation
static void _show_page()
{
    PAGE_ShowHeader(_tr("Timers")); // using the same name as related menu item to reduce language strings
    PAGE_SetActionCB(_action_cb);

    GUI_CreateScrollable(&gui->scrollable, 0, ITEM_HEIGHT + 1, LCD_WIDTH, LCD_HEIGHT - ITEM_HEIGHT -1,
                     LCD_HEIGHT - ITEM_HEIGHT, NUM_TIMERS, row_cb, getobj_cb, NULL, NULL);
    GUI_SetSelected(GUI_ShowScrollableRowOffset(&gui->scrollable, current_selected));
}
コード例 #5
0
ファイル: trim_page.c プロジェクト: DeviationTX/deviation
void PAGE_TrimEditInit(int page)
{
    struct Trim *trim = MIXER_GetAllTrims();
    tp->index = page;
    tp->trim = trim[tp->index];
    GUI_CreateLabelBox(&guit->header, 0, 0, LABEL2_WIDTH, HEADER_HEIGHT, &TITLE_FONT, GUI_Localize, NULL, _tr_noop("Edit"));
    GUI_CreateButtonPlateText(&guit->save, BUTTON2_X, BUTTON2_Y, BUTTON2_WIDTH, LINE_HEIGHT,
            &BUTTON_FONT, GUI_Localize, okcancel_cb, _tr_noop("Save"));
    GUI_CreateScrollable(&gui->scrollable, 0, HEADER_HEIGHT, LCD_WIDTH, LCD_HEIGHT - HEADER_HEIGHT,
                         LINE_SPACE, ITEM_LAST, row2_cb, getobj2_cb, NULL, NULL);
    GUI_SetSelected(GUI_ShowScrollableRowOffset(&gui->scrollable, 0));
}
コード例 #6
0
void PAGE_SwitchAssignInit(int page)
{
    (void)page;
    PAGE_SetActionCB(_action_cb);
    PAGE_SetModal(0);
    PAGE_RemoveAllObjects();
    refresh_switches();

    PAGE_ShowHeader(_tr("Press ENT to change"));
    GUI_CreateScrollable(&gui->scrollable, 0, ITEM_HEIGHT + 1, LCD_WIDTH, LCD_HEIGHT - ITEM_HEIGHT -1,
                     ITEM_SPACE, SWITCHFUNC_LAST, row_cb, getobj_cb, NULL, NULL);
    GUI_SetSelected(GUI_ShowScrollableRowOffset(&gui->scrollable, 0));
}
コード例 #7
0
ファイル: model_config.c プロジェクト: Chen-Leon/DeviationX
void PAGE_TrainConfigInit(int page)
{
    (void)page;
    int mode = PPMin_Mode();
    show_titlerow(mode == PPM_IN_TRAIN1
                  ? _tr("Trainer Cfg (Channel)")
                  : mode == PPM_IN_TRAIN2
                    ? _tr("Trainer Cfg (Stick)")
                    : _tr("PPMIn Cfg (Extend)"));
    GUI_CreateScrollable(&gui->scrollable, 0, HEADER_HEIGHT, LCD_WIDTH, LCD_HEIGHT - HEADER_HEIGHT,
                         LINE_SPACE, PPMin_Mode() == PPM_IN_SOURCE ? 3 : 3 + MAX_PPM_IN_CHANNELS,
                         row3_cb, NULL, NULL, NULL);
    GUI_SetSelected(GUI_ShowScrollableRowOffset(&gui->scrollable, 0));
}
コード例 #8
0
ファイル: tx_configure.c プロジェクト: TheSFReader/deviation
void PAGE_TxConfigureInit(int page)
{
    (void)page;
    cp->enable = CALIB_NONE;
    PAGE_SetActionCB(_action_cb);
    PAGE_SetModal(0);
    PAGE_RemoveAllObjects();
    PAGE_ShowHeader(_tr("Configure"));
    cp->total_items = 0;

    GUI_CreateScrollable(&gui->scrollable, 0, HEADER_HEIGHT, LCD_WIDTH, LCD_HEIGHT - HEADER_HEIGHT,
                     LINE_SPACE, ITEM_LAST, row_cb, getobj_cb, size_cb, NULL);
    GUI_SetSelected(GUI_ShowScrollableRowOffset(&gui->scrollable, current_selected));
}
コード例 #9
0
ファイル: trim_page.c プロジェクト: supermk2/Deviation
static void _show_page()
{
    PAGE_SetActionCB(_action_cb);
    //PAGE_ShowHeader(_tr("Trim")); // no title for devo10
    PAGE_ShowHeader(_tr("Input"));
    GUI_CreateLabelBox(&gui->steplbl, 40, 0, 30, ITEM_HEIGHT, &DEFAULT_FONT, NULL, NULL, _tr("Step"));
    // no enought space in Devo10, so just display trim + in the 1st page
    //GUI_CreateLabelBox(w + 40, 0, 0, ITEM_HEIGHT, &DEFAULT_FONT, NULL, NULL, _tr("Trim -"));
    GUI_CreateLabelBox(&gui->trimposlbl, 80, 0, 30, ITEM_HEIGHT, &DEFAULT_FONT, NULL, NULL, _tr("Trim +"));
    GUI_CreateScrollable(&gui->scrollable, 0, ITEM_HEIGHT + 1, LCD_WIDTH, LCD_HEIGHT - ITEM_HEIGHT -1,
                         ITEM_SPACE, NUM_TRIMS, row_cb, getobj_cb, NULL, NULL);
    GUI_SetSelected(GUI_ShowScrollableRowOffset(&gui->scrollable, current_selected));

}
コード例 #10
0
ファイル: model_config.c プロジェクト: Chen-Leon/DeviationX
void PAGE_ModelConfigInit(int page)
{
    (void)page;
    switch (Model.type) {
      case MODELTYPE_HELI: show_titlerow(_tr("Helicopter")); break; 
      case MODELTYPE_PLANE: show_titlerow(_tr("Airplane")); break; 
      case MODELTYPE_MULTI: show_titlerow(_tr("Multirotor")); break; 
      }

    if (Model.type == MODELTYPE_HELI) {
        GUI_CreateScrollable(&gui->scrollable, 0, HEADER_HEIGHT, LCD_WIDTH, 
                         LCD_HEIGHT - HEADER_HEIGHT,
                         LINE_SPACE, ITEM_LAST, row_cb, NULL, NULL, NULL);
        GUI_SetSelected(GUI_ShowScrollableRowOffset(&gui->scrollable, 0));
    }
}
コード例 #11
0
ファイル: trim_page.c プロジェクト: supermk2/Deviation
static void _edit_cb(guiObject_t *obj, const void *data)
{
    (void)obj;
    PAGE_SetActionCB(_sub_action_cb);
    struct Trim *trim = MIXER_GetAllTrims();
    PAGE_SetModal(1);
    tp->index = (long)data;
    tp->trim = trim[tp->index];
    PAGE_RemoveAllObjects();
    PAGE_ShowHeader(""); // to draw a line only

    u8 w = 50;
    GUI_CreateButtonPlateText(&guit->save, LCD_WIDTH - w -1, 0, w, ITEM_HEIGHT,
            &DEFAULT_FONT, NULL, 0x0000, okcancel_cb, (void *)_tr("Save"));
    GUI_CreateScrollable(&gui->scrollable, 0, ITEM_HEIGHT + 1, LCD_WIDTH, LCD_HEIGHT - ITEM_HEIGHT -1,
                         ITEM_SPACE, ITEM_LAST, row2_cb, getobj2_cb, NULL, NULL);
    GUI_SetSelected(GUI_ShowScrollableRowOffset(&gui->scrollable, 0));
}
コード例 #12
0
void PAGE_TelemconfigInit(int page)
{
    (void)label_cb;
    if (page < 0)
        page = current_selected;
    PAGE_SetModal(0);
    PAGE_RemoveAllObjects();
    PAGE_SetActionCB(_action_cb);
    if (telem_state_check() == 0) {
        GUI_CreateLabelBox(&gui->msg, 20, 10, 0, 0, &DEFAULT_FONT, NULL, NULL, tp.str);
        OBJ_SET_USED(&gui->value, 0);  // A indication not allow to scroll up/down
        return;
    }

    PAGE_ShowHeader(_tr("Telemetry config")); // using the same name as related menu item to reduce language strings

    GUI_CreateScrollable(&gui->scrollable, 0, ITEM_HEIGHT + 1, LCD_WIDTH, LCD_HEIGHT - ITEM_HEIGHT -1,
                         ITEM_SPACE, TELEM_NUM_ALARMS, row_cb, getobj_cb, NULL, NULL);
    GUI_SetSelected(GUI_ShowScrollableRowOffset(&gui->scrollable, current_selected));
}
コード例 #13
0
void PAGE_TravelAdjInit(int page)
{
    (void)page;
    //if (page < 0 && current_selected > 0) // enter this page from childen page , so we need to get its previous mp->current_selected item
    //    page = current_selected;
    PAGE_SetActionCB(_action_cb);
    PAGE_SetModal(0);
    PAGE_RemoveAllObjects();

    PAGE_ShowHeader(("")); // draw a underline only
    u8 w = 35;
    u8 x = 50;
    GUI_CreateLabelBox(&gui->dnlbl, x+2, 0,  w, LINE_HEIGHT, &DEFAULT_FONT, NULL, NULL, _tr("Down"));
    GUI_CreateLabelBox(&gui->uplbl, x + w +5, 0,  w, LINE_HEIGHT, &DEFAULT_FONT, NULL, NULL, _tr("Up"));

    GUI_CreateScrollable(&gui->scrollable, 0, HEADER_HEIGHT, LCD_WIDTH, LCD_HEIGHT - HEADER_HEIGHT,
                         LINE_SPACE, Model.num_channels, row_cb, getobj_cb, NULL, NULL);

    GUI_SetSelected(GUI_ShowScrollableRowOffset(&gui->scrollable, current_selected));
}
コード例 #14
0
ファイル: model_config.c プロジェクト: Chen-Leon/DeviationX
void PAGE_ModelProtoInit(int page)
{
    (void) page;
    show_titlerow(ProtocolNames[Model.protocol]);

    proto_strs = PROTOCOL_GetOptions();
    int idx = 0;
    int pos = 0;
    while(idx < NUM_PROTO_OPTS) {
        if(proto_strs[pos] == NULL)
            break;
        while(proto_strs[++pos])
            ;
        pos++;
        idx++;
    }

    GUI_CreateScrollable(&gui->scrollable, 0, HEADER_HEIGHT, LCD_WIDTH, LCD_HEIGHT - HEADER_HEIGHT,
                         LINE_SPACE, idx, row2_cb, NULL, NULL, NULL);
    GUI_SetSelected(GUI_ShowScrollableRowOffset(&gui->scrollable, 0));
}
コード例 #15
0
ファイル: mixer_setup.c プロジェクト: supermk2/Deviation
static void _show_complex(int page_change)
{
    GUI_SelectionNotify(NULL);
    mp->max_scroll = 2;
    int selection = 0;
    if (page_change) {
        selection = GUI_ScrollableGetObjRowOffset(&gui->scrollable, GUI_GetSelected());
    }
    mp->firstObj = GUI_CreateScrollable(&gui->scrollable, 0, ITEM_HEIGHT + 1, LEFT_VIEW_WIDTH + ARROW_WIDTH, LCD_HEIGHT - ITEM_HEIGHT -1,
                         2 * ITEM_SPACE, COMPLEX_LAST - COMMON_LAST, complex_row_cb, simple_getobj_cb, complex_size_cb, NULL);
    // The following items are not draw in the logical view;
    GUI_CreateBarGraph(&gui->bar, LEFT_VIEW_WIDTH +10, LCD_HEIGHT - RIGHT_VIEW_HEIGHT -1, 5, RIGHT_VIEW_HEIGHT,
                              CHAN_MIN_VALUE, CHAN_MAX_VALUE, BAR_VERTICAL, eval_chan_cb, NULL);
    GUI_CreateXYGraph(&gui->graph, 77, LCD_HEIGHT - RIGHT_VIEW_HEIGHT -1, RIGHT_VIEW_HEIGHT, RIGHT_VIEW_HEIGHT,
                                  CHAN_MIN_VALUE, CHAN_MIN_VALUE * 5 / 4,
                                  CHAN_MAX_VALUE, CHAN_MAX_VALUE * 5 / 4,
                                  0, 0, eval_mixer_cb, curpos_cb, touch_cb, mp->cur_mixer);
    if (page_change) {
        GUI_SetSelected(GUI_ShowScrollableRowOffset(&gui->scrollable, selection));
    } else {
        GUI_Select1stSelectableObj(); // bug fix: muset reset to 1st selectable item, otherwise ,the focus will be wrong
    }
}