2024-10-31 09:13:13 +00:00
# lcdMenu
2024-10-30 19:41:28 +00:00
2024-10-31 17:03:30 +00:00
A micropython library, which supports vertical and horizontal scrolling through menu items on both 2x16 and 4x20 liquid crystal displays
2024-10-31 17:07:00 +00:00
This project is the completely rewritten successor of my old (and now archived) [ProgramChooser ](/BlueFox/ProgramChooser ) library.
2024-11-12 21:17:06 +00:00
It is now production-ready (tested on 2x16 displays only at the moment.) ToDo: Make the README.md also seem production ready!
2024-10-31 17:03:30 +00:00
2024-11-13 20:59:07 +00:00
2024-10-31 17:26:16 +00:00
## Roadmap
2024-10-31 17:03:30 +00:00
2024-11-01 16:39:23 +00:00
- [x] forward, backward and select button
2024-11-12 20:26:34 +00:00
- [x] support for horizontal and vertical scrolling
2024-11-01 21:08:36 +00:00
- [x] support for both 2x16 and 4x20 LCDs
2024-11-01 16:39:23 +00:00
- [x] a reliable order of the menu items
2024-11-12 20:26:34 +00:00
- [x] good documentation for all of this (maybe through examples)
2024-11-01 16:39:23 +00:00
- [x] show an exit screen when a specific exit code is returned by a callback function
2024-11-12 21:15:15 +00:00
- [x] make the menu itself exitable (to enable stuff like submenus, etc.)
2024-10-31 17:26:16 +00:00
- [x] make the project a valid python package
2024-10-31 17:03:30 +00:00
2024-11-13 20:59:07 +00:00
## Gallery
2024-11-13 21:40:55 +00:00
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!
2024-11-13 20:59:07 +00:00
2024-11-13 21:33:27 +00:00
< table >
< tr >
2024-11-13 21:40:55 +00:00
< th > Scroll direction< / th >
2024-11-13 21:33:27 +00:00
< th > Cycling< / th >
< th > Title shown< / th >
< th > Initial selection< / th >
< th > Result< / th >
< / tr >
< tr >
2024-11-13 21:40:55 +00:00
< td > horizontal< / td >
2024-11-13 21:33:27 +00:00
< td > yes< / td >
2024-11-13 21:40:55 +00:00
< 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 >
2024-11-13 21:33:27 +00:00
< td > vertical< / td >
2024-11-13 21:40:55 +00:00
< td > yes< / td >
< td > no< / td >
2024-11-13 21:33:27 +00:00
< 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 >
2024-11-13 21:40:55 +00:00
< td > vertical< / td >
2024-11-13 21:33:27 +00:00
< 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 & no cycling -> only down, vertical scrolling" > < / td >
< / tr >
< tr >
2024-11-13 21:40:55 +00:00
< td > vertical< / td >
2024-11-13 21:33:27 +00:00
< 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 -> up & down, vertical scrolling" > < / td >
< / tr >
< tr >
2024-11-13 21:40:55 +00:00
< td > vertical< / td >
2024-11-13 21:33:27 +00:00
< 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 & no cycling -> only up, vertical scrolling" > < / td >
< / tr >
< tr >
2024-11-13 21:40:55 +00:00
< td > vertical< / td >
2024-11-13 21:33:27 +00:00
< 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 >
2024-11-13 21:40:55 +00:00
< td > vertical< / td >
2024-11-13 21:33:27 +00:00
< 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 >
2024-11-13 21:40:55 +00:00
< td > vertical< / td >
2024-11-13 21:33:27 +00:00
< 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 >
2024-11-13 21:40:55 +00:00
< td > vertical< / td >
2024-11-13 21:33:27 +00:00
< 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 >
2024-11-13 20:59:07 +00:00
2024-10-31 17:03:30 +00:00
## License
2024-11-12 20:26:34 +00:00
This project is licensed under the GPL-v3-or-later. A copy can be found [here ](LICENSE ).