lcdMenu/README.md

104 lines
3.6 KiB
Markdown
Raw Normal View History

# lcdMenu
2024-10-30 19:41:28 +00:00
A micropython library, which supports vertical and horizontal scrolling through menu items on both 2x16 and 4x20 liquid crystal displays
This project is the completely rewritten successor of my old (and now archived) [ProgramChooser](/BlueFox/ProgramChooser) library.
It is now production-ready (tested on 2x16 displays only at the moment.) ToDo: Make the README.md also seem production ready!
## Roadmap
- [x] forward, backward and select button
- [x] support for horizontal and vertical scrolling
2024-11-01 21:08:36 +00:00
- [x] support for both 2x16 and 4x20 LCDs
- [x] a reliable order of the menu items
- [x] good documentation for all of this (maybe through examples)
- [x] show an exit screen when a specific exit code is returned by a callback function
- [x] make the menu itself exitable (to enable stuff like submenus, etc.)
- [x] make the project a valid python package
## Gallery
Here are some of examples of how a lcdMenu will look, showcasing the amount of options you have with lcdMenu. Currently, as the library is only tested with 2x16 displays, these are the only ones showing up below - but on 4x20, it should look the same except it's bigger!
<table>
<tr>
<th>Scroll direction</th>
<th>Cycling</th>
<th>Title shown</th>
<th>Initial selection</th>
<th>Result</th>
</tr>
<tr>
<td>horizontal</td>
<td>yes</td>
<td>yes</td>
<td>first</td>
<td><img src="images/2x16-title-horizontal.jpg" alt="With title, middle item -> forward and backward, horizontal scrolling"></td>
</tr>
<tr>
<td>vertical</td>
<td>yes</td>
<td>no</td>
<td>first</td>
<td><img src="images/2x16-title-vertical-up-down-cycling.jpg" alt="No title, first item & cycling on -> up & down, vertical scrolling"/></td>
</tr>
<tr>
<td>vertical</td>
<td>no</td>
<td>no</td>
<td>first</td>
<td><img src="images/2x16-no-title-vertical-only-down.jpg" alt="No title, first item &amp; no cycling -&gt; only down, vertical scrolling"></td>
</tr>
<tr>
<td>vertical</td>
<td>no</td>
<td>no</td>
<td>middle</td>
<td><img src="images/2x16-no-title-vertical-up-down.jpg" alt="No title, middle item -&gt; up &amp; down, vertical scrolling"></td>
</tr>
<tr>
<td>vertical</td>
<td>no</td>
<td>no</td>
<td>last</td>
<td><img src="images/2x16-no-title-vertical-only-up.jpg" alt="No title, last item &amp; no cycling -&gt; only up, vertical scrolling"></td>
</tr>
<tr>
<td>vertical</td>
<td>no</td>
<td>yes</td>
<td>no options (first and last)</td>
<td><img src="images/2x16-title-vertical-no-options.jpg" alt="With title, only one option, vertical scrolling"></td>
</tr>
<tr>
<td>vertical</td>
<td>no</td>
<td>yes</td>
<td>first</td>
<td><img src="images/2x16-title-vertical-only-down.jpg" alt="With title, first item & no cycling -> only down, vertical scrolling"></td>
</tr>
<tr>
<td>vertical</td>
<td>no</td>
<td>yes</td>
<td>middle</td>
<td><img src="images/2x16-title-vertical-up-down.jpg" alt="With title, middle item -> up & down, vertical scrolling"></td>
</tr>
<tr>
<td>vertical</td>
<td>no</td>
<td>yes</td>
<td>last</td>
<td><img src="images/2x16-title-vertical-only-up.jpg" alt="With title, last item & no cycling -> only up, vertical scrolling"></td>
</tr>
</table>
## License
This project is licensed under the GPL-v3-or-later. A copy can be found [here](LICENSE).