Класс LiquidMenu из Arduino библиотеки LiquidMenu для создания меню на LCD дисплее
Данный класс представляет собой коллекцию экранов, формирующих меню.
#include <LiquidMenu.h>
Меню состоит из объектов LiquidScreen. Он содержит указатели на них и вызывает их функции в зависимости от того, какой из них активен. Данный класс используется для управления. Также можно использовать несколько меню, в этом случае объекты данного класса попадают в объект LiquidSystem, который контролирует их, используя те же публичные методы.
Содержание
Дружественные классы
class LiquidSystem
Конструкторы
LiquidMenu()-
Основной конструктор. Это главный конструктор, который вызывается каждый раз.
Синтаксис
LiquidMenu::LiquidMenu(DisplayClass & liquidCrystal, uint8_t startingScreen = 1 )Параметры
&liquidCrystal– указатель на объект класса DisplayClass;startingScreen– номер экрана, который будет показан первым.
LiquidMenu()-
Конструктор с одним объектом
LiquidScreen.Синтаксис
LiquidMenu::LiquidMenu(DisplayClass & liquidCrystal, LiquidScreen & liquidScreen, uint8_t startingScreen = 1 )Параметры
&liquidCrystal– указатель на объект классаDisplayClass;&liquidScreen– указатель на объектLiquidScreen;startingScreen– номер экрана, который будет показан первым.
LiquidMenu()-
Конструктор с двумя объектами
LiquidScreen.Синтаксис
LiquidMenu::LiquidMenu(DisplayClass & liquidCrystal, LiquidScreen & liquidScreen1, LiquidScreen & liquidScreen2, uint8_t startingScreen = 1 )Параметры
&liquidCrystal– указатель на объект классаDisplayClass;&liquidScreen1– указатель на объектLiquidScreen;&liquidScreen2– указатель на объектLiquidScreen;startingScreen– номер экрана, который будет показан первым.
LiquidMenu()-
Конструктор с тремя объектами
LiquidScreen.Синтаксис
LiquidMenu::LiquidMenu(DisplayClass & liquidCrystal, LiquidScreen & liquidScreen1, LiquidScreen & liquidScreen2, LiquidScreen & liquidScreen3, uint8_t startingScreen = 1 )Параметры
&liquidCrystal– указатель на объект классаDisplayClass;&liquidScreen1– указатель на объектLiquidScreen;&liquidScreen2– указатель на объектLiquidScreen;&liquidScreen3– указатель на объектLiquidScreen;startingScreen– номер экрана, который будет показан первым.
LiquidMenu()-
Конструктор с четырьмя объектами
LiquidScreen.Синтаксис
LiquidMenu::LiquidMenu(DisplayClass & liquidCrystal, LiquidScreen & liquidScreen1, LiquidScreen & liquidScreen2, LiquidScreen & liquidScreen3, LiquidScreen & liquidScreen4, uint8_t startingScreen = 1 )Параметры
&liquidCrystal– указатель на объект классаDisplayClass;&liquidScreen1– указатель на объектLiquidScreen;&liquidScreen2– указатель на объектLiquidScreen;&liquidScreen3– указатель на объектLiquidScreen;&liquidScreen4– указатель на объектLiquidScreen;startingScreen– номер экрана, который будет показан первым.
Публичные методы
add_screen()-
Добавляет объект
LiquidScreenв меню.Синтаксис
bool LiquidMenu::add_screen(LiquidScreen & liquidScreen)Параметры
&liquidScreen– указатель на объектLiquidScreen.Возвращает
trueв случае успеха иfalse, если максимальное количество экранов уже было достигнуто.Примечание
Максимальное количество экранов на меню указывается в LiquidMenu_config.h как
MAX_SCREENS. По умолчанию равно 16. call_function()-
Вызывает прикрепленную функцию, указанную номером.
Вызывает функцию, указанную аргументом
numberдля текущего экрана и для выделенной строки.Синтаксис
bool LiquidMenu::call_function(uint8_t number) constПараметры
number– номер функции в массиве.
Возвращает
true, если функция с указанным номером существует.Примечание
Нумерация функций начинается с 1.
change_screen()-
Переключает на указанный экран.
Синтаксис
bool LiquidMenu::change_screen(LiquidScreen & p_liquidScreen) bool LiquidMenu::change_screen(uint8_t number)Параметры
&p_liquidScreen– указатель на объектLiquidScreen;number– номер экрана.
Возвращает
trueв случае успеха иfalse, если экран не найден, или номер экрана неправильный. init()-
Инициализирует объект меню.
Вызовите данный метод, чтобы полностью инициализировать объект меню.
Синтаксис
void LiquidMenu::init() constПримечание
Необходим при использовании I2C библиотеки дисплея.
next_screen()-
Переключает на следующий экран.
Синтаксис
void LiquidMenu::next_screen() operator++()-
Переключает на следующий экран.
Синтаксис
void LiquidMenu::operator++()Примечание
Оператор префиксного инкремента перезагружен.
operator++()-
Переключает на следующий экран.
Синтаксис
void LiquidMenu::operator++(int)Примечание
Оператор постфиксного инкремента перезагружен.
operator--()-
Переключает на предыдущий экран.
Синтаксис
void LiquidMenu::operator--()Примечание
Оператор префиксного декремента перезагружен.
operator--()-
Переключает на предыдущий экран.
Синтаксис
void LiquidMenu::operator--(int)Примечание
Оператор постфиксного декремента перезагружен.
operator=()-
Переключает на указанный экран.
Синтаксис
bool LiquidMenu::operator=(LiquidScreen & p_liquidScreen) bool LiquidMenu::operator=(uint8_t number)Параметры
&p_liquidScreen– указатель на объектLiquidScreen;number– номер экрана.
Возвращает
trueв случае успеха иfalse, если экран не найден, или номер экрана неправильный. previous_screen()-
Переключает на предыдущий экран.
Синтаксис
void LiquidMenu::previous_screen() set_focusPosition()-
Устанавливает позицию фокуса для всего меню за раз.
Допустимые значения –
LEFTиRIGHT. ПозицияCUSTOMявляется не допустимой для данной функции, поскольку ей необходимо индивидуальное указание строки и столбца для каждой строки.Синтаксис
bool LiquidMenu::set_focusPosition(Position position)Параметры
position–LEFTилиRIGHT.
Возвращает
trueв случае успеха иfalse, если позиция указана неправильно.Примечание
Position– это класс перечисления. При указании позиции используйтеPosition::(член класса). set_focusSymbol()-
Изменяет символ индикатора фокуса.
Символ изменяется для конкретной позиции.
Синтаксис
bool LiquidMenu::set_focusSymbol(Position position, uint8_t symbol[8] )Параметры
position– позиция, для которой должен быть изменен символ;symbol[]– символ.
Возвращает
trueв случае успеха иfalse, если позиция указана неправильно.Примечание
Position– это класс перечисления. При указании позиции используйтеPosition::(член класса). softUpdate()-
Отпечатывает текущий экран на дисплее (без очистки).
Вызывайте данный метод, когда изменение в какой-либо прикрепленной переменной или новые символы полностью покрывают старые символы.
Синтаксис
void LiquidMenu::softUpdate() constПримечание
Данный метод не очищает дисплей.
switch_focus()-
Переключает фокус.
Переключает фоку к следующей или предыдущей строке в соответствии с переданным параметром.
Синтаксис
void LiquidMenu::switch_focus(bool forward = true)Параметры
forward–trueдля движения вперед,falseдля движения назад. update()-
Отпечатывает текущий экран на дисплее.
Вызывайте данный метод при изменении какой-либо прикрепленной переменной.
Синтаксис
void LiquidMenu::update() const
