dbf850c434
- M5 Unit Modules library + M5 Unit Test app - Minor fixes for TodoList, TwoEleven, Snake, Brainfuck and Breakout - Fixed SerialConsole to use the uart controller as it was broken in one of the many updates - Fixed keyboard input in TwoEleven, Breakout, Magic8Ball and Snake - Bluetooth Media Keys app, supports pressing physical keys to trigger the corresponding buttonmatrix button - Epub Reader app
40 lines
1.5 KiB
C
40 lines
1.5 KiB
C
#pragma once
|
|
#include <lvgl.h>
|
|
#include <tactility/lvgl_fonts.h>
|
|
|
|
// Device screen widths in default (portrait) orientation:
|
|
// tiny < 200 : small OLEDs, custom breadboard devices
|
|
// medium 200-399: M5Stack Core2, Cardputer (~240w)
|
|
// large 400-539: 800x480 devices (~480w portrait)
|
|
// large 540-719: M5PaperS3 (540w), 1024x600 (600w portrait)
|
|
// xlarge 720+ : Tab5 (720w portrait, 1280w landscape)
|
|
// uiW() reflects the actual rendered orientation (landscape flips w/h).
|
|
|
|
static constexpr lv_coord_t UI_TINY_THRESHOLD = 200;
|
|
static constexpr lv_coord_t UI_MEDIUM_THRESHOLD = 400;
|
|
static constexpr lv_coord_t UI_LARGE_THRESHOLD = 540;
|
|
|
|
inline lv_coord_t uiW() { return lv_display_get_horizontal_resolution(nullptr); }
|
|
inline lv_coord_t uiH() { return lv_display_get_vertical_resolution(nullptr); }
|
|
inline lv_coord_t uiShortSide() { lv_coord_t w = uiW(), h = uiH(); return w < h ? w : h; }
|
|
|
|
inline int uiPad() {
|
|
lv_coord_t w = uiW();
|
|
if (w < UI_TINY_THRESHOLD) return 4;
|
|
if (w < UI_MEDIUM_THRESHOLD) return 8;
|
|
if (w < UI_LARGE_THRESHOLD) return 12;
|
|
return 16;
|
|
}
|
|
inline int uiRowGap() {
|
|
lv_coord_t w = uiW();
|
|
if (w < UI_TINY_THRESHOLD) return 3;
|
|
if (w < UI_MEDIUM_THRESHOLD) return 6;
|
|
if (w < UI_LARGE_THRESHOLD) return 8;
|
|
return 12;
|
|
}
|
|
inline int uiCols() { return uiW() >= UI_TINY_THRESHOLD ? 2 : 1; }
|
|
inline enum LvglFontSize uiFont() {
|
|
lv_coord_t w = uiW();
|
|
return w < UI_TINY_THRESHOLD ? FONT_SIZE_SMALL : (w < UI_LARGE_THRESHOLD ? FONT_SIZE_DEFAULT : FONT_SIZE_LARGE);
|
|
}
|