5. Базовые helpers
5.1. Размеры
ui.screenWidth(); // ширина вашего экрана
ui.screenHeight(); // высота вашего экрана
- Возвращают уже активный логический размер экрана.
- Удобно для центровки, адаптивных отступов и расчёта layout без хардкода.
5.2. Цвет
ui.rgb(255, 255, 255);
0xFFFF; // RGB565
0xFF6200; // RGB888
ui.rgb(r, g, b)— на вход подаётсяRGB888, на выходе получаетсяRGB565.- Прямой hex-литерал используется, если значение известно заранее.
Системные semantic-токены:
Warning; // #FF6200
Error; // #FF0048
Их можно передавать в color(...), fillColor(...), bgColor(...) и другие методы.
5.3. Очистка экрана
ui.clear(ui.rgb(0, 0, 0));
Очищает весь текущий draw target указанным цветом.
5.4. Клип (Clip)
ui.setClip()
.pos(10, 20)
.size(120, 80);
// ... рисование только внутри области ...
ui.clearClip();
setClip()ограничивает всю последующую отрисовку прямоугольной областью.- Удобно для локальных redraw, списков и анимаций.
clearClip()возвращает обычную отрисовку без ограничений.
5.5. Наследование стиля (fluent derive)
У fluent-объектов есть derive(). Это позволяет собрать базовый стиль один раз, а потом сделать на его основе несколько вариантов.
Пример:
auto base = ui.drawButton()
.size(120, 40)
.baseColor(ui.rgb(0, 120, 255))
.radius(10);
auto compact = base.derive()
.size(96, 34);
base.label("Main").pos(20, 160);
compact.label("Mini").pos(20, 210);
После derive() исходный fluent становится шаблоном.
5.6. Adaptive preview
ui.setAdaptivePreview(240, 135, 7200);
ui.clearAdaptivePreview();
- Debug-helper для проверки адаптивности интерфейса.
setAdaptivePreview(minWidth, minHeight, cycleMs)плавно меняет логический размер GUI.- Физический дисплей остаётся тем же, меняется только логический viewport.