So, the drawing surface has a few interesting notes:
Im not SUPER concerned about the items looking EXACTLY right there. They are closeish. Eventually ill make them look much closer
The Editor Tools is sepeerated into 2 windows:
A) Tools (Widgets from LittleVGL, and eventually custom widgets created in the tool)
B) Properties for the widgets, this is all the different configuration items for a widget (For example Color or Text)
Finally on the Drawing Surface there is a TreeView that shows the hierarchy. This allows for a few things:
A) Selecting an item (vs clicking on the drawing surface), which gives you the ability to view/change properteties. Move it or resize it.
B) Moving items within the treeview, this allows you to reparent them
I agree. While this would definitely work if you were just looking to customize the layout of the elements, the advantage of other solutions like @kaiak’s is that you can see what the finished GUI would look like.
I do really like the tree view though, especially if you can re-arrange them (we use quite a lot of nested widgets).
I feel your current solution, of having your own ‘representation’ of the widgets, will make styles/themes hard work as you will have to re-implement what is already in the actual library.
If I get time over the weekend I might try to tie a very simple C# winforms app in with the existing VS simulation to provide a few simple calls to add widgets. You could then integrate this into your project if that is something you wanted to try!
I am going to rewrite 2 major pieces this weekend:
A. I am going to add all of the different widgets supported by LVGL (Easy)
B. I am going to make it a tab view with 3 tabs:
The layer view, I am going to create a treeview container for this so that it is:
A. Easy to see relationships
B. Prunable (You can delete something, and then its children)
C. Graftable (You can move something and its children and attach them to a different node)
I also have this all running out of a visual studio project, and will create a cmake project as well.