Базовые helpers, на которых держится остальной GUI.

Здесь собраны базовые helpers из PipKit API: размеры, цвет, очистка, clip, derive() и adaptive preview.

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.