-
Notifications
You must be signed in to change notification settings - Fork 25
Динамические компоненты
AlexGyver edited this page Oct 2, 2022
·
4 revisions
Библиотека сделана так, что компоненты интерфейса "не существуют" в программе сами по себе, всё что у нас есть - это имена. В конструкторе мы указываем, как будет называться компонент и как он будет выглядеть, а в обработчике действия просто принимаем данные на указанное имя. Это позволяет очень легко генерировать и опрашивать компоненты целыми пачками, например в цикле.
Рассмотрим пример со слайдерами и кнопками, создадим и обработаем клики по ним:
void build() {
GP.BUILD_BEGIN();
GP.THEME(GP_DARK);
// создём слайдеры с именами sld/0, sld/1 ...
for (int i = 0; i < 5; i++) {
GP.SLIDER(String("sld/") + i);
}
// создём кнопки с именами btn/0, btn/1 ...
for (int i = 0; i < 5; i++) {
GP.BUTTON(String("btn/") + i, String("Button ") + i);
}
GP.BUILD_END();
}
void action() {
if (portal.click()) {
if (portal.clickSub("sld")) { // начинается с sld
Serial.print("Slider ");
Serial.print(portal.clickNameSub(1)); // получаем цифру
Serial.print(": ");
Serial.println(portal.getInt());
}
if (portal.clickSub("btn")) { // начинается с btn
Serial.print("Click: ");
Serial.println(portal.clickNameSub(1)); // получаем цифру
}
}
}
Документация в разработке, некоторые ссылки пока никуда не ведут
- Введение
- Действия
- Компоненты
- Файлы
- Системные модули
- Дизайн и вёрстка
- Всякие трюки