MatthewColvin
29f58d406f
use threads in wifi handler sim to simulate a bit of delay in the notifications like on hardware.
2023-10-18 19:09:09 -05:00
MatthewColvin
45160ceac5
fix platform.ini intellisense generation
...
rework wifiInterface and wifiHandler for esp32 target
2023-10-18 18:24:40 -05:00
MatthewColvin
ae7bc0da54
added full ability to connect to wifi
2023-10-17 17:30:41 -05:00
MatthewColvin
cf646f21db
Add Wifi Settings Ability to enter password and attempt connection
2023-10-17 17:05:16 -05:00
MatthewColvin
73b9e7dbc7
Added Animation class to help with animations
...
Add GetParent API to UIElement
2023-10-16 20:02:23 -05:00
MatthewColvin
efa2d4a137
Rework Mains so they are basically as identical as possible.
...
Create HardwareFactory which is responsible for providing the HardwareAbstract to any part of the program based on compiler defines
2023-10-15 08:24:29 -05:00
MatthewColvin
99787a69f2
added initial wifi settings page
...
currently can scan for networks and
show them but clicking does nothing.
2023-10-15 00:24:07 -05:00
MatthewColvin
38ec26dce7
rework Notifications by adding handler class that can unregister when it falls out of scope.
...
rework wifi Interface around this new concept and patch up some old uses of notifications to follow new paradigm
compile out old UI code because notification refactor broke it.
2023-10-15 00:22:43 -05:00
MatthewColvin
5d0533c18a
Add system setting and add a timeout dropdown
2023-10-12 22:21:27 -05:00
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
6be699da64
brightness slider should be visible when constructing page
2023-10-12 19:12:14 -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
7d68cce6ad
Add start stop event handling in UIElement
...
Add demo page to get play logic out of settings page.
Add a demo page and a Settings page to the home screen.
2023-10-12 15:25:42 -05:00
MatthewColvin
0a397706af
added ability to adjust brightness slider height easily
2023-10-12 15:25:32 -05:00
Matthew Colvin
04fd9781ed
Working on making a brightness slider that can be reused easily
...
piping around IDS to correct places
2023-10-12 15:25:23 -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
4f59a2648f
remove dead interface class
...
fix spelling error in resource manager
2023-10-12 15:25:03 -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
58787f5bf0
Move logic related to owning widgets into its own class to prepare for a widget type that can own other widgets.
2023-10-12 15:24:10 -05:00
MatthewColvin
ddbfc13e55
Update SDLDisplay so it finds the window based on events that way it works on windows and Ubuntu
2023-10-10 13:37:16 -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
dface01a40
Add Slider Class
...
Add brightness slider to the display settings class.
2023-10-08 20:23:01 -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
a8c14d2b6f
convert tab view to use onEvent to handle events instead of the manual registration.
...
remove padding from base page.
2023-10-08 17:20:51 -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
f9dd87fbe7
push Display settings page on a tem button press
2023-10-07 19:54:05 -05:00
MatthewColvin
235d8e043f
Convert Lvgl resource manager to recursive mutex to allow re locking in thread.
...
This helps with creation and getting values and should be safe since it still keeps lvgl on one thread at a time.
Add OnLvglEvent to UIElement that allows foreasy place for UI Elements to respond to LVGL events .
Add button class that can react to being presssed via a callback function.
Add GetBottom() api to allow easy grabbing of bottom Y coordinate.
use some new stuff in the settings page to sort test it all out.
2023-10-06 22:11:15 -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
6343a48be1
Add align to api to UIElement
...
fix settings page bug where silder were not getting correct Y value set
2023-10-06 13:19:11 -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
7434f0b4da
add initial Key press implementation for hardware next is to actually spin up something to queue and handle key events
2023-10-04 11:42:45 -05:00
MatthewColvin
a19e84ee80
convert single LvglMutex into a Lvgl resource manager that will allow for easy multi threaded use of Lvgl through program.
2023-10-03 20:40:17 -05:00
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
MatthewColvin
160114f54c
move from constructing keypress abstract with handler into setting the handler so that it can be set by the UI.
2023-09-29 15:27:54 -05:00
MatthewColvin
5ed9fcc3d0
remove dead HardwareInterface file likely from a bad merge.
2023-09-29 11:53:27 -05:00
MatthewColvin
414f711373
Add KeyPress Abstract and a KeyPress Simulator
...
as beginning stages for forwarding key events to the UI.
2023-09-29 11:52:48 -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
f5b7b7bc5f
Merge remote-tracking branch 'upstream/abstraction' into UIRefactor
2023-09-17 19:45:03 -05:00
Paul Hortiatis
59897369ec
Fixing settings in the abstraction branch ( #39 )
...
* Fixing settings
* updating the simulator
2023-09-17 12:14:39 +02: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