This example demonstrates how to customize the focus indicator.
#include <LiquidCrystal.h>
#include "Button.h"
const byte LCD_RS = 12;
const byte LCD_E = 11;
const byte LCD_D4 = 5;
const byte LCD_D5 = 4;
const byte LCD_D6 = 3;
const byte LCD_D7 = 2;
LiquidCrystal lcd(LCD_RS, LCD_E, LCD_D4, LCD_D5, LCD_D6, LCD_D7);
const bool pullup = true;
Button left(A0, pullup);
Button right(7, pullup);
Button enter(10, pullup);
LiquidScreen leftright_screen(leftFocus_line, rightFocus_line);
LiquidLine customFocus_line(1, 0,
"Custom focus");
void buttonsCheck() {
if (right.check() == LOW) {
menu.next_screen();
}
if (left.check() == LOW) {
menu.previous_screen();
}
if (enter.check() == LOW) {
menu.switch_focus();
}
}
uint8_t rFocus[8] = {
0b00000,
0b00000,
0b00100,
0b01110,
0b00100,
0b00000,
0b00000,
0b00000
};
void func() {
return;
}
void setup() {
Serial.begin(250000);
lcd.begin(16, 2);
menu.set_focusSymbol(Position::RIGHT, rFocus);
leftFocus_line.set_focusPosition(Position::LEFT);
rightFocus_line.set_focusPosition(Position::RIGHT);
customFocus_line.set_focusPosition(Position::CUSTOM, 15, 0);
leftF12_screen.set_focusPosition(Position::LEFT);
leftFocus_line.attach_function(1, func);
rightFocus_line.attach_function(1, func);
customFocus_line.attach_function(1, func);
leftF1_line.attach_function(1, func);
leftF2_line.attach_function(1, func);
menu.add_screen(welcome_screen);
menu.add_screen(leftright_screen);
menu.add_screen(customFocus_screen);
menu.add_screen(leftright_screen);
menu.add_screen(leftF12_screen);
menu.update();
}
void loop() {
buttonsCheck();
}