diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc index d41eef107..941804319 100644 --- a/companion/src/companion.qrc +++ b/companion/src/companion.qrc @@ -1063,6 +1063,7 @@ images/layouts/mask_layout1x2.png images/layouts/mask_layout1x3.png images/layouts/mask_layout1x4.png + images/layouts/mask_layout1x6.png images/layouts/mask_layout2+1.png images/layouts/mask_layout2+3.png images/layouts/mask_layout2x1.png diff --git a/companion/src/images/layouts/mask_layout1x6.png b/companion/src/images/layouts/mask_layout1x6.png new file mode 100644 index 000000000..92f7b70fb Binary files /dev/null and b/companion/src/images/layouts/mask_layout1x6.png differ diff --git a/radio/src/gui/colorlcd/layouts/layout6x1.cpp b/radio/src/gui/colorlcd/layouts/layout1x6.cpp similarity index 78% rename from radio/src/gui/colorlcd/layouts/layout6x1.cpp rename to radio/src/gui/colorlcd/layouts/layout1x6.cpp index 91101ccae..634b2009a 100644 --- a/radio/src/gui/colorlcd/layouts/layout6x1.cpp +++ b/radio/src/gui/colorlcd/layouts/layout1x6.cpp @@ -77,21 +77,19 @@ class Layout6x1 : public Layout } }; -// Zone map: 6x1 (6 rows, 1 column) +// Zone map: 6x1 (1 column, 6 rows) // Each zone is 1/6 height, full width -#define LAYOUT_MAP_1_6TH 10 // 1/6 of full dimension (60/6 = 10) - // clang-format off static const uint8_t zmap[] = { // Zone positions: x, y, w, h - LAYOUT_MAP_0, LAYOUT_MAP_0, LAYOUT_MAP_FULL, LAYOUT_MAP_1_6TH, // Zone 1 - LAYOUT_MAP_0, LAYOUT_MAP_1_6TH, LAYOUT_MAP_FULL, LAYOUT_MAP_1_6TH, // Zone 2 - LAYOUT_MAP_0, LAYOUT_MAP_1_6TH*2,LAYOUT_MAP_FULL, LAYOUT_MAP_1_6TH, // Zone 3 - LAYOUT_MAP_0, LAYOUT_MAP_1_6TH*3,LAYOUT_MAP_FULL, LAYOUT_MAP_1_6TH, // Zone 4 - LAYOUT_MAP_0, LAYOUT_MAP_1_6TH*4,LAYOUT_MAP_FULL, LAYOUT_MAP_1_6TH, // Zone 5 - LAYOUT_MAP_0, LAYOUT_MAP_1_6TH*5,LAYOUT_MAP_FULL, LAYOUT_MAP_1_6TH, // Zone 6 + LAYOUT_MAP_0, LAYOUT_MAP_0, LAYOUT_MAP_FULL, LAYOUT_MAP_1SIXTH, // Zone 1 + LAYOUT_MAP_0, LAYOUT_MAP_1SIXTH, LAYOUT_MAP_FULL, LAYOUT_MAP_1SIXTH, // Zone 2 + LAYOUT_MAP_0, LAYOUT_MAP_1THIRD, LAYOUT_MAP_FULL, LAYOUT_MAP_1SIXTH, // Zone 3 + LAYOUT_MAP_0, LAYOUT_MAP_HALF, LAYOUT_MAP_FULL, LAYOUT_MAP_1SIXTH, // Zone 4 + LAYOUT_MAP_0, LAYOUT_MAP_2THIRD, LAYOUT_MAP_FULL, LAYOUT_MAP_1SIXTH, // Zone 5 + LAYOUT_MAP_0, LAYOUT_MAP_5SIXTH, LAYOUT_MAP_FULL, LAYOUT_MAP_1SIXTH, // Zone 6 }; // clang-format on -BaseLayoutFactory layout6x1("Layout6x1", "6 x 1", OPTIONS_LAYOUT_6x1, +BaseLayoutFactory layout1x6("Layout1x6", "1 x 6", OPTIONS_LAYOUT_6x1, 6, (uint8_t*)zmap); diff --git a/radio/src/gui/colorlcd/mainview/layout.h b/radio/src/gui/colorlcd/mainview/layout.h index 7c4b9a247..0c3a7f246 100644 --- a/radio/src/gui/colorlcd/mainview/layout.h +++ b/radio/src/gui/colorlcd/mainview/layout.h @@ -73,11 +73,17 @@ extern const LayoutOption defaultLayoutOptions[]; #define LAYOUT_MAP_DIV 60 #define LAYOUT_MAP_0 0 -#define LAYOUT_MAP_1QTR 15 -#define LAYOUT_MAP_1THIRD 20 -#define LAYOUT_MAP_HALF 30 -#define LAYOUT_MAP_2THIRD 40 -#define LAYOUT_MAP_3QTR 45 +#define LAYOUT_MAP_1SIXTH 10 // 1/6 +#define LAYOUT_MAP_1FIFTH 12 // 1/5 +#define LAYOUT_MAP_1QTR 15 // 1/4 +#define LAYOUT_MAP_2FIFTH 24 // 2/5 +#define LAYOUT_MAP_1THIRD 20 // 1/3 +#define LAYOUT_MAP_HALF 30 // 1/2 +#define LAYOUT_MAP_3FIFTH 36 // 3/5 +#define LAYOUT_MAP_2THIRD 40 // 2/3 +#define LAYOUT_MAP_3QTR 45 // 3/4 +#define LAYOUT_MAP_4FIFTH 48 // 4/5 +#define LAYOUT_MAP_5SIXTH 50 // 5/6 #define LAYOUT_MAP_FULL 60 //----------------------------------------------------------------------------- diff --git a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp index 7f8eee708..21ff6e177 100644 --- a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp @@ -565,7 +565,11 @@ void r_screen_id(void* user, uint8_t* data, uint32_t bitoffs, auto tw = reinterpret_cast(user); auto screenData = g_model.getScreenData(tw->getElmts(1)); - screenData->LayoutId = val; + // Convert renamed layout (TODO: remove in the future) + if (strncmp(val, "Layout6x1", 9) == 0) + screenData->LayoutId ="Layout1x6"; + else + screenData->LayoutId = val; } bool w_screen_id(void* user, uint8_t* data, uint32_t bitoffs,