Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index



Michael Stahl-2 wrote

On 09/08/12 15:56, anwen wrote:
I am also interested in XDocumentEventBroadcaster/XDocumentEventListener.
I
am wondering if you could correct my following code which tries to
register
a XDocumentListener with the XDocumentEventBroadcaster in a Calc
Extension.
I did some research on this topic. Most of examples initialize a
EventBroadcaster following a bootstrap() method which could not be used
in
Calc Extension.

i don't think documents implement XDocumentEventBroadcaster, but there
is a GlobalEventBroadcaster service that you can get from the service
factory:

 Object oGEB = m_xMSF.createInstance(
                "com.sun.star.frame.GlobalEventBroadcaster");
 m_xGEB = UnoRuntime.queryInterface(XDocumentEventBroadcaster.class,
oGEB);

iirc the DocumentEvent that your listener gets then contains something
that identifies the document that the event is for.



I implemented the above code with c++ . However, it did not work. Anything
wrong with the following code:
m_xCC is a given Reference<XComponentContext>

Reference<XEventBroadcaster>
xBrd(m_xCC->getServiceManager()->createInstanceWithContext(OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.GlobalEventbroadcaster")),
m_xCC), UNO_QUERY); //xBrd is still empty, not sure why?
                
if (xBrd.is())
{               
        Reference< XEventListener > xDocListener(
                        static_cast<XEventListener*>(new CalcListener()), UNO_QUERY);
        xBrd->addEventListener(xDocListener);
}

Thanks,

Wendi



--
View this message in context: 
http://nabble.documentfoundation.org/Solarmutex-Deadlock-when-Closing-Calc-which-contains-functions-with-XVolatileResult-return-values-tp3998056p4001090.html
Sent from the Dev mailing list archive at Nabble.com.

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.