That sounds fine Michael. Rename the gtkint.pp file to Interface.pp and we can use it like that. I was planning on doing a IFDEEF, but it would be better adjusting our path.
Shane
>> "Michael A. Hess" 07/30 10:41 AM >>>
Jeff Wormsley wrote 12 lines
Working from memory (I am at work now, away from the code) the GTK
stuff right now is localized to the GTKINT.PP file. I assume that
when QT, Win32 native, etc. are put in, that they will be likewise in
a QTINT.PP and a WIN32INT.PP file. Will these files be located in the
LCL directory, or will the LCL have further subdirectories for each of
these? Also, the GTK files are in \pp\source\gtk right now. I assume
there will be a \pp\source\qt and \pp\source\win32 as well? Or will
WIN32 stay as it is under RTL and FCL? I am a bit curious, but I
would like to look at the WIN32 API this weekend, as I am a lot more
familiar with it than GTK. I want to know where to put things, and
where to access things that are already there.
You beat me to it. :-)
I was going to talk with Cliff about this very thing. Since we have already broken out the source into .pp's and .inc's and separated the component library into lcl I think it is also a good time to separate the API stuff.
The /pp/source/gtk should probably stay as it is and we would add /pp/source/qt /pp/source/gnome etc.
However in the lcl we should break out the gtk code into separate directories lcl/gtk lcl/qt lcl/gnome etc.
We should do this before we get to much further along.
Shane,
Another thing we should probably do now is adjust how the interface.pp and gtkint.pp interaction works. I mentioned this before. We should eliminate the interface.pp file and just rename the gtkint.pp class to be the same as found in the interface unit. Then we place these files into the lcl/gtk directory with it's own make file. As we move along fewer and fewer changes will be required of the interface files and they could be compiled separately from the lcl. Then when a user needs to build their app they set make to include the lcl/gtk directory and compile their program.
Now when we make the qt, motif, gnome, whatever, ports we use the exact same name for the .pp file but place this and the specific .inc's into their individual directories again with their own makefiles. Now when a user wants to build a version of their app for qt all they need to do is adjust their make file to point to the correct lcl subdirectory to use the correct unit. No code will be needed to be changed and no {$ifdef} is required. We can even make up a template make file that you type
make gtk
or
make qt
and it will build the users application and use the correct api units to link the program.
Then as we add more GUI APIs we don't need to change any code all we need to do is write the interface code for that API. Place it into an appropriate subdirectory and link against those units. No modifications to the lcl are required. The lcl wouldn't even need to be recompiled to use different API's.