Hello, The past few weeks I've been working on getting the Mono bindings of libappindicator[1] to work correctly. I managed to get everything work correctly apart from making the virtual members accessible an overridable in C#. The thing is that libappindicator provides two (virtual) methods that provide a fall back mechanism. You can implement your own by overriding those functions. However, I couldn't get this to work because virtual methods aren't supported by GAPI2 which is included in GTK# 2.12.9. If everything goes well it might be included in the GTK# 3.0 release in September. That is too late for Lucid, obviously and therefore the libappindicator library won't have all functionality in C# that is available in C, Python and in the near future in Vala as well.
September 2010 is a quite far away from November 2004, which was when VirtualMember.cs was uploaded to SVN for the first time. The long waiting period between the introduction seems to be typical for GTK#. Maybe you remember the session during the Ubuntu Developer Summit for Ubuntu 9.10 Karmic. It was proposed to make Banshee the default media player of Ubuntu and it was seriously considered[2]. Banshee is a powerful media player and then there was a reasonable amount of developers convinced that it was better than Rhythmbox. As you can read on the wiki page[3] "Karmic will switch to banshee if the issues which have been listed during the discussion are fixed before the feature freeze, [...]". You could say that it was GTK# that costed Banshee the position as default media player in Ubuntu: GTK# still won't included GIO# in the next release -- it was a requirement back then -- but most importantly the a11y support wasn't available with the GTK# of that time. Although it was mostly written, it wasn't released and if I read the Banshee ./configure output correctly it only will be in GTK# 2.12.10. The other issues on the list were fixed by the Banshee developers. It is a shame that so many features are available, needed, but not shipped. F-Spot started to included GIO# in their source because it still isn't provided by GTK#. Banshee has taken a few things away from the GTK# library as well. This is not how shared libraries should work, the whole idea behind a shared library is that the library is provided separately from the application, not spread across different applications. It would be good for GTK# and the image of Mono applications on the GNOME desktop if GTK# wouldn't be maintained as conservatively as it is now. Maybe it should become a part of the GNOME project and move to gnome.org, I don't know. What I do know that it is getting increasingly harder for Mono applications to maintain their position on the desktop. It could be that everything is fixed with the GTK# 3.0 release, but in time there will be a GTK# 4.0 release as well. Will GTK# development for the 3.x tree die out then as well? I hope not, because applications like Banshee, Gbrainy and Tomboy surely add something to the desktop and they would be missed. [1] https://launchpad.net/indicator-application [2] https://blueprints.launchpad.net/ubuntu/+spec/desktop-karmic-default-media-player-choice [3] https://wiki.ubuntu.com/DesktopTeam/Specs/Karmic/DefaultMediaPlayerChoice Regards, -- Sense Hofstede [ˈsɛn.sə ˈɦɔf.steːdə] _______________________________________________ Gtk-sharp-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
