Re: [Usability] The Future of Window Borders, Menu Bars, and More



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




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