Commit graph

15 commits

Author SHA1 Message Date
MatthewColvin
94d75fa4d5 Make Key press sim use SDL event watcher for key event grabbing.
Create a mutex for UI that will help make it possible to run handlers that update UI elements on seprate threads.

its far from perfect but should hold up for now.
2023-10-02 20:41:42 -05:00
MatthewColvin
3bd2b1a98a propigate key events around UI
use key events to add and remove sliders from settings as example
2023-10-01 18:53:25 -05:00
MatthewColvin
a44e92ea5d Add boiler plate Key Handling Into the UI code for UI elements 2023-09-29 16:03:51 -05:00
Matthew Colvin
0796176a0e Add Getters and setters for X and Y values
had to make sure the getters properly calculated layout before retrieving values.

Add a Tab class to allow for better control of adding content into the tabs and managing the contents once its in there.

Use setting class to do a quick demo of the OnShow code abilities. This could be useful for things like settings pages that need to load up HW resources when they are shown but then can power them down when they are hidden.
2023-09-23 01:06:06 -05:00
Matthew Colvin
7c089e395a Add an Helper in UIElement that converts lvgl object into UIElements or children via a static cast.
Make Tabview a friend of Base Page to allow it to notify pages that they are hidden or showing.

Implement the notification in Tabview to allow pages to know they are showing.
2023-09-22 23:36:25 -05:00
Matthew Colvin
1cc65594a9 Added concept of Background Screen that allows for construction of pages before knowing the final parent.
This will allow for easy creation of "pages" that can be layed out internally and passed to different screens and cleaned up when screens are cleaned up by the screen manager

add set width and height to base elements that allow for easy resizing

Create a settings page and make it red.
Test adding 2 tabs with the Page

this currently does not do anything fantastic on simulator but it sets a strong foundation for managing multiple pages
2023-09-22 19:59:24 -05:00
MatthewColvin
7fd53ef2f8 switching computers so just commiting 2023-09-21 19:31:51 -05:00
MatthewColvin
dfbfd7a6a8 Add visiblity API for UIElements
Add ability for Screen Manager to display screens
and retain others underneath in a stack fasion.
2023-09-16 21:43:07 -05:00
MatthewColvin
52cb2e7ce2 Add background color setter in UIElement
Use main to spawn refacoredBasic UI
Start using new screen manager and
screen concepts
2023-09-16 16:44:15 -05:00
MatthewColvin
6a4aa9a35c Add an elements IDs class to allow for a way to determine what an object is. 2023-09-16 16:14:24 -05:00
MatthewColvin
1458aa7992 clang format code 2023-09-16 15:34:16 -05:00
MatthewColvin
f5ba2e9b84 Add base UIElement class and extend widget and screen 2023-09-16 15:13:23 -05:00
MatthewColvin
5cb4c1408d flushed out the Base screen and widget classes a bit more 2023-09-16 14:46:59 -05:00
MatthewColvin
40052d31b7 add base classes for screens and widgets
along with screen manager to allow place to manage multiple screens
2023-09-16 13:07:14 -05:00
MatthewColvin
32c4230071 add poller to core folder 2023-09-16 12:31:18 -05:00