I also have little free time and making a widget set binding should be a full time job for a team of programmers and not a lone programmer.
For now, I'm just studying the trajectory of the LCL-GTK3.
Initially, my idea was to contribute to your (@zeljko) work in progress, but it's harder to understand and learn from the end to the beginning.
So, I set up a separate environment and started from scratch. Even so, it is an arduous journey:
- at least two of @JuhaManninen's observations are similar to mine;
- I had a hard time finding detailed documentation on how LCL works and how to make a widget set binding for it;
- the more I study the current source code, both from the high-level LCL side and from the GTK bindings[1-3] side, the more I get the impression that there is room for improvement;
Some recent examples:
Code cleanup in gtk widgetsets
https://forum.lazarus.freepascal.org/index.php/topic,63833.0.htmlState of the GTK3 bindings and widgetset?
https://forum.lazarus.freepascal.org/index.php/topic,63946.0.html- I had a hard time finding a background explaining why those decisions were made and why they were valid at that time (between one and three decades ago considering LCL and GTK1, 2 and 3). I discovered something by reading old forum comments, public emails and bug tickets;
There is also enormous pressure regarding GTK3 and GTK4, which is understandable, on the few programmers who work voluntarily on the Lazarus project, but there are few people who understand the difficulties or bother themselves to help by donating source code or money.
Without making any commitments or promises, I am studying and trying to remake the LCL-GTK3 version 2 bindings in my spare time. It's a huge job to fit into a few hours a week.
I hope to contribute with version 1 or make a proposal for version 2 down the road. And there's always the risk that I won't get anywhere due to the lack of free time and the size of the difficulties.
Seeing my own struggles along the way, my current need is to understand the process, whys and source code to improve the LCL documentation on how one could contribute to current widget sets or make a new one from scratch. So I've been asking questions here and there.
As much as possible, I want to use this thread to talk about my journey and ask for help from time to time.