LCDGFX LCD display driver  1.2.0
Lightweight graphics library for SSD1306, SSD1325, SSD1327, SSD1331, SSD1351, SH1106, SH1107, IL9163, ST7735, ST7789, ILI9341, PCD8544 displays over I2C/SPI
GUI widgets

lcdgfx ships a small set of GUI widgets that work on every supported display (mono OLED through 16-bit TFT) and require no dynamic memory. All widgets share the same lifecycle:

display.begin();
display.fill(0x00);
widget.show(display); // initial render
// ... on user input:
widget.up(); widget.show(display);
widget.down(); widget.show(display);
Widget Header Example
LcdGfxMenu v2/gui/menu.h examples/gui/menu_demo
LcdGfxCheckboxMenu v2/gui/checkbox_menu.h examples/gui/checkbox_demo
LcdGfxButton v2/gui/button.h examples/gui/button_demo
LcdGfxSlider v2/gui/slider.h examples/gui/slider_demo
LcdGfxSpinbox v2/gui/spinbox.h examples/gui/spinbox_demo
LcdGfxTextEntry v2/gui/text_entry.h examples/gui/text_entry_demo
LcdGfxYesNo v2/gui/yesno.h examples/gui/yesno_demo

Touch

Menus accept touch coordinates through onTouch(x, y) / itemAtPoint(x, y); see examples/gui/menu_touch_demo. Touch samples come from any source — typically the bundled `LcdGfxXpt2046` driver.

UTF-8

LcdGfxTextEntry cycles through a charset you provide. To accept Cyrillic input, point the widget's secondary font at ssd1306xled_font6x8_Cyrillic and feed UTF-8 codepoints — the stateless decoder lives in canvas/font_utf8.h.