Thanks very much Jonathan for the heads up and explanation of these changes.
For users who are running with the out-of-tree plugin "rbpitch" of which I am the maintainer, I will be updating the sources and releasing new packages for Ubuntu, with the goal of ensuring that the latest stable version of Ubuntu and Fedora can use the plugin. I'll also watch the appropriate project mailing lists for notification of when the new version of Rhythmbox (which I'll call "2.99" right now since the new release has not yet been tagged) has been released. Thanks, Sean On Wed, Apr 3, 2013 at 8:29 AM, Jonathan Matthew <jonat...@d14n.org> wrote: > I'm going to release a new version of Rhythmbox this weekend. People > who watch commits will know that since 2.98 I've converted everything > to use GMenu rather than GtkUIManager and GtkAction and friends. This > of course has some implications for plugins. > > As part of this, the menu structure changed a little. The traditional > menu bar is gone, replaced by an app menu (or an app menu button in > environments that don't support that). Not all of the menu bar went > into the app menu. The 'control' menu was redundant, so it just > disappeared (its accelerator keys remain). The 'edit' menu moved into > source toolbars. Parts of the 'music' menu went elsewhere too. This of > course has some implications for plugins. > > Popup menus in the source list also went away, since they were mostly > short, redundant, or both, and they're not particularly discoverable. > Instead, source-specific actions should go in a source toolbar. A > toolbar at the bottom of the source list handles some common actions > such as adding a new instance of a source (playlists, network shares > etc.), deleting a source (playlists again) or ejecting a device. This > of course has some implications for plugins. > > Plugins now have two courses of action: > - add items to other menus (rb_application_add_plugin_menu_item()) > - create source toolbars in the form of GMenus (RBSource toolbar-menu > property) > > > Plugin menu items go in specific places (not just anywhere you like, > as with GtkUIManager merges), which you can locate by looking for menu > sections with rb-plugin-menu-link attributes. They mostly match the > name of the toolbar or popup they're inside. Plugins specify an item > id (only used to remove the item later), the item itself as a > GMenuItem instance, and the name of the plugin menu to add it to. > > Of course, plugins must also create and register any actions they want > to expose in menus. They can be added to the application instance > (available through g_application_get_default()) or the window, using > g_action_map_add_action(). The menu item then refers to the action by > name, prefixing it with "app." if added to the application or "win." > if added to the window. > > > Source toolbars can include submenus, which show up as menu buttons, > can bind buttons to properties and signals of the source itself, and > can link to existing menus, such as the 'edit' menu. Most of this is > Rhythmbox specific, using custom GMenu attributes (rb-menu-link, > rb-property-bind, rb-signal-bind, rb-plugin-menu-link). > > The library source toolbar demonstrates most of these things: > https://git.gnome.org/browse/rhythmbox/tree/data/ui/library-toolbar.ui > > As always, the in-tree plugins should serve as useful examples for most of > this. > _______________________________________________ > rhythmbox-devel mailing list > rhythmbox-devel@gnome.org > https://mail.gnome.org/mailman/listinfo/rhythmbox-devel _______________________________________________ rhythmbox-devel mailing list rhythmbox-devel@gnome.org https://mail.gnome.org/mailman/listinfo/rhythmbox-devel