25#include <com/sun/star/container/ContainerEvent.hpp>
26#include <com/sun/star/container/XContainerListener.hpp>
27#include <com/sun/star/awt/XControlContainer.hpp>
31using namespace ::
cppu;
64 aReturn = xDel->queryInterface( rType );
79 static OTypeCollection ourTypeCollection(
84 return ourTypeCollection.getTypes();
93 Any aReturn ( ::cppu::queryInterface( aType ,
94 static_cast< XControlModel*
> (
this ) ,
95 static_cast< XControlContainer*
> (
this )
100 if ( aReturn.hasValue() )
115 const Reference< XWindowPeer >& xParent )
124 Sequence< Reference< XControl > > seqControlList =
getControls();
126 for (
auto& rxControl : asNonConstRange(seqControlList) )
128 rxControl->createPeer( xToolkit,
getPeer() );
146 return Reference< XControlModel >();
162 aObject.Source.set(
static_cast<XControlContainer*
>(
this), UNO_QUERY );
166 const Sequence< Reference< XControl > > seqCtrls =
getControls();
170 for ( Reference< XControl >
const & control : seqCtrls )
172 control->removeEventListener (
static_cast< XEventListener*
>(
static_cast< XWindowListener*
>(
this ) ) );
173 control->dispose ( );
184 Reference< XControl > xControl( rEvent.Source, UNO_QUERY );
194 if ( !rControl.is () )
204 aNewControl.
sName = rName;
212 aNewControl.
xControl->addEventListener (
static_cast< XEventListener*
>(
static_cast< XWindowListener*
>(
this ) ) );
224 if (!pInterfaceContainer)
231 aEvent.Element <<= rControl;
247 if ( !rControl.is() )
255 for (
size_t n = 0;
n < nControls;
n++ )
259 if ( rControl == pControl->
xControl )
262 pControl->
xControl->removeEventListener (
static_cast< XEventListener*
>(
static_cast< XWindowListener*
>(
this ) ));
263 pControl->
xControl->setContext ( Reference< XInterface > () );
271 if (pInterfaceContainer)
276 aEvent.Element <<= rControl;
296 Reference< XControlContainer > xContainer (
getContext(), UNO_QUERY );
298 if ( xContainer.is () )
300 xContainer->setStatusText ( rStatusText );
309 MutexGuard aGuard ( Mutex::getGlobalMutex() );
314 if ( rSearchControl.sName == rName )
318 return rSearchControl.xControl;
323 return Reference< XControl > ();
331 MutexGuard aGuard ( Mutex::getGlobalMutex() );
335 Sequence< Reference< XControl > > aDescriptor ( nControls );
336 Reference< XControl > * pDestination = aDescriptor.getArray ();
341 pDestination [
nCount++ ] = rCopyControl.xControl;
359 createPeer ( Reference< XToolkit > (), Reference< XWindowPeer > () );
367 WindowDescriptor aDescriptor;
369 aDescriptor.Type = WindowClass_CONTAINER;
370 aDescriptor.WindowServiceName =
"window";
371 aDescriptor.ParentIndex = -1;
372 aDescriptor.Parent = rParentPeer;
374 aDescriptor.WindowAttributes = 0;
css::uno::XInterface * next()
bool hasMoreElements() const
OInterfaceContainerHelper2 * getContainer(const css::uno::Type &rKey) const
void disposeAndClear(const css::lang::EventObject &rEvt)
mutable::osl::Mutex m_aMutex
virtual void SAL_CALL disposing()
virtual css::uno::Reference< css::awt::XControl > SAL_CALL getControl(const OUString &sName) override
virtual void SAL_CALL dispose() override
virtual void impl_paint(sal_Int32 nX, sal_Int32 nY, const css::uno::Reference< css::awt::XGraphics > &xGraphics) override
virtual css::awt::WindowDescriptor impl_getWindowDescriptor(const css::uno::Reference< css::awt::XWindowPeer > &xParentPeer) override
comphelper::OMultiTypeInterfaceContainerHelper2 m_aListeners
virtual ~BaseContainerControl() override
BaseContainerControl(const css::uno::Reference< css::uno::XComponentContext > &rxContext)
virtual css::uno::Any SAL_CALL queryAggregation(const css::uno::Type &aType) override
virtual css::uno::Reference< css::awt::XControlModel > SAL_CALL getModel() override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
get information about supported interfaces @seealso XTypeProvider
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &aType) override
give answer, if interface is supported @descr The interfaces are searched by type.
virtual void SAL_CALL createPeer(const css::uno::Reference< css::awt::XToolkit > &xToolkit, const css::uno::Reference< css::awt::XWindowPeer > &xParent) override
virtual sal_Bool SAL_CALL setModel(const css::uno::Reference< css::awt::XControlModel > &xModel) override
virtual void SAL_CALL setVisible(sal_Bool bVisible) override
::std::vector< IMPL_ControlInfo > maControlInfoList
virtual void SAL_CALL setStatusText(const OUString &sStatusText) override
virtual css::uno::Sequence< css::uno::Reference< css::awt::XControl > > SAL_CALL getControls() override
virtual void SAL_CALL removeControl(const css::uno::Reference< css::awt::XControl > &xControl) override
virtual void SAL_CALL addControl(const OUString &sName, const css::uno::Reference< css::awt::XControl > &xControl) override
virtual void SAL_CALL createPeer(const css::uno::Reference< css::awt::XToolkit > &xToolkit, const css::uno::Reference< css::awt::XWindowPeer > &xParent) override
const css::uno::Reference< css::uno::XInterface > & impl_getDelegator() const
virtual void SAL_CALL setVisible(sal_Bool bVisible) override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
get information about supported interfaces @seealso XTypeProvider
virtual css::uno::Reference< css::awt::XWindowPeer > SAL_CALL getPeer() override
virtual css::uno::Any SAL_CALL queryAggregation(const css::uno::Type &aType) override
virtual void SAL_CALL dispose() override
virtual css::awt::Rectangle SAL_CALL getPosSize() override
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getContext() override
std::vector< Reference< css::datatransfer::clipboard::XClipboardListener > > m_aListeners
void SAL_CALL elementRemoved(const css::container::ContainerEvent &Event) override
DECL_LISTENERMULTIPLEXER_END void SAL_CALL elementInserted(const css::container::ContainerEvent &Event) override
css::uno::Reference< css::awt::XControl > xControl