Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 5 additions & 14 deletions src/pages/128x64x1/about_page.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,20 @@
along with Deviation. If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef OVERRIDE_PLACEMENT
#include "common.h"
#include "pages.h"
#include "gui/gui.h"

enum {
ROW_1_X = 0,
ROW_1_Y = 15,
ROW_2_X = 0,
ROW_2_Y = 30,
ROW_3_X = 0,
ROW_3_Y = 45
};
#endif //OVERRIDE_PLACEMENT

static struct about_obj * const gui = &gui_objs.u.about;

void PAGE_AboutInit(int page)
{
(void)page;
PAGE_ShowHeader(PAGE_GetName(PAGEID_ABOUT));

GUI_CreateLabelBox(&gui->label[0], ROW_1_X, ROW_1_Y, LCD_WIDTH, LINE_HEIGHT, &DEFAULT_FONT, NULL, NULL, "www.deviationtx.com");
GUI_CreateLabelBox(&gui->label[1], ROW_2_X, ROW_2_Y, LCD_WIDTH, LINE_HEIGHT, &DEFAULT_FONT, GUI_Localize, NULL, _tr_noop("Deviation FW version:"));
GUI_CreateLabelBox(&gui->label[2], ROW_3_X, ROW_3_Y, LCD_WIDTH, LINE_HEIGHT, &TINY_FONT, GUI_Localize, NULL, _tr_noop(DeviationVersion));
BeginGridLayout(4, 1) {
GUI_CreateLabelBox(&gui->label[0], Grid_XY(1, 1), LCD_WIDTH, LINE_HEIGHT, &DEFAULT_FONT, NULL, NULL, "www.deviationtx.com");
GUI_CreateLabelBox(&gui->label[1], Grid_XY(2, 1), LCD_WIDTH, LINE_HEIGHT, &DEFAULT_FONT, GUI_Localize, NULL, _tr_noop("Deviation FW version:"));
GUI_CreateLabelBox(&gui->label[2], Grid_XY(3, 1), LCD_WIDTH, LINE_HEIGHT, &TINY_FONT, GUI_Localize, NULL, _tr_noop(DeviationVersion));
}
}
1 change: 0 additions & 1 deletion src/pages/320x240x16/lang_select.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
#include <string.h>

#include "../common/_lang_select.c"
#define LINE_HEIGHT 24
static struct lang_obj * const gui = &gui_objs.u.lang;

static int row_cb(int absrow, int relrow, int y, void *data)
Expand Down
3 changes: 0 additions & 3 deletions src/pages/320x240x16/menus.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,6 @@ enum {
MENU_X = 20,
MENU_WIDTH = (LCD_WIDTH - MENU_X * 2),
};
#define HEADER_HEIGHT (LCD_HEIGHT==240 ? 37 : 40)
#define LINE_SPACE 29
#define LINE_HEIGHT 20
#include "../common/_menus.c"

