toolkit/inc/controls/controlmodelcontainerbase.hxx      |    3 +
 toolkit/source/awt/stylesettings.hxx                    |    4 +-
 toolkit/source/awt/vclxtoolkit.cxx                      |   25 ++++++----------
 toolkit/source/awt/vclxwindow.cxx                       |   21 +++++++------
 toolkit/source/controls/controlmodelcontainerbase.cxx   |    7 +---
 toolkit/source/controls/grid/defaultgridcolumnmodel.cxx |    4 +-
 toolkit/source/hatchwindow/documentcloser.cxx           |    6 +--
 7 files changed, 32 insertions(+), 38 deletions(-)

New commits:
commit 6762aff78bd346ebf816ead77e73b6fa9d8ea7d8
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Sun Nov 28 19:10:25 2021 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sun Nov 28 20:25:20 2021 +0100

    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.gran...@collabora.co.uk>

diff --git a/toolkit/inc/controls/controlmodelcontainerbase.hxx 
b/toolkit/inc/controls/controlmodelcontainerbase.hxx
index e84bb4267e42..768474ffd116 100644
--- a/toolkit/inc/controls/controlmodelcontainerbase.hxx
+++ b/toolkit/inc/controls/controlmodelcontainerbase.hxx
@@ -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;
diff --git a/toolkit/source/awt/stylesettings.hxx 
b/toolkit/source/awt/stylesettings.hxx
index ebd9bd2c6ee3..477a1f093be0 100644
--- a/toolkit/source/awt/stylesettings.hxx
+++ b/toolkit/source/awt/stylesettings.hxx
@@ -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;
     };
 
 
diff --git a/toolkit/source/awt/vclxtoolkit.cxx 
b/toolkit/source/awt/vclxtoolkit.cxx
index 6c21a5b474f1..351166d713e3 100644
--- a/toolkit/source/awt/vclxtoolkit.cxx
+++ b/toolkit/source/awt/vclxtoolkit.cxx
@@ -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)
diff --git a/toolkit/source/awt/vclxwindow.cxx 
b/toolkit/source/awt/vclxwindow.cxx
index b6cb0c90ecb5..6a07668e436b 100644
--- a/toolkit/source/awt/vclxwindow.cxx
+++ b/toolkit/source/awt/vclxwindow.cxx
@@ -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 );
diff --git a/toolkit/source/controls/controlmodelcontainerbase.cxx 
b/toolkit/source/controls/controlmodelcontainerbase.cxx
index 1172ac5c99a8..6bc024cb6bfe 100644
--- a/toolkit/source/controls/controlmodelcontainerbase.cxx
+++ b/toolkit/source/controls/controlmodelcontainerbase.cxx
@@ -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 );
 }
 
 
diff --git a/toolkit/source/controls/grid/defaultgridcolumnmodel.cxx 
b/toolkit/source/controls/grid/defaultgridcolumnmodel.cxx
index d93d10c5b2c9..afa3e54157b0 100644
--- a/toolkit/source/controls/grid/defaultgridcolumnmodel.cxx
+++ b/toolkit/source/controls/grid/defaultgridcolumnmodel.cxx
@@ -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;
 };
 
diff --git a/toolkit/source/hatchwindow/documentcloser.cxx 
b/toolkit/source/hatchwindow/documentcloser.cxx
index 6e014dd7ea46..d33f8b147ea4 100644
--- a/toolkit/source/hatchwindow/documentcloser.cxx
+++ b/toolkit/source/hatchwindow/documentcloser.cxx
@@ -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 );
 }

Reply via email to