use more OInterfaceContainerHelper3 in toolkit

Change-Id: If91b208db7fa59bc626293c0a868ac490a8d2d70
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125983
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
Noel Grandin
2021-11-28 20:25:20 +01:00
committed by Noel Grandin
parent cf6823ea07
commit 6762aff78b
7 changed files with 32 additions and 38 deletions
@@ -37,6 +37,7 @@
#include <cppuhelper/basemutex.hxx>
#include <com/sun/star/awt/tab/XTabPageModel.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <comphelper/interfacecontainer3.hxx>
#include <mutex>
#include <vector>
@@ -78,7 +79,7 @@ public:
protected:
ContainerListenerMultiplexer maContainerListeners;
::comphelper::OInterfaceContainerHelper2 maChangeListeners;
::comphelper::OInterfaceContainerHelper3<css::util::XChangesListener> maChangeListeners;
UnoControlModelHolderVector maModels;
AllGroups maGroups;
+2 -2
View File
@@ -22,7 +22,7 @@
#include <com/sun/star/awt/XStyleSettings.hpp>
#include <comphelper/interfacecontainer2.hxx>
#include <comphelper/interfacecontainer3.hxx>
#include <cppuhelper/implbase.hxx>
#include <tools/link.hxx>
@@ -171,7 +171,7 @@ namespace toolkit
DECL_LINK( OnWindowEvent, VclWindowEvent&, void );
VCLXWindow* pOwningWindow;
::comphelper::OInterfaceContainerHelper2 aStyleChangeListeners;
::comphelper::OInterfaceContainerHelper3<css::awt::XStyleChangeListener> aStyleChangeListeners;
};
+10 -15
View File
@@ -132,6 +132,7 @@
#include <awt/vclxspinbutton.hxx>
#include <tools/debug.hxx>
#include <tools/diagnose_ex.h>
#include <comphelper/interfacecontainer3.hxx>
#include <comphelper/processfactory.hxx>
#include <comphelper/profilezone.hxx>
@@ -444,9 +445,9 @@ class VCLXToolkit : public VCLXToolkitMutexHelper,
oslModule hSvToolsLib;
FN_SvtCreateWindow fnSvtCreateWindow;
::comphelper::OInterfaceContainerHelper2 m_aTopWindowListeners;
::comphelper::OInterfaceContainerHelper2 m_aKeyHandlers;
::comphelper::OInterfaceContainerHelper2 m_aFocusListeners;
::comphelper::OInterfaceContainerHelper3<css::awt::XTopWindowListener> m_aTopWindowListeners;
::comphelper::OInterfaceContainerHelper3<css::awt::XKeyHandler> m_aKeyHandlers;
::comphelper::OInterfaceContainerHelper3<css::awt::XFocusListener> m_aFocusListeners;
::Link<VclSimpleEvent&,void> m_aEventListenerLink;
::Link<VclWindowEvent&,bool> m_aKeyListenerLink;
bool m_bEventListener;
@@ -2416,17 +2417,15 @@ void VCLXToolkit::callTopWindowListeners(
if (!pWindow->IsTopWindow())
return;
std::vector< css::uno::Reference< css::uno::XInterface > >
std::vector< css::uno::Reference< css::awt::XTopWindowListener > >
aListeners(m_aTopWindowListeners.getElements());
if (aListeners.empty())
return;
css::lang::EventObject aAwtEvent(
static_cast< css::awt::XWindow * >(pWindow->GetWindowPeer()));
for (const css::uno::Reference<XInterface> & i : aListeners)
for (const css::uno::Reference<css::awt::XTopWindowListener> & xListener : aListeners)
{
css::uno::Reference< css::awt::XTopWindowListener >
xListener(i, css::uno::UNO_QUERY);
try
{
(xListener.get()->*pFn)(aAwtEvent);
@@ -2441,7 +2440,7 @@ void VCLXToolkit::callTopWindowListeners(
bool VCLXToolkit::callKeyHandlers(::VclSimpleEvent const * pEvent,
bool bPressed)
{
std::vector< css::uno::Reference< css::uno::XInterface > >
std::vector< css::uno::Reference< css::awt::XKeyHandler > >
aHandlers(m_aKeyHandlers.getElements());
if (!aHandlers.empty())
@@ -2464,10 +2463,8 @@ bool VCLXToolkit::callKeyHandlers(::VclSimpleEvent const * pEvent,
pKeyEvent->GetKeyCode().GetCode(), pKeyEvent->GetCharCode(),
sal::static_int_cast< sal_Int16 >(
pKeyEvent->GetKeyCode().GetFunction()));
for (const css::uno::Reference<XInterface> & i : aHandlers)
for (const css::uno::Reference<css::awt::XKeyHandler> & xHandler : aHandlers)
{
css::uno::Reference< css::awt::XKeyHandler > xHandler(
i, css::uno::UNO_QUERY);
try
{
if (bPressed ? xHandler->keyPressed(aAwtEvent)
@@ -2491,7 +2488,7 @@ void VCLXToolkit::callFocusListeners(::VclSimpleEvent const * pEvent,
if (!pWindow->IsTopWindow())
return;
std::vector< css::uno::Reference< css::uno::XInterface > >
std::vector< css::uno::Reference< css::awt::XFocusListener > >
aListeners(m_aFocusListeners.getElements());
if (aListeners.empty())
return;
@@ -2513,10 +2510,8 @@ void VCLXToolkit::callFocusListeners(::VclSimpleEvent const * pEvent,
static_cast< css::awt::XWindow * >(pWindow->GetWindowPeer()),
static_cast<sal_Int16>(pWindow->GetGetFocusFlags()),
xNext, false);
for (const css::uno::Reference<XInterface> & i : aListeners)
for (const css::uno::Reference<css::awt::XFocusListener> & xListener : aListeners)
{
css::uno::Reference< css::awt::XFocusListener > xListener(
i, css::uno::UNO_QUERY);
try
{
bGained ? xListener->focusGained(aAwtEvent)
+11 -10
View File
@@ -55,6 +55,7 @@
#include <vcl/commandevent.hxx>
#include <comphelper/flagguard.hxx>
#include <comphelper/interfacecontainer2.hxx>
#include <comphelper/interfacecontainer3.hxx>
#include <comphelper/profilezone.hxx>
#include "stylesettings.hxx"
#include <tools/urlobj.hxx>
@@ -96,8 +97,8 @@ private:
bool mbDirectVisible;
::osl::Mutex maListenerContainerMutex;
::comphelper::OInterfaceContainerHelper2 maWindow2Listeners;
::comphelper::OInterfaceContainerHelper2 maDockableWindowListeners;
::comphelper::OInterfaceContainerHelper3<css::awt::XWindowListener2> maWindow2Listeners;
::comphelper::OInterfaceContainerHelper3<XDockableWindowListener> maDockableWindowListeners;
EventListenerMultiplexer maEventListeners;
FocusListenerMultiplexer maFocusListeners;
WindowListenerMultiplexer maWindowListeners;
@@ -171,8 +172,8 @@ public:
/** returns the container of registered XWindowListener2 listeners
*/
::comphelper::OInterfaceContainerHelper2& getWindow2Listeners() { return maWindow2Listeners; }
::comphelper::OInterfaceContainerHelper2& getDockableWindowListeners(){ return maDockableWindowListeners; }
::comphelper::OInterfaceContainerHelper3<css::awt::XWindowListener2>& getWindow2Listeners() { return maWindow2Listeners; }
::comphelper::OInterfaceContainerHelper3<XDockableWindowListener>& getDockableWindowListeners() { return maDockableWindowListeners; }
EventListenerMultiplexer& getEventListeners() { return maEventListeners; }
FocusListenerMultiplexer& getFocusListeners() { return maFocusListeners; }
WindowListenerMultiplexer& getWindowListeners() { return maWindowListeners; }
@@ -404,7 +405,7 @@ namespace
{
struct CallWindow2Listener
{
CallWindow2Listener( ::comphelper::OInterfaceContainerHelper2& i_rWindow2Listeners, const bool i_bEnabled, const EventObject& i_rEvent )
CallWindow2Listener( ::comphelper::OInterfaceContainerHelper3<css::awt::XWindowListener2>& i_rWindow2Listeners, const bool i_bEnabled, const EventObject& i_rEvent )
:m_rWindow2Listeners( i_rWindow2Listeners )
,m_bEnabled( i_bEnabled )
,m_aEvent( i_rEvent )
@@ -416,7 +417,7 @@ namespace
m_rWindow2Listeners.notifyEach( m_bEnabled ? &XWindowListener2::windowEnabled : &XWindowListener2::windowDisabled, m_aEvent );
}
::comphelper::OInterfaceContainerHelper2& m_rWindow2Listeners;
::comphelper::OInterfaceContainerHelper3<css::awt::XWindowListener2>& m_rWindow2Listeners;
const bool m_bEnabled;
const EventObject m_aEvent;
};
@@ -784,10 +785,10 @@ void VCLXWindow::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
aEvent.bInteractive = true;
Reference< XDockableWindowListener > xFirstListener;
::comphelper::OInterfaceIteratorHelper2 aIter( mpImpl->getDockableWindowListeners() );
::comphelper::OInterfaceIteratorHelper3 aIter( mpImpl->getDockableWindowListeners() );
while ( aIter.hasMoreElements() && !xFirstListener.is() )
{
xFirstListener.set( aIter.next(), UNO_QUERY );
xFirstListener = aIter.next();
}
css::awt::DockingData aDockingData =
@@ -826,10 +827,10 @@ void VCLXWindow::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
aEvent.Source = static_cast<cppu::OWeakObject*>(this);
Reference< XDockableWindowListener > xFirstListener;
::comphelper::OInterfaceIteratorHelper2 aIter( mpImpl->getDockableWindowListeners() );
::comphelper::OInterfaceIteratorHelper3 aIter( mpImpl->getDockableWindowListeners() );
while ( aIter.hasMoreElements() && !xFirstListener.is() )
{
xFirstListener.set( aIter.next(), UNO_QUERY );
xFirstListener = aIter.next();
}
*p_bFloating = xFirstListener->prepareToggleFloatingMode( aEvent );
@@ -870,12 +870,9 @@ void ControlModelContainerBase::implNotifyTabModelChange( const OUString& _rAcce
aEvent.Changes.getArray()[ 0 ].Accessor <<= _rAccessor;
std::vector< Reference< XInterface > > aChangeListeners( maChangeListeners.getElements() );
std::vector< Reference< css::util::XChangesListener > > aChangeListeners( maChangeListeners.getElements() );
for ( const auto& rListener : aChangeListeners )
{
if ( rListener.is() )
static_cast< XChangesListener* >( rListener.get() )->changesOccurred( aEvent );
}
rListener->changesOccurred( aEvent );
}
@@ -29,7 +29,7 @@
#include <comphelper/sequence.hxx>
#include <comphelper/servicehelper.hxx>
#include <comphelper/componentguard.hxx>
#include <comphelper/interfacecontainer2.hxx>
#include <comphelper/interfacecontainer3.hxx>
#include <cppuhelper/basemutex.hxx>
#include <cppuhelper/compbase.hxx>
#include <cppuhelper/supportsservice.hxx>
@@ -88,7 +88,7 @@ public:
private:
typedef ::std::vector< css::uno::Reference< css::awt::grid::XGridColumn > > Columns;
::comphelper::OInterfaceContainerHelper2 m_aContainerListeners;
::comphelper::OInterfaceContainerHelper3<XContainerListener> m_aContainerListeners;
Columns m_aColumns;
};
@@ -26,7 +26,7 @@
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/awt/XVclWindowPeer.hpp>
#include <cppuhelper/implbase.hxx>
#include <comphelper/interfacecontainer2.hxx>
#include <comphelper/interfacecontainer3.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <osl/mutex.hxx>
#include <vcl/svapp.hxx>
@@ -46,7 +46,7 @@ class ODocumentCloser : public ::cppu::WeakImplHelper< css::lang::XComponent,
{
::osl::Mutex m_aMutex;
css::uno::Reference< css::frame::XFrame > m_xFrame;
std::unique_ptr<::comphelper::OInterfaceContainerHelper2> m_pListenersContainer; // list of listeners
std::unique_ptr<::comphelper::OInterfaceContainerHelper3<lang::XEventListener>> m_pListenersContainer; // list of listeners
bool m_bDisposed;
@@ -192,7 +192,7 @@ void SAL_CALL ODocumentCloser::addEventListener( const uno::Reference< lang::XEv
throw lang::DisposedException(); // TODO
if ( !m_pListenersContainer )
m_pListenersContainer.reset( new ::comphelper::OInterfaceContainerHelper2( m_aMutex ) );
m_pListenersContainer.reset( new ::comphelper::OInterfaceContainerHelper3<lang::XEventListener>( m_aMutex ) );
m_pListenersContainer->addInterface( xListener );
}