diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2022-07-03 20:29:28 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-07-08 10:10:11 +0200 |
commit | 8d8e6c84e512c1a8b33aac75965b84481d1a1d13 (patch) | |
tree | 9ed209d057081d4283eb44b51c0d9af18f976eab /basctl/source | |
parent | 911ac42485b690df5cbbff6e3c04b111c1723aca (diff) |
[API CHANGE] Drop css::accessibility::XAccessibleStateSet
which is internal API, unused (as far as I can tell) by external
users.
This state is purely a bitset
(as implemented by utl::AccessibleStateSetHelper)
so we can just return it as a 64-bit value.
This shaves significant time off the performance profiles
of code that loads very complex shapes, because this state
is frequently used, and we no longer need to allocate a return
value on the heap for every call.
Change-Id: Icf1b3bd367c256646ae9015f9127025f59459c2c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136786
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'basctl/source')
4 files changed, 31 insertions, 41 deletions
diff --git a/basctl/source/accessibility/accessibledialogcontrolshape.cxx b/basctl/source/accessibility/accessibledialogcontrolshape.cxx index f885ff4bda1b..83035f55f606 100644 --- a/basctl/source/accessibility/accessibledialogcontrolshape.cxx +++ b/basctl/source/accessibility/accessibledialogcontrolshape.cxx @@ -27,7 +27,6 @@ #include <com/sun/star/accessibility/AccessibleStateType.hpp> #include <com/sun/star/lang/IndexOutOfBoundsException.hpp> #include <cppuhelper/supportsservice.hxx> -#include <unotools/accessiblestatesethelper.hxx> #include <unotools/accessiblerelationsethelper.hxx> #include <toolkit/awt/vclxfont.hxx> #include <toolkit/helper/convert.hxx> @@ -200,25 +199,25 @@ OUString AccessibleDialogControlShape::GetModelStringProperty( OUString const & } -void AccessibleDialogControlShape::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) +void AccessibleDialogControlShape::FillAccessibleStateSet( sal_Int64& rStateSet ) { - rStateSet.AddState( AccessibleStateType::ENABLED ); + rStateSet |= AccessibleStateType::ENABLED; - rStateSet.AddState( AccessibleStateType::VISIBLE ); + rStateSet |= AccessibleStateType::VISIBLE; - rStateSet.AddState( AccessibleStateType::SHOWING ); + rStateSet |= AccessibleStateType::SHOWING; - rStateSet.AddState( AccessibleStateType::FOCUSABLE ); + rStateSet |= AccessibleStateType::FOCUSABLE; if ( IsFocused() ) - rStateSet.AddState( AccessibleStateType::FOCUSED ); + rStateSet |= AccessibleStateType::FOCUSED; - rStateSet.AddState( AccessibleStateType::SELECTABLE ); + rStateSet |= AccessibleStateType::SELECTABLE; if ( IsSelected() ) - rStateSet.AddState( AccessibleStateType::SELECTED ); + rStateSet |= AccessibleStateType::SELECTED; - rStateSet.AddState( AccessibleStateType::RESIZABLE ); + rStateSet |= AccessibleStateType::RESIZABLE; } // OCommonAccessibleComponent @@ -397,22 +396,22 @@ Reference< XAccessibleRelationSet > AccessibleDialogControlShape::getAccessibleR } -Reference< XAccessibleStateSet > AccessibleDialogControlShape::getAccessibleStateSet( ) +sal_Int64 AccessibleDialogControlShape::getAccessibleStateSet( ) { OExternalLockGuard aGuard( this ); - rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper; + sal_Int64 nStateSet = 0; if ( !rBHelper.bDisposed && !rBHelper.bInDispose ) { - FillAccessibleStateSet( *pStateSetHelper ); + FillAccessibleStateSet( nStateSet ); } else { - pStateSetHelper->AddState( AccessibleStateType::DEFUNC ); + nStateSet |= AccessibleStateType::DEFUNC; } - return pStateSetHelper; + return nStateSet; } diff --git a/basctl/source/accessibility/accessibledialogwindow.cxx b/basctl/source/accessibility/accessibledialogwindow.cxx index e52d08bfe458..1d240ece0513 100644 --- a/basctl/source/accessibility/accessibledialogwindow.cxx +++ b/basctl/source/accessibility/accessibledialogwindow.cxx @@ -32,7 +32,6 @@ #include <com/sun/star/lang/IndexOutOfBoundsException.hpp> #include <cppuhelper/supportsservice.hxx> #include <tools/debug.hxx> -#include <unotools/accessiblestatesethelper.hxx> #include <unotools/accessiblerelationsethelper.hxx> #include <toolkit/awt/vclxfont.hxx> #include <toolkit/helper/convert.hxx> @@ -395,27 +394,27 @@ void AccessibleDialogWindow::ProcessWindowEvent( const VclWindowEvent& rVclWindo } -void AccessibleDialogWindow::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) +void AccessibleDialogWindow::FillAccessibleStateSet( sal_Int64& rStateSet ) { if ( !m_pDialogWindow ) return; if ( m_pDialogWindow->IsEnabled() ) - rStateSet.AddState( AccessibleStateType::ENABLED ); + rStateSet |= AccessibleStateType::ENABLED; - rStateSet.AddState( AccessibleStateType::FOCUSABLE ); + rStateSet |= AccessibleStateType::FOCUSABLE; if ( m_pDialogWindow->HasFocus() ) - rStateSet.AddState( AccessibleStateType::FOCUSED ); + rStateSet |= AccessibleStateType::FOCUSED; - rStateSet.AddState( AccessibleStateType::VISIBLE ); + rStateSet |= AccessibleStateType::VISIBLE; if ( m_pDialogWindow->IsVisible() ) - rStateSet.AddState( AccessibleStateType::SHOWING ); + rStateSet |= AccessibleStateType::SHOWING; - rStateSet.AddState( AccessibleStateType::OPAQUE ); + rStateSet |= AccessibleStateType::OPAQUE; - rStateSet.AddState( AccessibleStateType::RESIZABLE ); + rStateSet |= AccessibleStateType::RESIZABLE; } @@ -672,22 +671,22 @@ Reference< XAccessibleRelationSet > AccessibleDialogWindow::getAccessibleRelatio } -Reference< XAccessibleStateSet > AccessibleDialogWindow::getAccessibleStateSet( ) +sal_Int64 AccessibleDialogWindow::getAccessibleStateSet( ) { OExternalLockGuard aGuard( this ); - rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper; + sal_Int64 nStateSet = 0; if ( !rBHelper.bDisposed && !rBHelper.bInDispose ) { - FillAccessibleStateSet( *pStateSetHelper ); + FillAccessibleStateSet( nStateSet ); } else { - pStateSetHelper->AddState( AccessibleStateType::DEFUNC ); + nStateSet |= AccessibleStateType::DEFUNC; } - return pStateSetHelper; + return nStateSet; } diff --git a/basctl/source/inc/accessibledialogcontrolshape.hxx b/basctl/source/inc/accessibledialogcontrolshape.hxx index 2fbf73aa4e83..f43f29280eeb 100644 --- a/basctl/source/inc/accessibledialogcontrolshape.hxx +++ b/basctl/source/inc/accessibledialogcontrolshape.hxx @@ -27,10 +27,6 @@ namespace vcl { class Window; } -namespace utl { - class AccessibleStateSetHelper; -} - namespace basctl { @@ -71,7 +67,7 @@ private: OUString GetModelStringProperty( OUString const & pPropertyName ); - void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ); + void FillAccessibleStateSet( sal_Int64& rStateSet ); // OCommonAccessibleComponent virtual css::awt::Rectangle implGetBounds() override; @@ -112,7 +108,7 @@ public: virtual OUString SAL_CALL getAccessibleDescription( ) override; virtual OUString SAL_CALL getAccessibleName( ) override; virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override; - virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) override; + virtual sal_Int64 SAL_CALL getAccessibleStateSet( ) override; virtual css::lang::Locale SAL_CALL getLocale( ) override; // XAccessibleComponent diff --git a/basctl/source/inc/accessibledialogwindow.hxx b/basctl/source/inc/accessibledialogwindow.hxx index 2c3a065247ac..712d58158a0a 100644 --- a/basctl/source/inc/accessibledialogwindow.hxx +++ b/basctl/source/inc/accessibledialogwindow.hxx @@ -30,10 +30,6 @@ class VclSimpleEvent; class VclWindowEvent; -namespace utl { - class AccessibleStateSetHelper; -} - namespace basctl { @@ -88,7 +84,7 @@ private: DECL_LINK( WindowEventListener, VclWindowEvent&, void ); void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ); - void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ); + void FillAccessibleStateSet( sal_Int64& rStateSet ); // OCommonAccessibleComponent virtual css::awt::Rectangle implGetBounds( ) override; @@ -126,7 +122,7 @@ public: virtual OUString SAL_CALL getAccessibleDescription( ) override; virtual OUString SAL_CALL getAccessibleName( ) override; virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override; - virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) override; + virtual sal_Int64 SAL_CALL getAccessibleStateSet( ) override; virtual css::lang::Locale SAL_CALL getLocale( ) override; // XAccessibleComponent |