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 /vcl/source/treelist | |
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 'vcl/source/treelist')
-rw-r--r-- | vcl/source/treelist/svtabbx.cxx | 49 | ||||
-rw-r--r-- | vcl/source/treelist/treelistbox.cxx | 21 |
2 files changed, 34 insertions, 36 deletions
diff --git a/vcl/source/treelist/svtabbx.cxx b/vcl/source/treelist/svtabbx.cxx index ec403682a35d..d4fb5db37c39 100644 --- a/vcl/source/treelist/svtabbx.cxx +++ b/vcl/source/treelist/svtabbx.cxx @@ -23,7 +23,6 @@ #include <vcl/headbar.hxx> #include <vcl/toolkit/svlbitm.hxx> #include <vcl/toolkit/treelistentry.hxx> -#include <unotools/accessiblestatesethelper.hxx> #include <com/sun/star/accessibility/AccessibleStateType.hpp> #include <rtl/ustrbuf.hxx> #include <sal/log.hxx> @@ -921,30 +920,30 @@ OUString SvHeaderTabListBox::GetAccessibleObjectDescription( AccessibleBrowseBox return aRetText; } -void SvHeaderTabListBox::FillAccessibleStateSet( ::utl::AccessibleStateSetHelper& _rStateSet, AccessibleBrowseBoxObjType _eType ) const +void SvHeaderTabListBox::FillAccessibleStateSet( sal_Int64& _rStateSet, AccessibleBrowseBoxObjType _eType ) const { switch( _eType ) { case AccessibleBrowseBoxObjType::BrowseBox: case AccessibleBrowseBoxObjType::Table: { - _rStateSet.AddState( AccessibleStateType::FOCUSABLE ); + _rStateSet |= AccessibleStateType::FOCUSABLE; if ( HasFocus() ) - _rStateSet.AddState( AccessibleStateType::FOCUSED ); + _rStateSet |= AccessibleStateType::FOCUSED; if ( IsActive() ) - _rStateSet.AddState( AccessibleStateType::ACTIVE ); + _rStateSet |= AccessibleStateType::ACTIVE; if ( IsEnabled() ) { - _rStateSet.AddState( AccessibleStateType::ENABLED ); - _rStateSet.AddState( AccessibleStateType::SENSITIVE ); + _rStateSet |= AccessibleStateType::ENABLED; + _rStateSet |= AccessibleStateType::SENSITIVE; } if ( IsReallyVisible() ) - _rStateSet.AddState( AccessibleStateType::VISIBLE ); + _rStateSet |= AccessibleStateType::VISIBLE; if ( _eType == AccessibleBrowseBoxObjType::Table ) { - _rStateSet.AddState( AccessibleStateType::MANAGES_DESCENDANTS ); - _rStateSet.AddState( AccessibleStateType::MULTI_SELECTABLE ); + _rStateSet |= AccessibleStateType::MANAGES_DESCENDANTS; + _rStateSet |= AccessibleStateType::MULTI_SELECTABLE; } break; } @@ -954,21 +953,21 @@ void SvHeaderTabListBox::FillAccessibleStateSet( ::utl::AccessibleStateSetHelper sal_Int32 nCurRow = GetCurrRow(); sal_uInt16 nCurColumn = GetCurrColumn(); if ( IsCellVisible( nCurRow, nCurColumn ) ) - _rStateSet.AddState( AccessibleStateType::VISIBLE ); + _rStateSet |= AccessibleStateType::VISIBLE; if ( IsEnabled() ) - _rStateSet.AddState( AccessibleStateType::ENABLED ); - _rStateSet.AddState( AccessibleStateType::TRANSIENT ); + _rStateSet |= AccessibleStateType::ENABLED; + _rStateSet |= AccessibleStateType::TRANSIENT; break; } case AccessibleBrowseBoxObjType::RowHeaderCell: case AccessibleBrowseBoxObjType::ColumnHeaderCell: { - _rStateSet.AddState( AccessibleStateType::VISIBLE ); - _rStateSet.AddState( AccessibleStateType::FOCUSABLE ); - _rStateSet.AddState( AccessibleStateType::TRANSIENT ); + _rStateSet |= AccessibleStateType::VISIBLE; + _rStateSet |= AccessibleStateType::FOCUSABLE; + _rStateSet |= AccessibleStateType::TRANSIENT; if ( IsEnabled() ) - _rStateSet.AddState( AccessibleStateType::ENABLED ); + _rStateSet |= AccessibleStateType::ENABLED; break; } default: @@ -976,24 +975,24 @@ void SvHeaderTabListBox::FillAccessibleStateSet( ::utl::AccessibleStateSetHelper } } -void SvHeaderTabListBox::FillAccessibleStateSetForCell( ::utl::AccessibleStateSetHelper& _rStateSet, sal_Int32 _nRow, sal_uInt16 _nColumn ) const +void SvHeaderTabListBox::FillAccessibleStateSetForCell( sal_Int64& _rStateSet, sal_Int32 _nRow, sal_uInt16 _nColumn ) const { - _rStateSet.AddState( AccessibleStateType::SELECTABLE ); - _rStateSet.AddState( AccessibleStateType::TRANSIENT ); + _rStateSet |= AccessibleStateType::SELECTABLE; + _rStateSet |= AccessibleStateType::TRANSIENT; if ( IsCellVisible( _nRow, _nColumn ) ) { - _rStateSet.AddState( AccessibleStateType::VISIBLE ); - _rStateSet.AddState( AccessibleStateType::ENABLED ); + _rStateSet |= AccessibleStateType::VISIBLE; + _rStateSet |= AccessibleStateType::ENABLED; } if ( IsRowSelected( _nRow ) ) { - _rStateSet.AddState( AccessibleStateType::ACTIVE ); - _rStateSet.AddState( AccessibleStateType::SELECTED ); + _rStateSet |= AccessibleStateType::ACTIVE; + _rStateSet |= AccessibleStateType::SELECTED; } if ( IsEnabled() ) - _rStateSet.AddState( AccessibleStateType::ENABLED ); + _rStateSet |= AccessibleStateType::ENABLED; } void SvHeaderTabListBox::GrabTableFocus() diff --git a/vcl/source/treelist/treelistbox.cxx b/vcl/source/treelist/treelistbox.cxx index 7260cb69f078..4328895c1c6c 100644 --- a/vcl/source/treelist/treelistbox.cxx +++ b/vcl/source/treelist/treelistbox.cxx @@ -34,7 +34,6 @@ #include <vcl/decoview.hxx> #include <vcl/uitest/uiobject.hxx> #include <sot/formats.hxx> -#include <unotools/accessiblestatesethelper.hxx> #include <comphelper/string.hxx> #include <sal/log.hxx> #include <tools/debug.hxx> @@ -3479,31 +3478,31 @@ css::uno::Reference< XAccessible > SvTreeListBox::CreateAccessible() return xAccessible; } -void SvTreeListBox::FillAccessibleEntryStateSet( SvTreeListEntry* pEntry, ::utl::AccessibleStateSetHelper& rStateSet ) const +void SvTreeListBox::FillAccessibleEntryStateSet( SvTreeListEntry* pEntry, sal_Int64& rStateSet ) const { assert(pEntry && "SvTreeListBox::FillAccessibleEntryStateSet: invalid entry"); if ( pEntry->HasChildrenOnDemand() || pEntry->HasChildren() ) { - rStateSet.AddState( AccessibleStateType::EXPANDABLE ); + rStateSet |= AccessibleStateType::EXPANDABLE; if ( IsExpanded( pEntry ) ) - rStateSet.AddState( sal_Int16(AccessibleStateType::EXPANDED) ); + rStateSet |= AccessibleStateType::EXPANDED; } if ( GetCheckButtonState( pEntry ) == SvButtonState::Checked ) - rStateSet.AddState( AccessibleStateType::CHECKED ); + rStateSet |= AccessibleStateType::CHECKED; if ( IsEntryVisible( pEntry ) ) - rStateSet.AddState( AccessibleStateType::VISIBLE ); + rStateSet |= AccessibleStateType::VISIBLE; if ( IsSelected( pEntry ) ) - rStateSet.AddState( AccessibleStateType::SELECTED ); + rStateSet |= AccessibleStateType::SELECTED; if ( IsEnabled() ) { - rStateSet.AddState( AccessibleStateType::ENABLED ); - rStateSet.AddState( AccessibleStateType::FOCUSABLE ); - rStateSet.AddState( AccessibleStateType::SELECTABLE ); + rStateSet |= AccessibleStateType::ENABLED; + rStateSet |= AccessibleStateType::FOCUSABLE; + rStateSet |= AccessibleStateType::SELECTABLE; SvViewDataEntry* pViewDataNewCur = GetViewDataEntry(pEntry); if (pViewDataNewCur && pViewDataNewCur->HasFocus()) - rStateSet.AddState( AccessibleStateType::FOCUSED ); + rStateSet |= AccessibleStateType::FOCUSED; } } |