Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/compile-arduino.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ jobs:
- name: SSD1803A_I2C
- name: DHT sensor library
- name: Adafruit Unified Sensor
- name: U8g2

UNIVERSAL_SKETCH_PATHS: |
- examples/Basic
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

LcdMenu is an open-source Arduino library for creating menu systems. It is designed to be easy to use and flexible enough to support a wide range of use cases.

With LcdMenu, you can create a menu system for your Arduino project with minimal effort. The library provides a simple API for creating menus and handling user input. There are also a number of built-in [display interfaces](reference/api/display/index) to choose from, including LCD displays and OLED displays _(coming soon)_.
With LcdMenu, you can create a menu system for your Arduino project with minimal effort. The library provides a simple API for creating menus and handling user input. There are also a number of built-in [display interfaces](reference/api/display/index) to choose from, including classic character LCDs and graphical displays powered by U8g2 (for example SSD1306 and ST7920 modules).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Relative docs link won't resolve on GitHub's README view.

[display interfaces](reference/api/display/index) is a Sphinx-style intra-doc link — GitHub will render it as https://github.com/forntoh/LcdMenu/blob/.../reference/api/display/index, which 404s. Since this README is the primary entry point on GitHub, consider an absolute URL to the hosted docs so readers clicking from GitHub land on a real page.

🔗 Proposed fix
-With LcdMenu, you can create a menu system for your Arduino project with minimal effort. The library provides a simple API for creating menus and handling user input. There are also a number of built-in [display interfaces](reference/api/display/index) to choose from, including classic character LCDs and graphical displays powered by U8g2 (for example SSD1306 and ST7920 modules).
+With LcdMenu, you can create a menu system for your Arduino project with minimal effort. The library provides a simple API for creating menus and handling user input. There are also a number of built-in [display interfaces](https://lcdmenu.forntoh.dev/reference/api/display/index.html) to choose from, including classic character LCDs and graphical displays powered by U8g2 (for example SSD1306 and ST7920 modules).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 26, The README contains a Sphinx-style relative link
"[display interfaces](reference/api/display/index)" that won't resolve on
GitHub; update the link in README.md (the line containing that link text) to an
absolute HTTPS URL pointing to the hosted documentation page (e.g. the canonical
docs site URL + /reference/api/display/index) so clicks from GitHub go to a real
page, and check/replace any other similar relative intra-doc links in README.md
with their corresponding absolute hosted-docs URLs.


<p align="center">
<img src="https://i.imgur.com/nViET8b.gif" alt="Example of a menu system created with LcdMenu">
Expand Down
40 changes: 40 additions & 0 deletions docs/source/overview/rendering/graphical-display.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
Graphical display renderer
==========================

The graphical display renderer targets pixel-addressable displays through
:cpp:class:`GraphicalDisplayInterface`.

It is designed for U8g2-driven modules, including OLED displays such as
SSD1306 and monochrome graphical LCDs such as ST7920.

Features
--------

- Dynamic row and column calculation from the active font metrics
- Row highlighting for selection and value-area highlighting while editing
- Checkbox rendering for boolean items and toggles
- Scrollbar and value indicators for widget-driven items
- Buffered drawing with renderer-managed frame flushing
- Per-item custom fonts (any U8g2 font)

Basic usage
-----------

.. code-block:: cpp

#include <U8g2lib.h>
#include <display/U8g2DisplayAdapter.h>
#include <renderer/GraphicalDisplayRenderer.h>

U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);
U8g2DisplayAdapter display(&u8g2);
GraphicalDisplayRenderer renderer(&display, u8g2_font_6x10_tf);

MENU_SCREEN(mainScreen, mainItems,
ITEM_FONT(ITEM_LABEL("Overview"), u8g2_font_7x13B_tf),
ITEM_BOOL("Enabled", true, "ON", "OFF", nullptr));

void setup() {
renderer.begin();
renderer.setItemFont(mainItems[1], u8g2_font_6x13_tf);
}
Comment thread
forntoh marked this conversation as resolved.
1 change: 1 addition & 0 deletions docs/source/overview/rendering/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ For example, you could create a renderer for a TFT display, a touchscreen, or ev
:caption: The library comes with the following built-in renderers:

character-display
graphical-display

Don't see a renderer for your favorite output device? Feel free to create a new one and share it with the community!

Expand Down
Loading
Loading