[crossfire] gtkv2 client vs gtk client gap list.

Mark Wedel mwedel at sonic.net
Sat Feb 4 21:36:05 CST 2006


Brendan Lally wrote:
> On 2/4/06, Mark Wedel <mwedel at sonic.net> wrote:
>>   To me, at some level, keeping the gtk(v1) client about may not make a lot of
>> sense.  Especially if we start going down the path of new character creation and
>> other widgets - I don't look forward to trying to write those for the gtkv1 client.
> 
> I'd note at this point that the recent spell interface updates I did
> were for gcfclient not gcfclient2 - I find glade complex and
> confusing, gtk code is comparatively straightforward to write, at
> least for maintenance.

  And that is sort of the point - if/when more stuff is moved to the client, 
having to update multiple clients become more a burden.  As long as we have 
peopel willing to keep updating all the clients, not as much a problem. 
Presuming of course those people stick around and are relatively responsive to 
making needed changes in a timely fashion.

> 
>>   I know a lot of people still use the gtkv1 client.  So my basic question is,
>> for those of you that do, what needs to be changed/added/fixed in the gtkv2
>> client so you would use it.
> 
> I'm not sure that is necessary, not so long ago there was a patch to
> gcfclient to make it compile against gtk2, I will assume that this
> gets accepted in the move towards 2.0, with the few bugs it isolates
> picked up on the way.

  I do wonder if at some point, gtk itself may drop support for the stuff from 
gtk1 they obsoleted.  For example, if gtk3 is released, they may very well say 
'gtk1 code is going away - we kept and entire released version, but we don't 
want it anymore'.  I'd imagine that may be years away (and gtkv2 may continue to 
be commonly available on distributions for a while even after gtk3 is released), 
but a random thought.  Note that I have no indication that this is actually 
going to happen, but I imagine at some point, the gtk1 stuff that they stopped 
supporting will go away.

> 
> If cfclient is removed, (and the broken gnome client also), then there
> would only be one toolkit in use. It would then be possible to
> restructure the client directories to have common/ gtk_common/ gtk-v1/
> and gtk-v2/ mapping to:
> protocol parsing and storage, toolkit specific code, and interface respectively.

  Maybe - I'm not 100% sure how big gtk-common would be.  But this goes back to 
the original question, which is why keep the gtk-v1 client.  If the gtkv2 client 
has all the same features, is there a reason to keep the gtk-v1 client (this is 
driven people using it, but then perhaps the question is why are people using it 
over gtkv2).

  If it is a matter of layout (I like the layout of gtk1 better), I wonder how 
hard it would be to do a 'gtk API' type of thing - take a glade config file, and 
say 'these are the callbacks you use' - one could whip up a new layout pretty 
darn quickly.

  IIRC, I did the entire layout of the gtkv2 client in glade in a single evening 
- it was the back end portion that was harder, and in some cases, because of the 
difference in gtk 1 and 2.

  IIRC, to be 100% gtk2, the text windows (messages) and the lists (inventory, 
look) use new widgets.  If you take those pieces out, what is then left as 
common is the map (which does share code to a good extent right now), and the 
stat/resistances windows (which are pretty trivial).

  But what that does mean is that any change to inventory handling (say new 
attribute to display) would be separate code for the clients.  Likewise, any 
changes to message handling couldn't share code.  The map portion could share 
code, and I'd bet to some extent, right now, could pretty easily do so (in both 
cases, it is just going directly to a drawable, and in the case of the opengl 
and SDL drawing modes, doesn't even use GTK - gtk just provides the window, 
nothing else).




More information about the crossfire mailing list