On Wed, Nov 25, 2009 at 6:25 PM, Cody Russell <brats...@gnome.org> wrote: > On Wed, 2009-11-25 at 17:52 -0500, Matthias Clasen wrote: >> >> > 7. menu export over D-Bus [bratsche] >> > - useful for ubuntu's "application indicators" >> > - Quartz backend >> > - menu reflowing >> > - bratsche is working on a general purpose menu proxy >> > - 3.0 material >> >> Is this based on proxying actions over dbus, or widgets ? > > Uh, well both I guess. The original idea was to create a menu proxy > interface that's implemented via a GTypeModule, so that module could > implement OSX-specific functionality on Mac or it could implement > something using dbus. This would modify GtkMenuShell or something so > that if it has a proxy module loaded then it would be able to push items > to the proxy and listen to events from them. I've got the code for this > bootstrapped already, but need to flesh it out some more still. > > Then I thought this could also be useful for dealing with menubar > overflow, so that the menubar could dump additional menus/menuitems into > the overflow area and get events on them without having to reparent > anything. This shouldn't depend on any system-level features like > Quartz or dbus though, so I probably need to generalize the code I've > got a little more to make it useful for this case as well.
this may be significantly more complex than you are imagining. on OS X it is not only necessary to push the items to a proxy (in this case, the main menu bar at the top of the display), but also to push events there too. the needs of applications in this regard vary - simple applications can probably get away with a default or at worst a single function to say "forward window events to menu proxy". however, for more complex apps (gimp, ardour, beast), this isn't true - they need the event forwarding done in a rather application specific way. i have a patch for gtk/gdk/aqua that provides this, but it is very hard for me to imagine it being built in to a generic menu proxy system. also, as a side note: this stuff is one of the few areas where gtk/gdk/aqua uses the carbon API and thus prevents 64 bits builds for snow leopard. --p _______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-devel-list