Commit graph

24 commits

Author SHA1 Message Date
MatthewColvin
8d54d37978 Implement DropDown core widget using
templates to simplify creation and handling of
of data related to dropdowns
2023-10-12 21:13:04 -05:00
MatthewColvin
c7f9482e0a Create Base Implementation of OnShow and OnHide that notify all owned elements of their shown status
Update OnShow and OnHide to be aware of current set visibility.
2023-10-12 18:40:07 -05:00
Matthew Colvin
442d0b0dad move some pages that are specific out of the "core" folder 2023-10-12 15:25:15 -05:00
Matthew Colvin
8a34d0220c Remove optimization from debugging because it was causing breakpoints not to hit.
Rework tab and tabView given the new AddElement API
2023-10-12 15:24:50 -05:00
Matthew Colvin
02b664b893 fix linux build breaks of sim build 2023-10-12 15:24:38 -05:00
Matthew Colvin
736029c89a Make UI Element the owner of the Unique pointers to other UI elements to allow for easier scope management of adding elements to one another 2023-10-12 15:24:25 -05:00
MatthewColvin
af7abe115f adds some code to ensure onShow and onHide are called properly. 2023-10-10 13:36:32 -05:00
MatthewColvin
68695b4665 add label widget and text styling
setter and getter

Generally working on getting the Display Settings page and pop up screen working well
2023-10-09 21:22:33 -05:00
MatthewColvin
615bcd1fde Make sure screen manager and other screens are properly calling onShow and onHide. 2023-10-08 19:36:20 -05:00
MatthewColvin
dc5ad76994 Add helper class that make set/get borders padding and Outline
Add Colors Header to have a place to access colors for consistency

use some of this new functionality in pages and screens.
2023-10-08 16:48:03 -05:00
MatthewColvin
7b7045f62b convert Screen manager to use vector to allow popper of screen to use the Page.
Add ability to delay destruction of an object in LVGL after the core object has been destructed. This was added for animations to work .

make pop up Screen to allow for easy pushing of pages by wrapping it in a screen.

Use this all in the settings page to launch a fake display settings
2023-10-08 12:32:59 -05:00
MatthewColvin
a11b78c540 boiler plate code for Pop up Screen to UI to allow for quick way to launch pages.
This will be huge for RAM saving as the page will de alloc when closed.
2023-10-06 14:25:05 -05:00
MatthewColvin
4a5c83c8b9 fully implement Key press handeling in HAL for esp32 hardware and switch hardware to use the refactored UI
make UI add widgets on button presses as a demo
2023-10-05 09:53:07 -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
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