Il giorno mer, 01/12/2010 alle 17.37 +0100, Milan Bouchet-Valat ha scritto: > Le mercredi 01 décembre 2010 à 17:27 +0100, Johannes Schmid a écrit : > > > Can you tell us more about the issue with proxying menu through dbus? > > > Will the same technology be used if ever the AppMenu concept (with > > > more than just the existing "Quit" item, of course) is implemented? > > > > No the dbus stuff is used for libindicator (Ubuntu) and AFAIK also > > GlobalMenu. It is not used within gnome-shell which uses the new > > features of GtkApplication in Gtk+-3.0 for AppMenu. > I think that's what Allan was referring to. GtkApplication uses D-Bus to > export actions that can be shown by the app menu. > > You should ask Colin (IRC: walters) if you want to know how this can be > used. Else, there is some technical information here: > http://library.gnome.org/devel/gio/unstable/GApplication.html > http://library.gnome.org/devel/gio/unstable/GSimpleAction.html > But it's not very friendly, nor explicit about what you're supposed to > do with this. > > My understanding is that apps will be able to implement actions, and > that the Shell will detect a few of them (those for which it knows the > name), and list them in the menu.
Actually, the Shell should be able to associate a window and desktop file with a DBus name (how this is done is not clear to me yet, given that in principle a process could have multiple bus connections). Given that, the org.gtk.Actions interface allows to export GActions, that are composed of an id, a localized string and a variant state, with methods to activate and change the state. The shell, based on the type of the variant state, will then present the actions as normal menu buttons (no state), switch/checkbuttons (boolean state), sliders (double), ecc. It does not need to know the id or the name of the action (although it may present specific UI for well-known actions like "new-window"), only the kind of state, and this is handled on the client side with GAction subclasses (GSimpleAction, GtkAction, GtkToggleAction, GtkRadioAction, ecc.). Giovanni _______________________________________________ usability mailing list usability@gnome.org http://mail.gnome.org/mailman/listinfo/usability