static void menu_press_cb(guiObject_t *obj, s8 press_type, const void *data)
Expand Down
72 changes: 28 additions & 44 deletions src/pages/320x240x16/model_page.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,65 +44,49 @@ static const char *_mixermode_cb(guiObject_t *obj, int dir, void *data)
void PAGE_ModelInit(int page)
{
(void)page;
u8 row;

mp->last_mixermode = Model.mixer_mode;
mp->last_txpower = Model.tx_power;
mp->file_state = 0;
PAGE_SetModal(0);
PAGE_ShowHeader(PAGE_GetName(PAGEID_MODEL));

enum {
COL1 = (8 + ((LCD_WIDTH - 320) / 2)),
COL2 = (COL1 + 128),
COL3 = (COL1 + 228),
ROW1 = (44 + ((LCD_HEIGHT - 240) / 2)),
LABEL_WIDTH = (COL2 - COL1),
};
row = ROW1;
GUI_CreateLabelBox(&gui->filelbl, COL1, row, LABEL_WIDTH, 18, &LABEL_FONT, GUI_Localize, NULL, _tr_noop("File"));
GUI_CreateTextSelect(&gui->file, COL2, row, TEXTSELECT_96, file_press_cb, file_val_cb, NULL);
BeginGridLayout(9, 8) {
GUI_CreateLabelBox(&gui->filelbl, Grid_XY(1, 1), Grid_WH_Span(3, 1), &LABEL_FONT, GUI_Localize, NULL, _tr_noop("File"));
GUI_CreateTextSelect(&gui->file, Grid_XY(1, 4), TEXTSELECT_96, file_press_cb, file_val_cb, NULL);

#if HAS_STANDARD_GUI
row+= 20;
GUI_CreateLabelBox(&gui->guilbl, COL1, row, LABEL_WIDTH, 18, &LABEL_FONT, GUI_Localize, NULL, _tr_noop("Mixer GUI"));
GUI_CreateTextSelect(&gui->guits, COL2, row, TEXTSELECT_96, NULL, _mixermode_cb, NULL);
#endif
GUI_CreateLabelBox(&gui->namelbl, Grid_XY(2, 1), Grid_WH_Span(3, 1), &LABEL_FONT, GUI_Localize, NULL, _tr_noop("Model name")); // use the same naming convention for devo8 and devo10
GUI_CreateButton(&gui->name, Grid_XY(2, 4), BUTTON_96x16, show_text_cb, _changename_cb, Model.name);
GUI_CreateButton(&gui->icon, Grid_XY(2, 7), BUTTON_64x16, show_text_cb, changeicon_cb, _tr("Icon"));

row += 20;
GUI_CreateLabelBox(&gui->namelbl, COL1, row, LABEL_WIDTH, 18, &LABEL_FONT, GUI_Localize, NULL, _tr_noop("Model name")); // use the same naming convention for devo8 and devo10
GUI_CreateButton(&gui->name, COL2, row, BUTTON_96x16, show_text_cb, _changename_cb, Model.name);
GUI_CreateButton(&gui->icon, COL3, row, BUTTON_64x16, show_text_cb, changeicon_cb, _tr("Icon"));
GUI_CreateLabelBox(&gui->typelbl, Grid_XY(3, 1), Grid_WH_Span(3, 1), &LABEL_FONT, GUI_Localize, NULL, _tr_noop("Model type"));
GUI_CreateTextSelect(&gui->type, Grid_XY(3, 4), TEXTSELECT_96, type_press_cb, type_val_cb, NULL);

row += 20;
GUI_CreateLabelBox(&gui->typelbl, COL1, row, LABEL_WIDTH, 18, &LABEL_FONT, GUI_Localize, NULL, _tr_noop("Model type"));
GUI_CreateTextSelect(&gui->type, COL2, row, TEXTSELECT_96, type_press_cb, type_val_cb, NULL);
GUI_CreateLabelBox(&gui->ppmlbl, Grid_XY(4, 1), Grid_WH_Span(3, 1), &LABEL_FONT, GUI_Localize, NULL, _tr_noop("PPM In"));
GUI_CreateTextSelect(&gui->ppm, Grid_XY(4, 4), TEXTSELECT_96, ppmin_press_cb, ppmin_select_cb, NULL);

row += 24;
GUI_CreateLabelBox(&gui->ppmlbl, COL1, row, LABEL_WIDTH, 18, &LABEL_FONT, GUI_Localize, NULL, _tr_noop("PPM In"));
GUI_CreateTextSelect(&gui->ppm, COL2, row, TEXTSELECT_96, ppmin_press_cb, ppmin_select_cb, NULL);
GUI_CreateLabelBox(&gui->protolbl, Grid_XY(5, 1), Grid_WH_Span(3, 1), &LABEL_FONT, GUI_Localize, NULL, _tr_noop("Protocol"));
GUI_CreateTextSelect(&gui->proto, Grid_XY(5, 4), TEXTSELECT_96, proto_press_cb, protoselect_cb, NULL);

row += 20;
GUI_CreateLabelBox(&gui->protolbl, COL1, row, LABEL_WIDTH, 18, &LABEL_FONT, GUI_Localize, NULL, _tr_noop("Protocol"));
GUI_CreateTextSelect(&gui->proto, COL2, row, TEXTSELECT_96, proto_press_cb, protoselect_cb, NULL);
GUI_CreateLabelBox(&gui->numchlbl, Grid_XY(6, 1), Grid_WH_Span(3, 1), &LABEL_FONT, GUI_Localize, NULL, _tr_noop("# Channels"));
GUI_CreateTextSelect(&gui->numch, Grid_XY(6, 4), TEXTSELECT_96, NULL, numchanselect_cb, NULL);

row += 20;
GUI_CreateLabelBox(&gui->numchlbl, COL1, row, LABEL_WIDTH, 18, &LABEL_FONT, GUI_Localize, NULL, _tr_noop("# Channels"));
GUI_CreateTextSelect(&gui->numch, COL2, row, TEXTSELECT_96, NULL, numchanselect_cb, NULL);
GUI_CreateLabelBox(&gui->pwrlbl, Grid_XY(7, 1), Grid_WH_Span(3, 1), &LABEL_FONT, GUI_Localize, NULL, _tr_noop("Tx power"));
GUI_CreateTextSelect(&gui->pwr, Grid_XY(7, 4), TEXTSELECT_96, NULL, powerselect_cb, NULL);

if (Model.fixed_id == 0)
strlcpy(mp->fixed_id, _tr("None"), sizeof(mp->fixed_id));
else
sprintf(mp->fixed_id, "%d", (int)Model.fixed_id);
GUI_CreateLabelBox(&gui->fixedidlbl, Grid_XY(8, 1), Grid_WH_Span(3, 1), &LABEL_FONT, GUI_Localize, NULL, _tr_noop("Fixed ID"));
GUI_CreateButton(&gui->fixedid, Grid_XY(8, 4), BUTTON_96x16, show_text_cb, fixedid_cb, mp->fixed_id);
GUI_CreateButton(&gui->bind, Grid_XY(8, 7), BUTTON_64x16, show_bindtext_cb, bind_cb, NULL);

row += 24;
GUI_CreateLabelBox(&gui->pwrlbl, COL1, row, LABEL_WIDTH, 18, &LABEL_FONT, GUI_Localize, NULL, _tr_noop("Tx power"));
GUI_CreateTextSelect(&gui->pwr, COL2, row, TEXTSELECT_96, NULL, powerselect_cb, NULL);

row += 20;
if(Model.fixed_id == 0)
strlcpy(mp->fixed_id, _tr("None"), sizeof(mp->fixed_id));
else
sprintf(mp->fixed_id, "%d", (int)Model.fixed_id);
GUI_CreateLabelBox(&gui->fixedidlbl, COL1, row, LABEL_WIDTH, 18, &LABEL_FONT, GUI_Localize, NULL, _tr_noop("Fixed ID"));
GUI_CreateButton(&gui->fixedid, COL2, row, BUTTON_96x16, show_text_cb, fixedid_cb, mp->fixed_id);
GUI_CreateButton(&gui->bind, COL3, row, BUTTON_64x16, show_bindtext_cb, bind_cb, NULL);
#if HAS_STANDARD_GUI
GUI_CreateLabelBox(&gui->guilbl, Grid_XY(9, 1), Grid_WH_Span(3, 1), &LABEL_FONT, GUI_Localize, NULL, _tr_noop("Mixer GUI"));
GUI_CreateTextSelect(&gui->guits, Grid_XY(9, 4), TEXTSELECT_96, NULL, _mixermode_cb, NULL);
#endif
}
configure_bind_button();
}

