Hi,
I am trying to clear up some things about the lazarus architecture for my self, specially the LCL to widget set interface. I have written something and I hope you will try to clarify where possible.
For the application developer everything is quite clear, you select the right target (for OS) and define the appropiate define - GTK, QT or WIN32 (BTW doesn't that give naming conflicts) - in the interface.pp unit and the right interface is selected.
For a component developer two situations can be distinguished. A. The control exists in the widget set. Then you can go along as described in Shane's "Lazarus Project Information Page".
B. The control does not exist in the widget set (for example. Then you have to draw the control yourself. I can see this happen in two places: 1: As part of the LCL you call functions in LCLLinux, which then becomes an OS (and widget set)-indedepent winapi, which delegates the actually drawing two the widget sets. This is what is currently being done with the mwEdit component if I understand it correctly.
2: The other possibility would be that you write code to add a new widget to the existing widget set and write code in the Interface Object (i.e. GTKObject or QTObject) to access this new widget. After this you complete the component writing as in case A. The avantage is that you can also write components wrapping widgets present is some, but not all, of the widget sets.
BTW Is Shane's "Lazarus Project Information Page" on the lazarus site too?
