[crossfire] Gtk2 Libglade client is argely playable now.

Kevin R. Bulgrien kbulgrien at worldnet.att.net
Sun Aug 12 23:35:10 CDT 2007


> The branch is actually playable... Woohoo...
> 
> Ahem... as long as the only thing you need the keyboard to do is chat and
> enter commands.  ;-)
> 
> It is quite broken though.  Most keyboard function does not work, and various
> signals do not seem to be connected properly.  My initial thought is to check
> out how to use g_signal_connect() instead of glade_xml_signal_connect(), but
> so far no luck.  I think it will come down to looking at what all is in interface.c
> and finding out the libglade equivalent stuff and where to put it.
> 
> Other problems: All windows are open at app start and can't be raised if
> closed since the menu bar is non-functional.  You can quit, but the app won't
> fully shutdown... maybe because the metaserver window will not re-raise to
> expose the quit button.

Use of g_signal_connect() is much more useful.  interface.c uses it all over the
place, so it makes it easy to verify the signals that need to be connected, and
the resulting connections look much more like what you would expect to see
based on the .glade file.

By making sure all g_signal_connect() that were in the interface.c were put in
the libglade version of gtk-v2 client, most of the breakage reported above is
now fixed.

Still persistent, though, are the window issues.  The metaserver dialog will not
reappear on quit, so shutting down the client is hosed, as is Client | Disconnect.
But, all the windows are popped up on app start, which is not right.  Presumably
this means there are more interface.c guts to transfer into the application.

The client, however, is very playable, and, as mentioned before, you can set in
new .glade files.  The conversion is largely done, it appears, except for the
window stuff.

Oh, but, some mods really need to be made that are a bit more than strict
conversion to libglade.  To support saving window position on alternate
glade files, it is anticipated that some of the sizeable widgets probably
need to be renamed to generic names so that they are applicable no
matter what glade file is in use... like resize1, resize2, etc.  They are
named specific to function now, so it could make the widget names
kind of silly in some layouts.

The .glade file name should be programmatically selectable as another
configuration parameter, so some changes are due there.

Further, the make process needs to be updated to install the available
glade files.

It might even be wise to have a script that verifies that a .glade file is
"compatible" with the source code, but checking for key widget names
that must be present to avoid crashing the client.

Kevin R. Bulgrien.



More information about the crossfire mailing list