toolkit/inc/controls/table/AccessibleGridControl.hxx | 8 toolkit/inc/controls/table/AccessibleGridControlBase.hxx | 43 --- toolkit/inc/controls/table/AccessibleGridControlHeaderCell.hxx | 9 toolkit/inc/controls/table/AccessibleGridControlTableBase.hxx | 2 toolkit/inc/controls/table/AccessibleGridControlTableCell.hxx | 10 toolkit/source/controls/table/AccessibleGridControl.cxx | 10 toolkit/source/controls/table/AccessibleGridControlBase.cxx | 33 -- toolkit/source/controls/table/AccessibleGridControlHeaderCell.cxx | 10 toolkit/source/controls/table/AccessibleGridControlTableCell.cxx | 12 toolkit/source/controls/table/tablecontrol.cxx | 6 vcl/inc/accessibility/accessiblelistboxentry.hxx | 32 -- vcl/source/accessibility/accessiblelistboxentry.cxx | 122 ---------- 12 files changed, 35 insertions(+), 262 deletions(-)
New commits: commit 735b2109f0cfb7f8f5fe2188a8e3ed6a71aa123d Author: Michael Weghorn <[email protected]> AuthorDate: Tue Jan 28 12:40:14 2025 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Wed Jan 29 08:26:19 2025 +0100 a11y: Use OAccessibleComponentHelper for AccessibleListBoxEntry Similar to how commit 7107db3fe773629cc511eb5922bc9c28c9c5c60a Author: Michael Weghorn <[email protected]> Date: Fri Jan 24 18:57:58 2025 +0100 toolkit a11y: Use OAccessibleComponentHelper for grid control did for AccessibleGridControlBase, also derive from OAccessibleComponentHelper for AccessibleListBoxEntry, to make use of the logic already implemented there instead of having to implement all the XAccessibleComponent and XAccessibleEventBroadcaster methods manually AccessibleListBoxEntry::GetBoundingBox_Impl already provides what is needed to implement AccessibleListBoxEntry::implGetBounds, just needs to convert to awt::Rectangle. Drop all of the other overrides that are no longer needed as the implementation is now provided by the OAccessibleComponentHelper base class. No change in behavior intended or observed when testing this with Accerciser and Orca and the qt6 VCL plugin with the "Tools" -> "AutoText" dialog in Writer, where this code path is used for items in the treeview. Change-Id: I5c95bc6135db92a6e9d736a134af2cbcc35a5e06 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180840 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/vcl/inc/accessibility/accessiblelistboxentry.hxx b/vcl/inc/accessibility/accessiblelistboxentry.hxx index 050dc948d9c4..9330c4da2e84 100644 --- a/vcl/inc/accessibility/accessiblelistboxentry.hxx +++ b/vcl/inc/accessibility/accessiblelistboxentry.hxx @@ -54,10 +54,8 @@ namespace accessibility class AccessibleListBox; // class AccessibleListBoxEntry ------------------------------------------ - typedef ::cppu::WeakComponentImplHelper< css::accessibility::XAccessible - , css::accessibility::XAccessibleContext - , css::accessibility::XAccessibleComponent - , css::accessibility::XAccessibleEventBroadcaster + typedef cppu::ImplInheritanceHelper<comphelper::OAccessibleComponentHelper + , css::accessibility::XAccessible , css::accessibility::XAccessibleAction , css::accessibility::XAccessibleSelection , css::accessibility::XAccessibleText @@ -65,8 +63,7 @@ namespace accessibility , css::lang::XServiceInfo > AccessibleListBoxEntry_BASE; /** the class AccessibleListBoxEntry represents the class for an accessible object of a listbox entry */ - class AccessibleListBoxEntry final : public ::cppu::BaseMutex - ,public AccessibleListBoxEntry_BASE + class AccessibleListBoxEntry final : public AccessibleListBoxEntry_BASE ,public ::comphelper::OCommonAccessibleText { friend class AccessibleListBox; @@ -77,32 +74,20 @@ namespace accessibility std::deque< sal_Int32 > m_aEntryPath; SvTreeListEntry* m_pSvLBoxEntry; // Needed for a11y focused item... - - /// client id in the AccessibleEventNotifier queue - sal_uInt32 m_nClientId; - unotools::WeakReference<AccessibleListBox> m_wListBox; tools::Rectangle GetBoundingBox_Impl() const; - tools::Rectangle GetBoundingBoxOnScreen_Impl() const; bool IsAlive_Impl() const; bool IsShowing_Impl() const; /// @throws css::lang::DisposedException /// @throws css::uno::RuntimeException tools::Rectangle GetBoundingBox(); - /// @throws css::lang::DisposedException - /// @throws css::uno::RuntimeException - tools::Rectangle GetBoundingBoxOnScreen(); /// @throws css::lang::IndexOutOfBoundsException void CheckActionIndex(sal_Int32 nIndex); /// @throws css::lang::DisposedException void EnsureIsAlive() const; - void NotifyAccessibleEvent( sal_Int16 _nEventId, const css::uno::Any& _aOldValue, const css::uno::Any& _aNewValue ); - - virtual ~AccessibleListBoxEntry() override; - /** this function is called upon disposing the component */ virtual void SAL_CALL disposing() override; @@ -129,6 +114,8 @@ namespace accessibility SvTreeListEntry* GetSvLBoxEntry() const { return m_pSvLBoxEntry; } + protected: + virtual css::awt::Rectangle implGetBounds() override; private: // XTypeProvider @@ -155,12 +142,7 @@ namespace accessibility virtual css::lang::Locale SAL_CALL getLocale( ) override; // XAccessibleComponent - virtual sal_Bool SAL_CALL containsPoint( const css::awt::Point& aPoint ) override; virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override; - virtual css::awt::Rectangle SAL_CALL getBounds( ) override; - virtual css::awt::Point SAL_CALL getLocation( ) override; - virtual css::awt::Point SAL_CALL getLocationOnScreen( ) override; - virtual css::awt::Size SAL_CALL getSize( ) override; virtual void SAL_CALL grabFocus( ) override; virtual sal_Int32 SAL_CALL getForeground( ) override; virtual sal_Int32 SAL_CALL getBackground( ) override; @@ -185,10 +167,6 @@ namespace accessibility virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; virtual sal_Bool SAL_CALL scrollSubstringTo( sal_Int32 nStartIndex, sal_Int32 nEndIndex, css::accessibility::AccessibleScrollType aScrollType) override; - // XAccessibleEventBroadcaster - virtual void SAL_CALL addAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override; - virtual void SAL_CALL removeAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override; - // XAccessibleAction virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) override; virtual sal_Bool SAL_CALL doAccessibleAction( sal_Int32 nIndex ) override; diff --git a/vcl/source/accessibility/accessiblelistboxentry.cxx b/vcl/source/accessibility/accessiblelistboxentry.cxx index 25ba2632137d..e6b690026635 100644 --- a/vcl/source/accessibility/accessiblelistboxentry.cxx +++ b/vcl/source/accessibility/accessiblelistboxentry.cxx @@ -55,27 +55,16 @@ namespace accessibility AccessibleListBoxEntry::AccessibleListBoxEntry( SvTreeListBox& _rListBox, SvTreeListEntry& rEntry, AccessibleListBox & rListBox) - : AccessibleListBoxEntry_BASE( m_aMutex ) + : AccessibleListBoxEntry_BASE() , m_pTreeListBox( &_rListBox ) , m_pSvLBoxEntry(&rEntry) - , m_nClientId( 0 ) , m_wListBox(&rListBox) { m_pTreeListBox->AddEventListener( LINK( this, AccessibleListBoxEntry, WindowEventListener ) ); _rListBox.FillEntryPath( m_pSvLBoxEntry, m_aEntryPath ); } - AccessibleListBoxEntry::~AccessibleListBoxEntry() - { - if ( IsAlive_Impl() ) - { - // increment ref count to prevent double call of Dtor - osl_atomic_increment( &m_refCount ); - dispose(); - } - } - IMPL_LINK( AccessibleListBoxEntry, WindowEventListener, VclWindowEvent&, rEvent, void ) { OSL_ENSURE( rEvent.GetWindow() , "AccessibleListBoxEntry::WindowEventListener: no event window!" ); @@ -114,18 +103,6 @@ namespace accessibility } } - void AccessibleListBoxEntry::NotifyAccessibleEvent( sal_Int16 _nEventId, - const css::uno::Any& _aOldValue, - const css::uno::Any& _aNewValue ) - { - Reference< uno::XInterface > xSource( *this ); - AccessibleEventObject aEventObj( xSource, _nEventId, _aNewValue, _aOldValue, -1 ); - - if (m_nClientId) - comphelper::AccessibleEventNotifier::addEvent( m_nClientId, aEventObj ); - } - - tools::Rectangle AccessibleListBoxEntry::GetBoundingBox_Impl() const { tools::Rectangle aRect; @@ -146,21 +123,6 @@ namespace accessibility return aRect; } - tools::Rectangle AccessibleListBoxEntry::GetBoundingBoxOnScreen_Impl() const - { - tools::Rectangle aRect; - SvTreeListEntry* pEntry = m_pTreeListBox->GetEntryFromPath( m_aEntryPath ); - if ( pEntry ) - { - aRect = m_pTreeListBox->GetBoundingRect( pEntry ); - Point aTopLeft = aRect.TopLeft(); - aTopLeft += Point(m_pTreeListBox->GetWindowExtentsAbsolute().TopLeft()); - aRect = tools::Rectangle( aTopLeft, aRect.GetSize() ); - } - - return aRect; - } - bool AccessibleListBoxEntry::IsAlive_Impl() const { return !rBHelper.bDisposed && !rBHelper.bInDispose && (m_pTreeListBox != nullptr); @@ -193,15 +155,6 @@ namespace accessibility return GetBoundingBox_Impl(); } - tools::Rectangle AccessibleListBoxEntry::GetBoundingBoxOnScreen() - { - SolarMutexGuard aSolarGuard; - ::osl::MutexGuard aGuard( m_aMutex ); - - EnsureIsAlive(); - return GetBoundingBoxOnScreen_Impl(); - } - void AccessibleListBoxEntry::CheckActionIndex(sal_Int32 nIndex) { if (nIndex < 0 || nIndex >= getAccessibleActionCount()) @@ -232,6 +185,11 @@ namespace accessibility nEndIndex = 0; } + css::awt::Rectangle AccessibleListBoxEntry::implGetBounds() + { + return vcl::unohelper::ConvertToAWTRect(GetBoundingBox_Impl()); + } + // XTypeProvider Sequence< sal_Int8 > AccessibleListBoxEntry::getImplementationId() { @@ -248,13 +206,7 @@ namespace accessibility Reference< XAccessible > xKeepAlive( this ); - // Send a disposing to all listeners. - if ( m_nClientId ) - { - ::comphelper::AccessibleEventNotifier::TClientId nId = m_nClientId; - m_nClientId = 0; - ::comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( nId, *this ); - } + OAccessibleComponentHelper::disposing(); // clean up m_wListBox.clear(); @@ -520,12 +472,6 @@ namespace accessibility // XAccessibleComponent - sal_Bool SAL_CALL AccessibleListBoxEntry::containsPoint( const awt::Point& rPoint ) - { - return tools::Rectangle(Point(), GetBoundingBox().GetSize()) - .Contains(vcl::unohelper::ConvertToVCLPoint(rPoint)); - } - Reference< XAccessible > SAL_CALL AccessibleListBoxEntry::getAccessibleAtPoint( const awt::Point& _aPoint ) { SolarMutexGuard aSolarGuard; @@ -547,26 +493,6 @@ namespace accessibility return xAcc; } - awt::Rectangle SAL_CALL AccessibleListBoxEntry::getBounds( ) - { - return vcl::unohelper::ConvertToAWTRect(GetBoundingBox()); - } - - awt::Point SAL_CALL AccessibleListBoxEntry::getLocation( ) - { - return vcl::unohelper::ConvertToAWTPoint(GetBoundingBox().TopLeft()); - } - - awt::Point SAL_CALL AccessibleListBoxEntry::getLocationOnScreen( ) - { - return vcl::unohelper::ConvertToAWTPoint(GetBoundingBoxOnScreen().TopLeft()); - } - - awt::Size SAL_CALL AccessibleListBoxEntry::getSize( ) - { - return vcl::unohelper::ConvertToAWTSize(GetBoundingBox().GetSize()); - } - void SAL_CALL AccessibleListBoxEntry::grabFocus( ) { // do nothing, because no focus for each item @@ -682,40 +608,6 @@ namespace accessibility return false; } - // XAccessibleEventBroadcaster - - void SAL_CALL AccessibleListBoxEntry::addAccessibleEventListener( const Reference< XAccessibleEventListener >& xListener ) - { - if (xListener.is()) - { - ::osl::MutexGuard aGuard( m_aMutex ); - if (!m_nClientId) - m_nClientId = comphelper::AccessibleEventNotifier::registerClient( ); - comphelper::AccessibleEventNotifier::addEventListener( m_nClientId, xListener ); - } - } - - void SAL_CALL AccessibleListBoxEntry::removeAccessibleEventListener( const Reference< XAccessibleEventListener >& xListener ) - { - if (!xListener.is()) - return; - - ::osl::MutexGuard aGuard( m_aMutex ); - - sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( m_nClientId, xListener ); - if ( !nListenerCount ) - { - // no listeners anymore - // -> revoke ourself. This may lead to the notifier thread dying (if we were the last client), - // and at least to us not firing any events anymore, in case somebody calls - // NotifyAccessibleEvent, again - sal_Int32 nId = m_nClientId; - m_nClientId = 0; - comphelper::AccessibleEventNotifier::revokeClient( nId ); - - } - } - // XAccessibleAction sal_Int32 SAL_CALL AccessibleListBoxEntry::getAccessibleActionCount( ) commit cc8d33cb4da053e4f7738ddf42660e60c0965e79 Author: Michael Weghorn <[email protected]> AuthorDate: Tue Jan 28 11:11:14 2025 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Wed Jan 29 08:26:12 2025 +0100 uno grid a11y: Deduplicate 2 cases doing the same Change-Id: I293213079fede1444f3d5e9f0bce5d03d30a9253 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180839 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/toolkit/source/controls/table/tablecontrol.cxx b/toolkit/source/controls/table/tablecontrol.cxx index 9ea268764edf..b3582a846d50 100644 --- a/toolkit/source/controls/table/tablecontrol.cxx +++ b/toolkit/source/controls/table/tablecontrol.cxx @@ -456,12 +456,8 @@ namespace svt::table rStateSet |= AccessibleStateType::MANAGES_DESCENDANTS; break; - case AccessibleTableControlObjType::ROWHEADERBAR: - rStateSet |= AccessibleStateType::VISIBLE; - rStateSet |= AccessibleStateType::MANAGES_DESCENDANTS; - break; - case AccessibleTableControlObjType::COLUMNHEADERBAR: + case AccessibleTableControlObjType::ROWHEADERBAR: rStateSet |= AccessibleStateType::VISIBLE; rStateSet |= AccessibleStateType::MANAGES_DESCENDANTS; break; commit 87ee0883b67b09ed857096d9d6dc069834efc2da Author: Michael Weghorn <[email protected]> AuthorDate: Tue Jan 28 11:09:06 2025 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Wed Jan 29 08:26:06 2025 +0100 uno grid a11y: Unify XAccessible implementation in base class By now, all AccessibleGridControlBase subclasses implement both, the XAccessible and XAccessibleContext interfaces, and their XAccessible::getAccessibleContext implementations return a reference to self. This is implemented in different ways: Either implementing it directly or using the GridControlAccessibleElement class that does it as base class. Unify and simplify this by letting AccessibleGridControlBase implement the XAccessible interface, and dropping the extra handling in all subclasses. (Other than the other implementations, AccessibleGridControlHeaderCell::getAccessibleContext was previously not using SolarMutexGuard, but I can't see a particular reason, so don't see a reason to override the new base class implementation.) Change-Id: Ibdb674c5d5556fcf1c5644a2f6d961985b0e3362 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180838 Reviewed-by: Michael Weghorn <[email protected]> Tested-by: Jenkins diff --git a/toolkit/inc/controls/table/AccessibleGridControl.hxx b/toolkit/inc/controls/table/AccessibleGridControl.hxx index 8d7b8133eb5a..47bbd611e0f0 100644 --- a/toolkit/inc/controls/table/AccessibleGridControl.hxx +++ b/toolkit/inc/controls/table/AccessibleGridControl.hxx @@ -32,9 +32,7 @@ namespace accessibility { /** This class represents the complete accessible Grid Control object. */ - class AccessibleGridControl final - : public cppu::ImplInheritanceHelper<AccessibleGridControlBase, - css::accessibility::XAccessible> + class AccessibleGridControl final : public AccessibleGridControlBase { virtual ~AccessibleGridControl() override = default; @@ -42,10 +40,6 @@ namespace accessibility { using AccessibleGridControlBase::disposing; virtual void SAL_CALL disposing() override; - // XAccessible - virtual css::uno::Reference<css::accessibility::XAccessibleContext> - SAL_CALL getAccessibleContext() override; - // XAccessibleContext ----------------------------------------------------- /** @return The count of visible children. */ diff --git a/toolkit/inc/controls/table/AccessibleGridControlBase.hxx b/toolkit/inc/controls/table/AccessibleGridControlBase.hxx index 0b3532ec3dda..f2f7a2785f84 100644 --- a/toolkit/inc/controls/table/AccessibleGridControlBase.hxx +++ b/toolkit/inc/controls/table/AccessibleGridControlBase.hxx @@ -47,7 +47,7 @@ namespace accessibility { implements basic functionality. */ class AccessibleGridControlBase : public cppu::ImplInheritanceHelper<comphelper::OAccessibleComponentHelper, - css::lang::XServiceInfo> + css::accessibility::XAccessible, css::lang::XServiceInfo> { public: /** Constructor. @@ -64,6 +64,11 @@ protected: virtual void SAL_CALL disposing() override; public: + // XAccessible + /** @return The XAccessibleContext interface of this object. */ + virtual css::uno::Reference<css::accessibility::XAccessibleContext> SAL_CALL + getAccessibleContext() override; + // XAccessibleContext /** @return A reference to the parent accessible object. */ @@ -186,42 +191,6 @@ protected: AccessibleTableControlObjType m_eObjType; }; - -// a version of AccessibleGridControlBase which implements not only the XAccessibleContext, -// but also the XAccessible - -typedef cppu::ImplInheritanceHelper <AccessibleGridControlBase, css::accessibility::XAccessible> - GridControlAccessibleElement_Base; - -class GridControlAccessibleElement : public GridControlAccessibleElement_Base -{ -protected: - /** Constructor sets specified name and description. - - @param rxParent XAccessible interface of the parent object. - @param rTable The Table control. - @param eObjType Type of table control - */ - GridControlAccessibleElement( - const css::uno::Reference< css::accessibility::XAccessible >& rxParent, - svt::table::TableControl& rTable, - AccessibleTableControlObjType eObjType ); - -protected: - virtual ~GridControlAccessibleElement() override; - -protected: - // XAccessible - - /** @return The XAccessibleContext interface of this object. */ - virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL - getAccessibleContext() override; - -private: - GridControlAccessibleElement( const GridControlAccessibleElement& ) = delete; - GridControlAccessibleElement& operator=( const GridControlAccessibleElement& ) = delete; -}; - // inlines inline AccessibleTableControlObjType AccessibleGridControlBase::getType() const diff --git a/toolkit/inc/controls/table/AccessibleGridControlHeaderCell.hxx b/toolkit/inc/controls/table/AccessibleGridControlHeaderCell.hxx index b7b406f19c68..25e6c3dd06ca 100644 --- a/toolkit/inc/controls/table/AccessibleGridControlHeaderCell.hxx +++ b/toolkit/inc/controls/table/AccessibleGridControlHeaderCell.hxx @@ -23,8 +23,7 @@ namespace accessibility { - class AccessibleGridControlHeaderCell final - : public cppu::ImplInheritanceHelper<AccessibleGridControlCell, css::accessibility::XAccessible> + class AccessibleGridControlHeaderCell final : public AccessibleGridControlCell { sal_Int32 m_nColumnRowId; public: @@ -45,12 +44,6 @@ namespace accessibility /** Grabs the focus to the GridControl. */ virtual void SAL_CALL grabFocus() override; - // XAccessible - - /** @return The XAccessibleContext interface of this object. */ - virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL - getAccessibleContext() override; - /** @return The name of this class. */ diff --git a/toolkit/inc/controls/table/AccessibleGridControlTableBase.hxx b/toolkit/inc/controls/table/AccessibleGridControlTableBase.hxx index 8e77da8aec3b..6c12bde959e4 100644 --- a/toolkit/inc/controls/table/AccessibleGridControlTableBase.hxx +++ b/toolkit/inc/controls/table/AccessibleGridControlTableBase.hxx @@ -29,7 +29,7 @@ namespace accessibility { -typedef cppu::ImplInheritanceHelper<GridControlAccessibleElement, css::accessibility::XAccessibleTable> +typedef cppu::ImplInheritanceHelper<AccessibleGridControlBase, css::accessibility::XAccessibleTable> AccessibleGridControlTableImplHelper; /** The Grid Control accessible table objects inherit from this base class. It diff --git a/toolkit/inc/controls/table/AccessibleGridControlTableCell.hxx b/toolkit/inc/controls/table/AccessibleGridControlTableCell.hxx index 334b1ffdaba9..6c31f6729274 100644 --- a/toolkit/inc/controls/table/AccessibleGridControlTableCell.hxx +++ b/toolkit/inc/controls/table/AccessibleGridControlTableCell.hxx @@ -63,9 +63,7 @@ namespace accessibility // implementation of a table cell of GridControl class AccessibleGridControlTableCell final - : public cppu::ImplInheritanceHelper<AccessibleGridControlCell, - css::accessibility::XAccessibleText, - css::accessibility::XAccessible>, + : public cppu::ImplInheritanceHelper<AccessibleGridControlCell, css::accessibility::XAccessibleText>, public ::comphelper::OCommonAccessibleText { private: @@ -104,12 +102,6 @@ namespace accessibility */ sal_Int64 implCreateStateSet() override; - // XAccessible ------------------------------------------------------------ - - /** @return The XAccessibleContext interface of this object. */ - virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL - getAccessibleContext() override; - // XAccessibleText virtual sal_Int32 SAL_CALL getCaretPosition() override; virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) override; diff --git a/toolkit/source/controls/table/AccessibleGridControl.cxx b/toolkit/source/controls/table/AccessibleGridControl.cxx index 1ae662be97d7..30710e27aa10 100644 --- a/toolkit/source/controls/table/AccessibleGridControl.cxx +++ b/toolkit/source/controls/table/AccessibleGridControl.cxx @@ -40,7 +40,7 @@ using namespace ::vcl; AccessibleGridControl::AccessibleGridControl( const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, svt::table::TableControl& _rTable) - : ImplInheritanceHelper(_rxParent, _rTable, AccessibleTableControlObjType::GRIDCONTROL) + : AccessibleGridControlBase(_rxParent, _rTable, AccessibleTableControlObjType::GRIDCONTROL) { } @@ -72,14 +72,6 @@ sal_Int64 AccessibleGridControl::implGetAccessibleChildCount() return m_aTable.GetAccessibleControlCount(); } -css::uno::Reference<css::accessibility::XAccessibleContext> - SAL_CALL AccessibleGridControl::getAccessibleContext() -{ - SolarMutexGuard aSolarGuard; - ensureAlive(); - return this; -} - // css::accessibility::XAccessibleContext --------------------------------------------------------- diff --git a/toolkit/source/controls/table/AccessibleGridControlBase.cxx b/toolkit/source/controls/table/AccessibleGridControlBase.cxx index cc14239f2e8a..2e90287260d7 100644 --- a/toolkit/source/controls/table/AccessibleGridControlBase.cxx +++ b/toolkit/source/controls/table/AccessibleGridControlBase.cxx @@ -64,6 +64,16 @@ void SAL_CALL AccessibleGridControlBase::disposing() //m_aTable = NULL; } +// css::accessibility::XAccessible + +css::uno::Reference<css::accessibility::XAccessibleContext> SAL_CALL AccessibleGridControlBase::getAccessibleContext() +{ + SolarMutexGuard g; + + ensureAlive(); + return this; +} + // css::accessibility::XAccessibleContext css::uno::Reference< css::accessibility::XAccessible > SAL_CALL AccessibleGridControlBase::getAccessibleParent() @@ -269,29 +279,6 @@ sal_Int32 SAL_CALL AccessibleGridControlBase::getBackground( ) return sal_Int32(nColor); } - -GridControlAccessibleElement::GridControlAccessibleElement( const css::uno::Reference< css::accessibility::XAccessible >& rxParent, - svt::table::TableControl& rTable, - AccessibleTableControlObjType eObjType ) - : GridControlAccessibleElement_Base(rxParent, rTable, eObjType) -{ -} - -// css::accessibility::XAccessible - -css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL GridControlAccessibleElement::getAccessibleContext() -{ - SolarMutexGuard g; - - ensureAlive(); - return this; -} - -GridControlAccessibleElement::~GridControlAccessibleElement( ) -{ -} - - } // namespace accessibility diff --git a/toolkit/source/controls/table/AccessibleGridControlHeaderCell.cxx b/toolkit/source/controls/table/AccessibleGridControlHeaderCell.cxx index b23c103a705f..522a0a6dbbda 100644 --- a/toolkit/source/controls/table/AccessibleGridControlHeaderCell.cxx +++ b/toolkit/source/controls/table/AccessibleGridControlHeaderCell.cxx @@ -33,7 +33,7 @@ AccessibleGridControlHeaderCell::AccessibleGridControlHeaderCell(sal_Int32 _nCol const Reference< XAccessible >& rxParent, svt::table::TableControl& rTable, AccessibleTableControlObjType eObjType) - : ImplInheritanceHelper(rxParent, rTable, + : AccessibleGridControlCell(rxParent, rTable, (eObjType == AccessibleTableControlObjType::ROWHEADERCELL) ? _nColumnRowId : 0, (eObjType == AccessibleTableControlObjType::ROWHEADERCELL) ? 0 : _nColumnRowId, eObjType) @@ -85,14 +85,6 @@ Reference<XAccessible > SAL_CALL AccessibleGridControlHeaderCell::getAccessibleC throw IndexOutOfBoundsException(); } - /** @return The XAccessibleContext interface of this object. */ - Reference< css::accessibility::XAccessibleContext > SAL_CALL AccessibleGridControlHeaderCell::getAccessibleContext() - { - ensureAlive(); - return this; - } - - /** Grabs the focus to the column header. */ void SAL_CALL AccessibleGridControlHeaderCell::grabFocus() { diff --git a/toolkit/source/controls/table/AccessibleGridControlTableCell.cxx b/toolkit/source/controls/table/AccessibleGridControlTableCell.cxx index 1145a79b2f7c..46bae992325c 100644 --- a/toolkit/source/controls/table/AccessibleGridControlTableCell.cxx +++ b/toolkit/source/controls/table/AccessibleGridControlTableCell.cxx @@ -165,18 +165,6 @@ namespace accessibility return nStateSet; } - - // css::accessibility::XAccessible - - /** @return The css::accessibility::XAccessibleContext interface of this object. */ - css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL AccessibleGridControlTableCell::getAccessibleContext() - { - SolarMutexGuard g; - - ensureAlive(); - return this; - } - // css::accessibility::XAccessibleContext sal_Int64 SAL_CALL AccessibleGridControlTableCell::getAccessibleIndexInParent()
