GTK+ 3, Win32 and GtkApplication (DBus woes)



Hello everyone,

I am new to this list and I am attempting to write my first GTK+ application. For a change of pace, I decided to do my primary development on Windows instead of Linux, as the particular application I am writing will most likely be run most often on Windows. I chose GTK+ as the toolkit to use because of its portability, especially it's advertised portability to Windows and MacOS.

Please bear in mind that my perspective is not that of a GTK+ developer (although I will have a few patches for Win32 forthcoming soon) but rather as a consumer, and a new one at that, so all I have to go on is the provided documentation. Very early on in my reading, I was encouraged to not manually construct widgets but to use GtkUIManager, and tools like Glade.

I compiled Glade 3.9.2 and because it used GtkApplication, it no longer works on Windows. Gio aborts with "Cannot determine session bus address (not implemented for this OS)" because DBus support isn't complete in Gio. As I read the code this is unavoidable. Therefore, as things currently stand, if an application uses GtkApplication, it cannot ever run on Win32. An application can't ever use Glade for designing its UI either, because Glade uses GtkApplication. This really feels like an unintended consequence.

I read the thread in the archives that started with a discussion on argc/argv (that devolved into discussions of other tools and not the core issue), as well as a rename of the thread that seemed to indicate DBus support could be added but that it would involve dbus daemons and spawner and such, which is fine if all you are writing is OS applications, but if Glib/Gtk are meant to be real portable toolkits for applications, then requiring such an overhead is untenable. As things currently stand, I just don't think Glib/Gtk can realistically claim to support Win32 (for anything but a subset of their functionality).

Is there any way that a GtkApplication can be marked (some flag or such) as to not require DBus? Since the author of Glade was a frequent commentator on the previous thread about this, is there any way of not requiring g_application_run() (which starts the whole DBus mess)?

Any help / guidance appreciated, and I have development cycles I can spare to help test or possibly even implement changes.

Regards and thank you for your time and a phenomenal set of tools.

Kean Johnston


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]