summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--accessibility/inc/extended/AccessibleGridControl.hxx10
-rw-r--r--accessibility/source/helper/acc_factory.cxx4
-rw-r--r--include/vcl/accessiblefactory.hxx3
-rw-r--r--include/vcl/accessibletable.hxx15
-rw-r--r--toolkit/source/controls/table/tablecontrol_impl.cxx14
-rw-r--r--toolkit/source/controls/table/tablecontrol_impl.hxx6
-rw-r--r--vcl/source/helper/svtaccessiblefactory.cxx3
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*/