Announcement for the DBus backed Global Menu


I am sorry for the longlong delay after last time I talked about writing
the applets and stuffs.

A lot have happened. One is that I made a big decision to move entirely
on top of DBus, and also turned to Vala for the core of libgnomenu.

Other components can be written in any other languages.

This version of Global Menu doesn't require patching GTK code anymore.
However, two dynamic patches are applied when libgnomenugtk is loaded.
It will be better if the patches are adopted by the GTK itself:

(1) emitting an 'insert' signal when inserting a child to a MenuShell,
(2) hiding the menu bar with a 'local' property: if == true, the local
menu bar is not hidden, if == false, it is hidden.

libgnomenu provides a remote XML(GMarkup) facility on top of DBus:
via four classes:

libgnomenu-gtk introspects the GTK menu system to a live XML document
which is in sync of the menu system, and exposes it via libgnomenu on
DBus. libgnomenu-gtk is loaded as one of the GTK_MODULES, so that if it
is not loaded, GTK should behave like before.

varies tools can inspect the exposed menu system, one of which(the most
feasible one) is Gnomenu.MenuBar that takes an string-fied xwindow id as
a parameter, and provide a view of the menu system with a true
GtkMenuBar. String-fying the xwindow is for avoiding potential problems
with 64bit XLib.

Gnomenu.MenuBar can be integrated into a gnome-panel applet, that finds
the active window, and shows its menu content. Though GnomenuMenuBar is
now a subclass of Gtk.MenuBar, I'll have to make it a subclass of
Gtk.Box/Gtk.Container to support multi-menubars on one window.

The code is at

Several screenshots:

And many thanks to gtkmac/syncmenu.



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