Класс 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