blob: 5b2f3872d15353fb4eb3366863179d11b88994a0 [file] [log] [blame]
/**************************************************************
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef __com_sun_star_container_XContainer_idl__
#define __com_sun_star_container_XContainer_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __com_sun_star_container_XContainerListener_idl__
#include <com/sun/star/container/XContainerListener.idl>
#endif
//=============================================================================
module com { module sun { module star { module container {
//=============================================================================
/** supports quick access to the information if a container currently
contains elements.
<p>The <type>XContainer</type> interface is provided for containers
which need to broadcast changes within the container; that means
the actions of adding or removing elements are broadcast to the
listeners. </p>
<p>This can be useful for UI to enable/disable some functions
without actually accessing the data. </p>
@see XContent
@see XIndexAccess
@see XNameAcces
@see XEnumerationAccess
*/
published interface XContainer: com::sun::star::uno::XInterface
{
//-------------------------------------------------------------------------
/** adds the specified listener to receive events when
elements are inserted or removed.
<p>It is suggested to allow multiple registration of the same listener,
thus for each time a listener is added, it has to be removed.
@see XContainerListener
*/
[oneway] void addContainerListener( [in] com::sun::star::container::XContainerListener xListener );
//-------------------------------------------------------------------------
/** removes the specified listener so it does not receive
any events from this container.
<p>It is suggested to allow multiple registration of the same listener,
thus for each time a listener is added, it has to be removed.
@see XContainerListener
*/
[oneway] void removeContainerListener( [in] com::sun::star::container::XContainerListener xListener );
};
//=============================================================================
}; }; }; };
#endif