Since I made some fixes and used the code in my own project to implement a settings menu, I wanted to share it with everyone here.
The original repo is a little bit behind, so here's a link to my fork:
https://github.com/flowstatedev/Dmenu [IMG2=JSON]{"data-align":"none","data-size":"full","src":"https:\/\/i.postimg.cc\/fRN55XY3\/dmenu-f3.png"}[/IMG2]
Features
- Supports all watches, including CIQ1/2 devices
- Looks like the native menu on modern watches (645, VA3, 935, Fenix 5)
- Supports adding/deleting/changing items on the fly (after menu has been created)
- Supports sub labels. Each item has a title and sub label
- Supports icons or anything else you want to draw (like checkboxes), by overriding the item's draw() function. This way you can have items that draw themselves dynamically.
- Proper touchscreen support: swipe UP/DOWN to scroll; or tap above/below center item. Just like native menus on VAHR, FR630, etc.
The one major problem is that animation doesn't work on older watches, but that is a firmware issue. To that end, I have disabled animation by default in the code.
Other known issues
- All 3 items are the same size. In the real watch the middle item should be about 40% of the total height.
- Dynamic Menu looks the same on all watches, which is okay if you have a Fenix 3 or modern watch. If you have a 230/630/etc., it will look different than the native menus.
(Sorry for the repost, but maybe it wasn't clear what Dynamic Menu does in the previous post.)