PIPKIT · Core
Базовые helpers, на которых держится остальной GUI.
Здесь без пересказа собраны базовые helpers из API.md: размеры, цвет, очистка, clip, derive() и adaptive preview.
5. Базовые helpers
5.1. Размеры
ui.screenWidth(); // ширина вашего экрана
ui.screenHeight(); // высота вашего экрана
screenWidth()иscreenHeight()возвращают уже активный логический размер экрана- удобно для центровки, адаптивных отступов и расчёта layout без хардкода
5.2. Цвет
ui.rgb(255, 255, 255);
0xFFFF; // RGB565
0xFF6200; // RGB888
- Библиотека поддерживает два практических способа задания цвета:
ui.rgb(r, g, b)- обычный и основной способ. На вход подаётсяRGB888, на выходе получаетсяRGB565.- прямой hex-литерал - если ты уже знаешь нужное значение заранее
- если метод принимает
uint16_t, туда нужно передаватьRGB565 - если метод принимает
uint32_t, туда нужно передаватьRGB888в виде0xRRGGBB
Для повторно используемых системных accent-цветов есть короткие semantic-токены:
Warning; // #FF6200
Error; // #FF0048
- их можно передавать в
color(...),fillColor(...),bgColor(...)и другие места, где ожидаетсяRGB565
5.3. Очистка экрана
ui.clear(ui.rgb(0, 0, 0));
- очищает весь текущий draw target указанным цветом
5.4. Клип
ui.setClip()
.pos(10, 20)
.size(120, 80);
// ... рисование только внутри области ...
ui.clearClip();
setClip()ограничивает всю последующую отрисовку прямоугольной областью- удобно для локальных redraw, списков, анимаций и виджетов в карточках
clearClip()возвращает обычную отрисовку без ограничений
5.5. Наследование стиля fluent
У 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 между текущим физическим экраном и указанным минимумом- при этом
screenWidth()иscreenHeight()реально меняются, поэтому layout пересчитывается по-настоящему - это не замена
configDisplay().size(...)и не перенастройка самой панели: физический дисплей остаётся тем же, меняется только логический viewport GUI clearAdaptivePreview()выключает этот режим и возвращает обычный размер экрана