openoffice-api mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ariel Constenla-Haile <arie...@apache.org>
Subject Re: Manipulate menu item titles (text) defined in Addons.xcu
Date Thu, 16 Oct 2014 12:16:42 GMT
Hello Keith,

On Thu, Oct 16, 2014 at 11:13:19AM +0200, Keith Alcock wrote:
> API experts,
> 
> This question below couldn't be answered in the forums, so I'll try here:
> 
> I have a very nice addon programmed in C++ and the related menu items
> are stored in Addons.xcu. The addon would be even nicer if I could
> adjust the menu item texts as the user works, similarly to how the
> undo, redo, and repeat items function in the edit menu. I can't figure
> out how to get ahold of the XMenu associated with my addon. From there
> it seems that I could use setItemText(). Who knows how to get that
> XMenu and is willing to tell? Thanks.
> 
> Additional information:
> 
> I've seen examples (e.g.,
> https://issues.apache.org/ooo/show_bug.cgi?id=6778 and
> http://www.libreoffice-forum.de/viewtopic.php?f=12&t=12691) of how so
> search through the standard OpenOffice menus, but I don't think that
> the addon menu items are included based on the popupCount I get from

You should *not* use the configuration API in order to change the text of
the menu item (a single change will cause the whole menubar to be
updated, and this is rather inefficient).

The text of the menu items can be changed at runtime by sending a status
update where the css.frame.FeatureStateEvent.State holds the string with
the new menu item text.

How does it work? The menu item is controlled in the application
framework by an object that listens for status updates at the dispatch object
you return in your ProtocolHandler implementation.

For this to work, you may need to modify your implementation of the
ProtocolHandler; usually, in most examples, like the ones on the SDK [1],
the dispatch provider and the dispatch object are implemented in the
same class and status listeners are not tracked.

[1] For example
<sdk>/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_cpp/addon.cxx
https://svn.apache.org/viewvc/openoffice/trunk/main/odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_cpp/addon.cxx?revision=1413471&view=markup


Regards
-- 
Ariel Constenla-Haile
La Plata, Argentina

Mime
View raw message