Expand Down
4 changes: 4 additions & 0 deletions src/pages/320x240x16/pages.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ struct pagemem {
u8 modal_page;
};

#define HEADER_HEIGHT (LCD_HEIGHT == 240 ? 37 : 40)
#define LINE_SPACE 29
#define LINE_HEIGHT 20

#define TOGGLE_FILE ("media/toggle" IMG_EXT)
#define MODELMENU_FILE ("media/modelmnu" IMG_EXT)
#define SPLASH_FILE ("media/splash" IMG_EXT)
Expand Down
2 changes: 2 additions & 0 deletions src/pages/common/_pages.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
#include "voiceconfig_page.h"
#include "scanner_page.h"

#include "layout.h"

#define PAGE_NAME_MAX 10

#define PAGEDEF(id, init, event, exit, menu, name) id,
Expand Down
23 changes: 23 additions & 0 deletions src/pages/common/layout.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#ifndef _LAYOUT_H_
#define _LAYOUT_H_

typedef struct _grid_layout_data {
int w, h, x, y;
}GridData;

#define BeginGridLayout(row, col) BeginGridLayout2(0, HEADER_HEIGHT, LCD_WIDTH, LCD_HEIGHT - HEADER_HEIGHT, row, col)

#define BeginGridLayout2(startx, starty, width, height, row, col) \
unsigned _d = 1; \
for (const GridData _grid = { (width)/(col), (height)/(row), (startx), (starty)}; _d > 0 ; _d = 0 )

#define Grid_XY(row, col) \
(_grid.x + _grid.w * ((col) - 1)), (_grid.y + _grid.h * ((row) - 1))

#define Grid_WH() \
_grid.w, _grid.h

#define Grid_WH_Span(span_w, span_h) \
_grid.w * span_w, _grid.h * span_h

#endif // _LAYOUT_H_
13 changes: 0 additions & 13 deletions src/pages/text/about_page.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,4 @@
along with Deviation. If not, see <http://www.gnu.org/licenses/>.
*/

#include "common.h"
#include "pages.h"
#include "gui/gui.h"

#define OVERRIDE_PLACEMENT
enum {
ROW_1_X = 0,
ROW_1_Y = 1*LINE_HEIGHT,
ROW_2_X = 0,
ROW_2_Y = 4 * LINE_HEIGHT,
ROW_3_X = 0,
ROW_3_Y = 5 * LINE_HEIGHT,
};
#include "../128x64x1/about_page.c"