Re: [GNC-dev] Co-Owner

john <[email protected]>
Newsgroups gmane.comp.gnome.apps.gnucash.devel
Message-ID <[email protected]>

> On Jun 11, 2022, at 12:58 PM, Ralf Zerres <[email protected]> wrote:
> 
> One open question:
> 
> I defined a new submenu gnc-plugin-business-ui.xml 
> 
> ...
> 
> <menu name="Business" action="BusinessAction">
>        <menu name="CoOwnerMenu" action="CoOwnerMenuAction">
>          <menuitem name="CoOwnerOverviewPage"
> action="CoOwnerOverviewPageAction"/>
>          <menuitem name="CoOwnerNewCoOwnerOpen"
> action="CoOwnerNewCoOwnerOpenAction"/>
>          <menuitem name="CoOwnerFindCoOwnerOpen"
> action="CoOwnerFindCoOwnerOpenAction"/>
>          <menuitem name="CoOwnerNewInvoiceOpen"
> action="CoOwnerNewInvoiceOpenAction"/>
>          <menuitem name="CoOwnerFindInvoiceOpen"
> action="CoOwnerFindInvoiceOpenAction"/>
>          <menuitem name="CoOwnerNewJobOpen"
> action="CoOwnerNewJobOpenAction"/>
>          <menuitem name="CoOwnerFindJobOpen"
> action="CoOwnerFindJobOpenAction"/>
>          <menuitem name="CoOwnerProcessPayment"
> action="CoOwnerProcessPaymentAction"/>
>          <menuitem name="InvoicesDueReminderOpen"
> action="InvoicesDueReminderOpenAction"/>
>        </menu>
> ...
> 
> Stupid me: Where do i activate this menu?
> Seems that  osx_acel_map isn't used for submenu entries that any more
> ...
> 

accelmap is a user customization point for changing menu accelerator keys, it doesn't load ui files. You have to do that in code with GtkUIManager, see https://docs.gtk.org/gtk3/class.UIManager.html. There are actually several ways to pull in a ui.xml file besides direct calls to GtkUIManager. Just grep the GnuCash sources for "ui.xml" and you'll find several.

Note that GtkUIManager and ui.xml files  are for the old GtkMenu design and is deprecated as of 3.10 and removed in Gtk4, replaced with Glib's GMenu and related classes.  GnuCash will have to follow that redesign at some point fairly soon (PRs very welcome if somebody wants to take it on!) and we don't regard that as public API meaning that it will just happen with no deprecation and no warning.

BTW osx-accelmap is just a template for making a few menu accelerators more Mac-like. It's only loaded on macOS, but the accelmap mechanism in Gtk is turned on so users on any platform can use it to customize their menu accelerators.

Regards,
John Ralls
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.