summaryrefslogtreecommitdiff
path: root/basctl/source
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2022-07-03 20:29:28 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2022-07-08 10:10:11 +0200
commit8d8e6c84e512c1a8b33aac75965b84481d1a1d13 (patch)
tree9ed209d057081d4283eb44b51c0d9af18f976eab /basctl/source
parent911ac42485b690df5cbbff6e3c04b111c1723aca (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')
-rw-r--r--basctl/source/accessibility/accessibledialogcontrolshape.cxx29
-rw-r--r--basctl/source/accessibility/accessibledialogwindow.cxx27
-rw-r--r--basctl/source/inc/accessibledialogcontrolshape.hxx8
-rw-r--r--basctl/source/inc/accessibledialogwindow.hxx8
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