diff options
Diffstat (limited to 'offapi/com/sun/star/document/XDocumentEventBroadcaster.idl')
-rw-r--r-- | offapi/com/sun/star/document/XDocumentEventBroadcaster.idl | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/offapi/com/sun/star/document/XDocumentEventBroadcaster.idl b/offapi/com/sun/star/document/XDocumentEventBroadcaster.idl new file mode 100644 index 000000000..929db7df8 --- /dev/null +++ b/offapi/com/sun/star/document/XDocumentEventBroadcaster.idl @@ -0,0 +1,105 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_document_XDocumentEventBroadcaster_idl__ +#define __com_sun_star_document_XDocumentEventBroadcaster_idl__ + +#include <com/sun/star/frame/XController2.idl> +#include <com/sun/star/document/DocumentEvent.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/lang/NoSupportException.idl> + + +module com { module sun { module star { module document { + +interface XDocumentEventListener; + + +/** allows to be notified of events happening in an OfficeDocument, and to cause notification + of such events. + + <p>This interface is the successor of the XEventBroadcaster interface, which should not be used + anymore.</p> + + @see DocumentEvent + @since OOo 3.1 +*/ +interface XDocumentEventBroadcaster +{ + /** registers a listener which is notified about document events + + @param Listener + the listener to register. The behavior of the method is undefined this listener + is `NULL`. + */ + void addDocumentEventListener( [in] XDocumentEventListener Listener ); + + /** revokes a listener which has previously been registered to be notified about document events. + + @param Listener + the listener to revoke. The behavior of the method is undefined this listener + is `NULL`. + */ + void removeDocumentEventListener( [in] XDocumentEventListener Listener ); + + /** causes the broadcaster to notify all registered listeners of the given event + + <p>The method will create a DocumentEvent instance with the given parameters, + and fill in the <code>Source</code> member (denoting the broadcaster) as appropriate.</p> + + <p>Whether the actual notification happens synchronously or asynchronously is up to the + implementor of this method. However, implementations are encouraged to specify this, for the + list of supported event types, in their service contract.</p> + + <p>Implementations might also decide to limit the list of allowed events (means event names) at + their own discretion. Again, in this case they're encouraged to document this in their service + contract.</p> + + @param EventName + the name of the event to be notified. + @param ViewController + the view/controller which the event applies to. May be `NULL` + @param Supplement + supplemental information related to the event. + + @throws ::com::sun::star::lang::IllegalArgumentException + if EventName is empty, or if EventName is not supported by the + document implementation. + + @throws ::com::sun::star::lang::NoSupportException + if the broadcaster implementation does not supported broadcasting events induced externally. + This is usually used for components which multiplex events from multiple sources, and thus would + be unable to fill in the <code>Source</code> member of the DocumentEvent instance. + */ + void notifyDocumentEvent( + [in] string EventName, + [in] ::com::sun::star::frame::XController2 ViewController, + [in] any Supplement + ) + raises ( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::NoSupportException ); +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |