more layouts

This commit is contained in:
3djc
2021-04-06 10:47:46 +02:00
parent d43242f686
commit a72f1491de
3 changed files with 48 additions and 70 deletions
+11 -8
View File
@@ -28,6 +28,8 @@
#define HAS_TRIMS() (persistentData->options[3].value.boolValue == true)
#define IS_MIRRORED() (persistentData->options[4].value.boolValue == true)
constexpr coord_t border = 10;
const uint8_t LBM_LAYOUT_2x1[] = {
#include "mask_layout2x1.lbm"
};
@@ -64,17 +66,18 @@ class Layout2x1: public Layout
rect_t getZone(unsigned int index) const override
{
rect_t zone;
zone.w = (LCD_W-3*10) / 2;
zone.x = (index & 1) ? 20 + zone.w : 10;
if (persistentData->options[0].value.boolValue) {
zone.h = (LCD_H-MENU_HEADER_HEIGHT-2*10);
zone.y = MENU_HEADER_HEIGHT + 10;
if (IS_MIRRORED())
index = 1 - index;
rect_t zone = getMainZone({border, border, LCD_W - 2 * border, LCD_H - 2 * border});
if (index == 0) {
return {zone.x, zone.y, zone.w / 2, zone.h};
}
else {
zone.h = (LCD_H-2*10);
zone.y = 10;
return {zone.x + zone.w / 2, zone.y, zone.w / 2, zone.h};
}
return zone;
}
};
+16 -14
View File
@@ -28,6 +28,8 @@
#define HAS_TRIMS() (persistentData->options[3].value.boolValue == true)
#define IS_MIRRORED() (persistentData->options[4].value.boolValue == true)
constexpr coord_t border = 10;
const uint8_t LBM_LAYOUT_2x2[] = {
#include "mask_layout2x2.lbm"
};
@@ -64,20 +66,20 @@ class Layout2x2: public Layout
rect_t getZone(unsigned int index) const override
{
rect_t zone;
zone.w = (LCD_W-3*10) / 2;
zone.x = (index & 1) ? 20 + zone.w : 10;
if (persistentData->options[0].value.boolValue) {
zone.h = (LCD_H-MENU_HEADER_HEIGHT-3*10) / 2;
zone.y = MENU_HEADER_HEIGHT + 10;
}
else {
zone.h = (LCD_H-3*10) / 2;
zone.y = 10;
}
if (index >= 2) {
zone.y += 10 + zone.h;
}
if (IS_MIRRORED())
index = 3 - index;
rect_t zone = getMainZone({border, border, LCD_W - 2 * border, LCD_H - 2 * border});
zone.w /= 2;
zone.h /= 2;
if (index == 1 || index == 3)
zone.y += zone.h;
if (index > 1)
zone.x += zone.w;
return zone;
}
};
+21 -48
View File
@@ -20,6 +20,14 @@
#include "opentx.h"
#define HAS_TOPBAR() (persistentData->options[0].value.boolValue == true)
#define HAS_FM() (persistentData->options[1].value.boolValue == true)
#define HAS_SLIDERS() (persistentData->options[2].value.boolValue == true)
#define HAS_TRIMS() (persistentData->options[3].value.boolValue == true)
#define IS_MIRRORED() (persistentData->options[4].value.boolValue == true)
constexpr coord_t border = 10;
const uint8_t LBM_LAYOUT_2x4[] = {
#include "mask_layout2x4.lbm"
};
@@ -61,56 +69,21 @@ class Layout2x4: public Layout
rect_t getZone(unsigned int index) const override
{
rect_t zone;
zone.x = (index >= 4) ? 260 : 60;
zone.y = 56 + (index % 4) * 42;
zone.w = 160;
zone.h = 32;
if (IS_MIRRORED())
index = 7 - index;
rect_t zone = getMainZone({border, border, LCD_W - 2 * border, LCD_H - 2 * border});
zone.w /= 2;
zone.h /= 4;
if (index > 3)
zone.x += zone.w;
zone.y += (index % 4) * zone.h;
return zone;
}
// virtual void refresh();
};
//void Layout2x4::refresh()
//{
// theme->drawBackground();
//
// if (persistentData->options[0].value.boolValue) {
// drawTopBar();
// }
//
// if (persistentData->options[1].value.boolValue) {
// // Flight mode
// lcdDrawSizedText(LCD_W / 2 - getTextWidth(g_model.flightModeData[mixerCurrentFlightMode].name,
// sizeof(g_model.flightModeData[mixerCurrentFlightMode].name),
// ZCHAR | FONT(XS)) / 2,
// 232,
// g_model.flightModeData[mixerCurrentFlightMode].name,
// sizeof(g_model.flightModeData[mixerCurrentFlightMode].name), ZCHAR | FONT(XS));
// }
//
// if (persistentData->options[2].value.boolValue) {
// // Pots and rear sliders positions
// drawMainPots();
// }
//
// if (persistentData->options[3].value.boolValue) {
// // Trims
// drawTrims(mixerCurrentFlightMode);
// }
//
// if (persistentData->options[4].value.boolValue) {
// lcdSetColor(persistentData->options[5].value.unsignedValue);
// lcdDrawSolidFilledRect(50, 50, 180, 170, CUSTOM_COLOR);
// }
//
// if (persistentData->options[6].value.boolValue) {
// lcdSetColor(persistentData->options[7].value.unsignedValue);
// lcdDrawSolidFilledRect(250, 50, 180, 170, CUSTOM_COLOR);
// }
//
// Layout::refresh();
//}
BaseLayoutFactory<Layout2x4> layout2x4("Layout2x4", "2 x 4", LBM_LAYOUT_2x4, OPTIONS_LAYOUT_2x4);