svtools a11y: Deduplicate XAccessible implementations

Let the base class, AccessibleTabBarBase implement
the XAccessible interface, instead of having all
subclasses doing it separately.

Change-Id: I0cd169a0b015514f5ba59e820d72688a041ab27c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185267
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
This commit is contained in:
Michael Weghorn
2025-05-15 06:47:16 +02:00
parent 0cf1574679
commit c76e7c317e
8 changed files with 23 additions and 60 deletions
@@ -187,18 +187,6 @@ Sequence< OUString > AccessibleTabBar::getSupportedServiceNames()
return { u"com.sun.star.awt.AccessibleTabBar"_ustr };
}
// XAccessible
Reference< XAccessibleContext > AccessibleTabBar::getAccessibleContext( )
{
OExternalLockGuard aGuard( this );
return this;
}
// XAccessibleContext
+2 -7
View File
@@ -30,10 +30,8 @@
namespace accessibility
{
class AccessibleTabBar final : public cppu::ImplInheritanceHelper<
AccessibleTabBarBase,
css::accessibility::XAccessible,
css::lang::XServiceInfo>
class AccessibleTabBar final
: public cppu::ImplInheritanceHelper<AccessibleTabBarBase, css::lang::XServiceInfo>
{
std::vector<css::uno::Reference<css::accessibility::XAccessible>> m_aAccessibleChildren;
@@ -54,9 +52,6 @@ public:
virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
// XAccessible
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;
@@ -20,6 +20,7 @@
#include "accessibletabbarbase.hxx"
#include "accessibletabbarpagelist.hxx"
#include <comphelper/accessiblecontexthelper.hxx>
#include <svtools/tabbar.hxx>
#include <vcl/vclevent.hxx>
@@ -39,6 +40,14 @@ AccessibleTabBarBase::~AccessibleTabBarBase()
ClearTabBarPointer();
}
css::uno::Reference<css::accessibility::XAccessibleContext>
AccessibleTabBarBase::getAccessibleContext()
{
comphelper::OExternalLockGuard aGuard(this);
return this;
}
IMPL_LINK( AccessibleTabBarBase, WindowEventListener, VclWindowEvent&, rEvent, void )
{
vcl::Window* pEventWindow = rEvent.GetWindow();
@@ -30,12 +30,18 @@ class VclWindowEvent;
namespace accessibility
{
class AccessibleTabBarBase : public comphelper::OAccessibleComponentHelper
class AccessibleTabBarBase
: public cppu::ImplInheritanceHelper<comphelper::OAccessibleComponentHelper,
css::accessibility::XAccessible>
{
public:
explicit AccessibleTabBarBase( TabBar* pTabBar );
virtual ~AccessibleTabBarBase() override;
// XAccessible
virtual css::uno::Reference<css::accessibility::XAccessibleContext>
SAL_CALL getAccessibleContext() override;
protected:
DECL_LINK( WindowEventListener, VclWindowEvent&, void );
@@ -214,18 +214,6 @@ Sequence< OUString > AccessibleTabBarPage::getSupportedServiceNames()
return { u"com.sun.star.awt.AccessibleTabBarPage"_ustr };
}
// XAccessible
Reference< XAccessibleContext > AccessibleTabBarPage::getAccessibleContext( )
{
OExternalLockGuard aGuard( this );
return this;
}
// XAccessibleContext
@@ -28,10 +28,8 @@
namespace accessibility
{
class AccessibleTabBarPage final : public cppu::ImplInheritanceHelper<
AccessibleTabBarBase,
css::accessibility::XAccessible,
css::lang::XServiceInfo>
class AccessibleTabBarPage final
: public cppu::ImplInheritanceHelper<AccessibleTabBarBase, css::lang::XServiceInfo>
{
friend class AccessibleTabBarPageList;
@@ -68,9 +66,6 @@ public:
virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
// XAccessible
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;
@@ -347,21 +347,8 @@ Sequence< OUString > AccessibleTabBarPageList::getSupportedServiceNames()
return { u"com.sun.star.awt.AccessibleTabBarPageList"_ustr };
}
// XAccessible
Reference< XAccessibleContext > AccessibleTabBarPageList::getAccessibleContext( )
{
OExternalLockGuard aGuard( this );
return this;
}
// XAccessibleContext
sal_Int64 AccessibleTabBarPageList::getAccessibleChildCount()
{
OExternalLockGuard aGuard( this );
@@ -33,11 +33,9 @@
namespace accessibility
{
class AccessibleTabBarPageList final : public cppu::ImplInheritanceHelper<
AccessibleTabBarBase,
css::accessibility::XAccessible,
css::accessibility::XAccessibleSelection,
css::lang::XServiceInfo>
class AccessibleTabBarPageList final
: public cppu::ImplInheritanceHelper<
AccessibleTabBarBase, css::accessibility::XAccessibleSelection, css::lang::XServiceInfo>
{
private:
typedef std::vector< rtl::Reference< AccessibleTabBarPage > > AccessibleChildren;
@@ -70,9 +68,6 @@ public:
virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
// XAccessible
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;