Nice.
Anyway, I curious of how you paint your widget. I see there were some different colors used by different widget classes.
I provide new non-LCL widgetset in LiteZarus named "carpet".
Currently, it only has panel (TCarpet), and label (TCarpetLabel).
The new LiteZarus trick is my new TCarpetCanvas class, which allow individual widget to introduce / to implement individual Paint method, so we can focus on how each widget will be rendered; rather than hard-coded render function in DesignerMediator.
The trick is
TCarpetCanvas has different implementation between runtime and designtime.In designtime, TCarpetCanvas will use LCL TCanvas (graphics.pas) to render each widget into LCL form.
in runtime, it possible to use different implementation of how widget will be rendered (currently no drawing in runtime because we use it as TDataModule).
Currently, in runtime the Carpet widgetset wouldn't require Graphics.pas, so we can use Carpet form as known as TDataModule. But in designtime, Carpet widgetset will decorate your TDataModule with coloured panel/groupbox, label, and possibly image/icon (in progress).
Maybe, if you are rendering your Android widgetset by yourself (custom drawn), you might take a look Carpet codes and got the idea.
--------------------
I plan to continue explore usability of non-LCL designer using this new widgetset.
Possibly, I will introduce TCarpetImage, TCarpetImageList and so on. All widgetset wouldn't depend on Graphics.pas and LCL when in runtime.
My secondary goal of developing Carpet widgetset is seeking bug on non-LCL designer of LiteZarus/Lazarus.
bugfixed :
* (copy) paste non-LCL GUI component.
* location of pasted non-LCL GUI component.
known bug:
* move multiple selection of non-LCL GUI component
* move multiple selection of iconic component within DesignMediator
Thanks you a lot of your sharing idea!
---------
edit:
Carpet widgetset repository:
https://github.com/x2nie/LiteZarus/tree/litezarus/examples/carpet_datamodule