diff options
-rw-r--r-- | accessibility/inc/extended/AccessibleGridControl.hxx | 10 | ||||
-rw-r--r-- | accessibility/source/helper/acc_factory.cxx | 4 | ||||
-rw-r--r-- | include/vcl/accessiblefactory.hxx | 3 | ||||
-rw-r--r-- | include/vcl/accessibletable.hxx | 15 | ||||
-rw-r--r-- | toolkit/source/controls/table/tablecontrol_impl.cxx | 14 | ||||
-rw-r--r-- | toolkit/source/controls/table/tablecontrol_impl.hxx | 6 | ||||
-rw-r--r-- | vcl/source/helper/svtaccessiblefactory.cxx | 3 |
7 files changed, 17 insertions, 38 deletions
diff --git a/accessibility/inc/extended/AccessibleGridControl.hxx b/accessibility/inc/extended/AccessibleGridControl.hxx index 7df6b82c3453..a1f7815ce167 100644 --- a/accessibility/inc/extended/AccessibleGridControl.hxx +++ b/accessibility/inc/extended/AccessibleGridControl.hxx @@ -21,7 +21,6 @@ #include <extended/AccessibleGridControlBase.hxx> #include <extended/AccessibleGridControlTable.hxx> -#include <cppuhelper/implbase.hxx> #include <cppuhelper/weakref.hxx> #include <rtl/ref.hxx> #include <vcl/accessibletable.hxx> @@ -160,9 +159,7 @@ private: the context holds this instance weak.</p> */ -class AccessibleGridControlAccess final : - public ::cppu::WeakImplHelper< css::accessibility::XAccessible > - ,public ::vcl::table::IAccessibleTableControl +class AccessibleGridControlAccess final : public ::vcl::table::IAccessibleTableControl { private: css::uno::Reference< css::accessibility::XAccessible > m_xParent; @@ -186,11 +183,6 @@ private: SAL_CALL getAccessibleContext() override; // IAccessibleTable - virtual css::uno::Reference< css::accessibility::XAccessible > - getMyself() override - { - return this; - } void DisposeAccessImpl() override; virtual bool isAlive() const override { diff --git a/accessibility/source/helper/acc_factory.cxx b/accessibility/source/helper/acc_factory.cxx index 10cc27f007c6..364c8a3c8211 100644 --- a/accessibility/source/helper/acc_factory.cxx +++ b/accessibility/source/helper/acc_factory.cxx @@ -128,7 +128,7 @@ public: vcl::IAccessibleTableProvider& _rBrowseBox ) const override; - virtual IAccessibleTableControl* + virtual rtl::Reference<IAccessibleTableControl> createAccessibleTableControl( const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, IAccessibleTable& _rTable @@ -380,7 +380,7 @@ vcl::IAccessibleBrowseBox* AccessibleFactory::createAccessibleBrowseBox( return new AccessibleBrowseBoxAccess( _rxParent, _rBrowseBox ); } -IAccessibleTableControl* AccessibleFactory::createAccessibleTableControl( +rtl::Reference<IAccessibleTableControl> AccessibleFactory::createAccessibleTableControl( const Reference< XAccessible >& _rxParent, IAccessibleTable& _rTable ) const { return new AccessibleGridControlAccess( _rxParent, _rTable ); diff --git a/include/vcl/accessiblefactory.hxx b/include/vcl/accessiblefactory.hxx index a13e4dabc135..fe29e3b034e8 100644 --- a/include/vcl/accessiblefactory.hxx +++ b/include/vcl/accessiblefactory.hxx @@ -26,6 +26,7 @@ #include <salhelper/simplereferenceobject.hxx> #include <tools/gen.hxx> +#include <rtl/ref.hxx> namespace com::sun::star { namespace accessibility { @@ -92,7 +93,7 @@ namespace vcl const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, vcl::IAccessibleTableProvider& _rBrowseBox ) const = 0; - virtual table::IAccessibleTableControl* + virtual rtl::Reference<table::IAccessibleTableControl> createAccessibleTableControl( const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, table::IAccessibleTable& _rTable diff --git a/include/vcl/accessibletable.hxx b/include/vcl/accessibletable.hxx index e662675c7dd1..66f5a1e5c050 100644 --- a/include/vcl/accessibletable.hxx +++ b/include/vcl/accessibletable.hxx @@ -21,10 +21,10 @@ #define INCLUDED_VCL_ACCESSIBLETABLE_HXX #include <tools/gen.hxx> - #include <com/sun/star/uno/Reference.hxx> +#include <com/sun/star/accessibility/XAccessible.hpp> +#include <cppuhelper/implbase.hxx> -namespace com::sun::star::accessibility { class XAccessible; } namespace vcl { class Window; } namespace vcl::table @@ -108,18 +108,9 @@ protected: /** interface for an implementation of a table control's Accessible component */ -class IAccessibleTableControl +class IAccessibleTableControl : public ::cppu::WeakImplHelper< css::accessibility::XAccessible > { public: - /** returns the XAccessible object itself - - The reference returned here can be used to control the life time of the - IAccessibleTableImplementation object. - - The returned reference is guaranteed to not be <NULL/>. - */ - virtual css::uno::Reference< css::accessibility::XAccessible > - getMyself() = 0; /** disposes the accessible implementation, so that it becomes defunc */ diff --git a/toolkit/source/controls/table/tablecontrol_impl.cxx b/toolkit/source/controls/table/tablecontrol_impl.cxx index 1b9b82b2bcb3..99c7b815ca97 100644 --- a/toolkit/source/controls/table/tablecontrol_impl.cxx +++ b/toolkit/source/controls/table/tablecontrol_impl.cxx @@ -237,7 +237,6 @@ namespace svt::table ,m_pTableFunctionSet ( new TableFunctionSet( this ) ) ,m_nAnchor ( -1 ) ,m_bUpdatingColWidths ( false ) - ,m_pAccessibleTable ( nullptr ) { m_pSelEngine.reset( new SelectionEngine( m_pDataWindow.get(), m_pTableFunctionSet.get() ) ); m_pSelEngine->SetSelectionMode(SelectionMode::Single); @@ -2369,10 +2368,10 @@ namespace svt::table } - Reference< XAccessible > TableControl_Impl::getAccessible( vcl::Window& i_parentWindow ) + rtl::Reference<vcl::table::IAccessibleTableControl> TableControl_Impl::getAccessible( vcl::Window& i_parentWindow ) { - if (m_xAccessible.is()) - return m_xAccessible; + if (m_pAccessibleTable) + return m_pAccessibleTable; DBG_TESTSOLARMUTEX(); if ( m_pAccessibleTable == nullptr ) @@ -2386,9 +2385,7 @@ namespace svt::table } } - if ( m_pAccessibleTable ) - m_xAccessible = m_pAccessibleTable->getMyself(); - return m_xAccessible; + return m_pAccessibleTable; } @@ -2397,13 +2394,12 @@ namespace svt::table if ( m_pAccessibleTable ) m_pAccessibleTable->DisposeAccessImpl(); m_pAccessibleTable = nullptr; - m_xAccessible.clear(); } bool TableControl_Impl::impl_isAccessibleAlive() const { - return ( nullptr != m_pAccessibleTable ) && m_pAccessibleTable->isAlive(); + return m_pAccessibleTable && m_pAccessibleTable->isAlive(); } diff --git a/toolkit/source/controls/table/tablecontrol_impl.hxx b/toolkit/source/controls/table/tablecontrol_impl.hxx index 2a16d6231ef2..a9498958e796 100644 --- a/toolkit/source/controls/table/tablecontrol_impl.hxx +++ b/toolkit/source/controls/table/tablecontrol_impl.hxx @@ -132,9 +132,7 @@ namespace svt::table bool m_bUpdatingColWidths; vcl::AccessibleFactoryAccess m_aFactoryAccess; - vcl::table::IAccessibleTableControl* m_pAccessibleTable; - - css::uno::Reference<css::accessibility::XAccessible> m_xAccessible; + rtl::Reference<vcl::table::IAccessibleTableControl> m_pAccessibleTable; public: void setModel( const PTableModel& _pModel ); @@ -282,7 +280,7 @@ namespace svt::table tools::Rectangle calcCellRect( sal_Int32 nRow, sal_Int32 nCol ) const; // A11Y - css::uno::Reference< css::accessibility::XAccessible > + rtl::Reference<vcl::table::IAccessibleTableControl> getAccessible( vcl::Window& i_parentWindow ); void disposeAccessible(); diff --git a/vcl/source/helper/svtaccessiblefactory.cxx b/vcl/source/helper/svtaccessiblefactory.cxx index f6728732a2e7..8877457641c0 100644 --- a/vcl/source/helper/svtaccessiblefactory.cxx +++ b/vcl/source/helper/svtaccessiblefactory.cxx @@ -22,6 +22,7 @@ #include <vcl/svtaccessiblefactory.hxx> #include <vcl/accessiblefactory.hxx> +#include <vcl/accessibletable.hxx> #include <tools/svlibrary.h> #include <tools/debug.hxx> @@ -100,7 +101,7 @@ namespace vcl return nullptr; } - virtual table::IAccessibleTableControl* + virtual rtl::Reference<table::IAccessibleTableControl> createAccessibleTableControl( const css::uno::Reference< css::accessibility::XAccessible >& /*_rxParent*/, table::IAccessibleTable& /*_rTable*/ |