summaryrefslogtreecommitdiff
path: root/svx
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 /svx
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 'svx')
-rw-r--r--svx/inc/AccessibleTableShape.hxx10
-rw-r--r--svx/inc/pch/precompiled_svx.hxx1
-rw-r--r--svx/source/accessibility/AccessibleControlShape.cxx47
-rw-r--r--svx/source/accessibility/AccessibleFrameSelector.cxx84
-rw-r--r--svx/source/accessibility/AccessibleShape.cxx65
-rw-r--r--svx/source/accessibility/AccessibleTextHelper.cxx10
-rw-r--r--svx/source/accessibility/GraphCtlAccessibleContext.cxx19
-rw-r--r--svx/source/accessibility/charmapacc.cxx43
-rw-r--r--svx/source/accessibility/svxpixelctlaccessiblecontext.cxx59
-rw-r--r--svx/source/accessibility/svxrectctaccessiblecontext.cxx43
-rw-r--r--svx/source/dialog/weldeditview.cxx31
-rw-r--r--svx/source/inc/AccessibleFrameSelector.hxx4
-rw-r--r--svx/source/inc/GraphCtlAccessibleContext.hxx2
-rw-r--r--svx/source/inc/charmapacc.hxx4
-rw-r--r--svx/source/inc/svxpixelctlaccessiblecontext.hxx4
-rw-r--r--svx/source/inc/svxrectctaccessiblecontext.hxx4
-rw-r--r--svx/source/table/accessiblecell.cxx73
-rw-r--r--svx/source/table/accessiblecell.hxx6
-rw-r--r--svx/source/table/accessibletableshape.cxx10
19 files changed, 216 insertions, 303 deletions
diff --git a/svx/inc/AccessibleTableShape.hxx b/svx/inc/AccessibleTableShape.hxx
index 16dcf4fe38ae..eee79cac6cdd 100644
--- a/svx/inc/AccessibleTableShape.hxx
+++ b/svx/inc/AccessibleTableShape.hxx
@@ -114,11 +114,11 @@ public:
/// @throws css::lang::IndexOutOfBoundsException
void getColumnAndRow( sal_Int32 nChildIndex, sal_Int32& rnColumn, sal_Int32& rnRow );
// overwrite the SetState & ResetState to do special operation for table cell's internal text
- virtual bool SetState (sal_Int16 aState) override;
- virtual bool ResetState (sal_Int16 aState) override;
+ virtual bool SetState (sal_Int64 aState) override;
+ virtual bool ResetState (sal_Int64 aState) override;
// The following two methods are used to set state directly on table object, instead of the internal cell or paragraph.
- bool SetStateDirectly (sal_Int16 aState);
- bool ResetStateDirectly (sal_Int16 aState);
+ bool SetStateDirectly (sal_Int64 aState);
+ bool ResetStateDirectly (sal_Int64 aState);
// Get the currently active cell which is text editing
AccessibleCell* GetActiveAccessibleCell();
@@ -163,7 +163,7 @@ public:
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleStateSet( ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override;
virtual css::lang::Locale SAL_CALL getLocale( ) override;
diff --git a/svx/inc/pch/precompiled_svx.hxx b/svx/inc/pch/precompiled_svx.hxx
index f6206e076d4e..9f589d4e8e8c 100644
--- a/svx/inc/pch/precompiled_svx.hxx
+++ b/svx/inc/pch/precompiled_svx.hxx
@@ -353,7 +353,6 @@
#include <tools/urlobj.hxx>
#include <typelib/typedescription.h>
#include <uno/data.h>
-#include <unotools/accessiblestatesethelper.hxx>
#include <unotools/fontcvt.hxx>
#include <unotools/localedatawrapper.hxx>
#include <unotools/pathoptions.hxx>
diff --git a/svx/source/accessibility/AccessibleControlShape.cxx b/svx/source/accessibility/AccessibleControlShape.cxx
index 45b7edd75fe4..67ec411e4f6d 100644
--- a/svx/source/accessibility/AccessibleControlShape.cxx
+++ b/svx/source/accessibility/AccessibleControlShape.cxx
@@ -33,7 +33,6 @@
#include <com/sun/star/container/XContainer.hpp>
#include <comphelper/processfactory.hxx>
#include <comphelper/property.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
#include <svx/IAccessibleParent.hxx>
#include <svx/svdouno.hxx>
@@ -89,7 +88,7 @@ namespace
// determines whether or not a state which belongs to the inner context needs to be forwarded to the "composed"
// context
- bool isComposedState( const sal_Int16 _nState )
+ bool isComposedState( const sal_Int64 _nState )
{
return ( ( AccessibleStateType::INVALID != _nState )
&& ( AccessibleStateType::DEFUNC != _nState )
@@ -237,9 +236,8 @@ void AccessibleControlShape::Init()
// some initialization for our child manager, which is used in alive mode only
if ( isAliveMode( m_xUnoControl ) )
{
- Reference< XAccessibleStateSet > xStates( getAccessibleStateSet( ) );
- OSL_ENSURE( xStates.is(), "AccessibleControlShape::AccessibleControlShape: no inner state set!" );
- m_pChildManager->setTransientChildren( !xStates.is() || xStates->contains( AccessibleStateType::MANAGES_DESCENDANTS ) );
+ sal_Int64 nStates( getAccessibleStateSet( ) );
+ m_pChildManager->setTransientChildren( nStates & AccessibleStateType::MANAGES_DESCENDANTS );
}
// finally, aggregate a proxy for the control context
@@ -410,7 +408,7 @@ void SAL_CALL AccessibleControlShape::notifyEvent( const AccessibleEventObject&
if ( AccessibleEventId::STATE_CHANGED == _rEvent.EventId )
{
// multiplex this change
- sal_Int16 nLostState( 0 ), nGainedState( 0 );
+ sal_Int64 nLostState( 0 ), nGainedState( 0 );
_rEvent.OldValue >>= nLostState;
_rEvent.NewValue >>= nGainedState;
@@ -754,7 +752,7 @@ void AccessibleControlShape::adjustAccessibleRole( )
#ifdef DBG_UTIL
-bool AccessibleControlShape::SetState( sal_Int16 _nState )
+bool AccessibleControlShape::SetState( sal_Int64 _nState )
{
OSL_ENSURE( !isAliveMode( m_xUnoControl ) || !isComposedState( _nState ),
"AccessibleControlShape::SetState: a state which should be determined by the control context is set from outside!" );
@@ -768,26 +766,12 @@ void AccessibleControlShape::initializeComposedState()
// no action necessary for design mode
return;
- // get our own state set implementation
- ::utl::AccessibleStateSetHelper* pComposedStates = mxStateSet.get();
- OSL_PRECOND( pComposedStates,
- "AccessibleControlShape::initializeComposedState: no composed set!" );
-
// we need to reset some states of the composed set, because they either do not apply
// for controls in alive mode, or are in the responsibility of the UNO-control, anyway
- pComposedStates->RemoveState( AccessibleStateType::ENABLED ); // this is controlled by the UNO-control
- pComposedStates->RemoveState( AccessibleStateType::SENSITIVE ); // this is controlled by the UNO-control
- pComposedStates->RemoveState( AccessibleStateType::FOCUSABLE ); // this is controlled by the UNO-control
- pComposedStates->RemoveState( AccessibleStateType::SELECTABLE ); // this does not hold for an alive UNO-control
-#if OSL_DEBUG_LEVEL > 0
- // now, only states which are not in the responsibility of the UNO control should be part of this state set
- {
- const Sequence< sal_Int16 > aInitStates = pComposedStates->getStates();
- for ( sal_Int16 state : aInitStates )
- OSL_ENSURE( !isComposedState( state ),
- "AccessibleControlShape::initializeComposedState: invalid initial composed state (should be controlled by the UNO-control)!" );
- }
-#endif
+ mnStateSet &= ~AccessibleStateType::ENABLED; // this is controlled by the UNO-control
+ mnStateSet &= ~AccessibleStateType::SENSITIVE; // this is controlled by the UNO-control
+ mnStateSet &= ~AccessibleStateType::FOCUSABLE; // this is controlled by the UNO-control
+ mnStateSet &= ~AccessibleStateType::SELECTABLE; // this does not hold for an alive UNO-control
// get my inner context
Reference< XAccessibleContext > xInnerContext( m_aControlContext );
@@ -796,18 +780,15 @@ void AccessibleControlShape::initializeComposedState()
return;
// get all states of the inner context
- Reference< XAccessibleStateSet > xInnerStates( xInnerContext->getAccessibleStateSet() );
- OSL_ENSURE( xInnerStates.is(), "AccessibleControlShape::initializeComposedState: no inner states!" );
- Sequence< sal_Int16 > aInnerStates;
- if ( xInnerStates.is() )
- aInnerStates = xInnerStates->getStates();
+ sal_Int64 nInnerStates( xInnerContext->getAccessibleStateSet() );
// look which one are to be propagated to the composed context
- for ( const sal_Int16 nState : std::as_const(aInnerStates) )
+ for ( int i = 0; i < 63; ++i )
{
- if ( isComposedState( nState ) && !pComposedStates->contains( nState ) )
+ sal_Int64 nState = sal_Int64(1) << i;
+ if ( (nInnerStates & nState) && isComposedState( nState ) )
{
- pComposedStates->AddState( nState );
+ mnStateSet |= nState;
}
}
}
diff --git a/svx/source/accessibility/AccessibleFrameSelector.cxx b/svx/source/accessibility/AccessibleFrameSelector.cxx
index 3c3007fc0aff..4f5af742feaf 100644
--- a/svx/source/accessibility/AccessibleFrameSelector.cxx
+++ b/svx/source/accessibility/AccessibleFrameSelector.cxx
@@ -20,7 +20,6 @@
#include <AccessibleFrameSelector.hxx>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
-#include <unotools/accessiblestatesethelper.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
@@ -107,44 +106,38 @@ Reference< XAccessibleRelationSet > AccFrameSelector::getAccessibleRelationSet(
return mpFrameSel->get_accessible_relation_set();
}
-Reference< XAccessibleStateSet > AccFrameSelector::getAccessibleStateSet( )
+sal_Int64 AccFrameSelector::getAccessibleStateSet( )
{
SolarMutexGuard aGuard;
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if(!mpFrameSel)
- pStateSetHelper->AddState(AccessibleStateType::DEFUNC);
+ nStateSet |= AccessibleStateType::DEFUNC;
else
{
- const sal_Int16 aStandardStates[] =
- {
- AccessibleStateType::EDITABLE,
- AccessibleStateType::FOCUSABLE,
- AccessibleStateType::MULTI_SELECTABLE,
- AccessibleStateType::SELECTABLE,
- AccessibleStateType::SHOWING,
- AccessibleStateType::VISIBLE,
- AccessibleStateType::OPAQUE,
- 0};
- sal_Int16 nState = 0;
- while(aStandardStates[nState])
- {
- pStateSetHelper->AddState(aStandardStates[nState++]);
- }
+ // add standard states
+ nStateSet |=
+ AccessibleStateType::EDITABLE |
+ AccessibleStateType::FOCUSABLE |
+ AccessibleStateType::MULTI_SELECTABLE |
+ AccessibleStateType::SELECTABLE |
+ AccessibleStateType::SHOWING |
+ AccessibleStateType::VISIBLE |
+ AccessibleStateType::OPAQUE;
if(mpFrameSel->IsEnabled())
{
- pStateSetHelper->AddState(AccessibleStateType::ENABLED);
- pStateSetHelper->AddState(AccessibleStateType::SENSITIVE);
+ nStateSet |= AccessibleStateType::ENABLED;
+ nStateSet |= AccessibleStateType::SENSITIVE;
}
if (mpFrameSel->HasFocus())
{
- pStateSetHelper->AddState(AccessibleStateType::ACTIVE);
- pStateSetHelper->AddState(AccessibleStateType::FOCUSED);
- pStateSetHelper->AddState(AccessibleStateType::SELECTED);
+ nStateSet |= AccessibleStateType::ACTIVE;
+ nStateSet |= AccessibleStateType::FOCUSED;
+ nStateSet |= AccessibleStateType::SELECTED;
}
}
- return pStateSetHelper;
+ return nStateSet;
}
Reference< XAccessible > AccFrameSelector::getAccessibleAtPoint(
@@ -275,44 +268,37 @@ Reference< XAccessibleRelationSet > AccFrameSelectorChild::getAccessibleRelation
return xRet;
}
-Reference< XAccessibleStateSet > AccFrameSelectorChild::getAccessibleStateSet( )
+sal_Int64 AccFrameSelectorChild::getAccessibleStateSet( )
{
SolarMutexGuard aGuard;
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if(!mpFrameSel)
- pStateSetHelper->AddState(AccessibleStateType::DEFUNC);
+ nStateSet |= AccessibleStateType::DEFUNC;
else
{
- const sal_Int16 aStandardStates[] =
- {
- AccessibleStateType::EDITABLE,
- AccessibleStateType::FOCUSABLE,
- AccessibleStateType::MULTI_SELECTABLE,
- AccessibleStateType::SELECTABLE,
- AccessibleStateType::SHOWING,
- AccessibleStateType::VISIBLE,
- AccessibleStateType::OPAQUE,
- 0};
- sal_Int16 nState = 0;
- while(aStandardStates[nState])
- {
- pStateSetHelper->AddState(aStandardStates[nState++]);
- }
+ nStateSet |=
+ AccessibleStateType::EDITABLE |
+ AccessibleStateType::FOCUSABLE |
+ AccessibleStateType::MULTI_SELECTABLE |
+ AccessibleStateType::SELECTABLE |
+ AccessibleStateType::SHOWING |
+ AccessibleStateType::VISIBLE |
+ AccessibleStateType::OPAQUE;
if(mpFrameSel->IsEnabled())
{
- pStateSetHelper->AddState(AccessibleStateType::ENABLED);
- pStateSetHelper->AddState(AccessibleStateType::SENSITIVE);
+ nStateSet |= AccessibleStateType::ENABLED;
+ nStateSet |= AccessibleStateType::SENSITIVE;
}
if (mpFrameSel->HasFocus() && mpFrameSel->IsBorderSelected(meBorder))
{
- pStateSetHelper->AddState(AccessibleStateType::ACTIVE);
- pStateSetHelper->AddState(AccessibleStateType::FOCUSED);
- pStateSetHelper->AddState(AccessibleStateType::SELECTED);
+ nStateSet |= AccessibleStateType::ACTIVE;
+ nStateSet |= AccessibleStateType::FOCUSED;
+ nStateSet |= AccessibleStateType::SELECTED;
}
}
- return pStateSetHelper;
+ return nStateSet;
}
Reference< XAccessible > AccFrameSelectorChild::getAccessibleAtPoint(
diff --git a/svx/source/accessibility/AccessibleShape.cxx b/svx/source/accessibility/AccessibleShape.cxx
index 03996fe7f67e..2caf0841a104 100644
--- a/svx/source/accessibility/AccessibleShape.cxx
+++ b/svx/source/accessibility/AccessibleShape.cxx
@@ -44,7 +44,6 @@
#include <vcl/svapp.hxx>
#include <vcl/window.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
#include <svx/svdview.hxx>
#include <tools/diagnose_ex.h>
@@ -176,9 +175,6 @@ void AccessibleShape::Init()
void AccessibleShape::UpdateStates()
{
- if (mxStateSet == nullptr)
- return;
-
// Set the opaque state for certain shape types when their fill style is
// solid.
bool bShapeIsOpaque = false;
@@ -205,9 +201,9 @@ void AccessibleShape::UpdateStates()
}
}
if (bShapeIsOpaque)
- mxStateSet->AddState (AccessibleStateType::OPAQUE);
+ mnStateSet |= AccessibleStateType::OPAQUE;
else
- mxStateSet->RemoveState (AccessibleStateType::OPAQUE);
+ mnStateSet &= ~AccessibleStateType::OPAQUE;
// Set the selected state.
bool bShapeIsSelected = false;
@@ -218,9 +214,9 @@ void AccessibleShape::UpdateStates()
}
if (bShapeIsSelected)
- mxStateSet->AddState (AccessibleStateType::SELECTED);
+ mnStateSet |= AccessibleStateType::SELECTED;
else
- mxStateSet->RemoveState (AccessibleStateType::SELECTED);
+ mnStateSet &= ~AccessibleStateType::SELECTED;
}
OUString AccessibleShape::GetStyle() const
@@ -228,7 +224,7 @@ OUString AccessibleShape::GetStyle() const
return ShapeTypeHandler::CreateAccessibleBaseName( mxShape );
}
-bool AccessibleShape::SetState (sal_Int16 aState)
+bool AccessibleShape::SetState (sal_Int64 aState)
{
bool bStateHasChanged = false;
@@ -247,7 +243,7 @@ bool AccessibleShape::SetState (sal_Int16 aState)
}
-bool AccessibleShape::ResetState (sal_Int16 aState)
+bool AccessibleShape::ResetState (sal_Int64 aState)
{
bool bStateHasChanged = false;
@@ -266,7 +262,7 @@ bool AccessibleShape::ResetState (sal_Int16 aState)
}
-bool AccessibleShape::GetState (sal_Int16 aState)
+bool AccessibleShape::GetState (sal_Int64 aState)
{
if (aState == AccessibleStateType::FOCUSED && mpText != nullptr)
{
@@ -379,7 +375,7 @@ uno::Reference<XAccessibleRelationSet> SAL_CALL
SHOWING
VISIBLE
*/
-uno::Reference<XAccessibleStateSet> SAL_CALL
+sal_Int64 SAL_CALL
AccessibleShape::getAccessibleStateSet()
{
::osl::MutexGuard aGuard (m_aMutex);
@@ -390,18 +386,13 @@ uno::Reference<XAccessibleStateSet> SAL_CALL
return AccessibleContextBase::getAccessibleStateSet ();
}
- ::utl::AccessibleStateSetHelper* pStateSet = mxStateSet.get();
-
- if (!pStateSet)
- return Reference<XAccessibleStateSet>();
-
// Merge current FOCUSED state from edit engine.
if (mpText)
{
if (mpText->HaveFocus())
- pStateSet->AddState (AccessibleStateType::FOCUSED);
+ mnStateSet |= AccessibleStateType::FOCUSED;
else
- pStateSet->RemoveState (AccessibleStateType::FOCUSED);
+ mnStateSet &= ~AccessibleStateType::FOCUSED;
}
//Just when the document is not read-only,set states EDITABLE,RESIZABLE,MOVEABLE
css::uno::Reference<XAccessible> xTempAcc = getAccessibleParent();
@@ -411,33 +402,24 @@ uno::Reference<XAccessibleStateSet> SAL_CALL
xTempAccContext = xTempAcc->getAccessibleContext();
if( xTempAccContext.is() )
{
- css::uno::Reference<XAccessibleStateSet> rState =
- xTempAccContext->getAccessibleStateSet();
- if (rState.is())
+ sal_Int64 nState = xTempAccContext->getAccessibleStateSet();
+ if (nState & AccessibleStateType::EDITABLE)
{
- const css::uno::Sequence<short> aStates = rState->getStates();
- if (std::find(aStates.begin(), aStates.end(), AccessibleStateType::EDITABLE) != aStates.end())
- {
- pStateSet->AddState (AccessibleStateType::EDITABLE);
- pStateSet->AddState (AccessibleStateType::RESIZABLE);
- pStateSet->AddState (AccessibleStateType::MOVEABLE);
- }
+ mnStateSet |= AccessibleStateType::EDITABLE;
+ mnStateSet |= AccessibleStateType::RESIZABLE;
+ mnStateSet |= AccessibleStateType::MOVEABLE;
}
}
}
- // Create a copy of the state set that may be modified by the
- // caller without affecting the current state set.
- Reference<XAccessibleStateSet> xStateSet(new ::utl::AccessibleStateSetHelper(*pStateSet));
+ sal_Int64 nRetStateSet = mnStateSet;
if (mpParent && mpParent->IsDocumentSelAll())
{
- ::utl::AccessibleStateSetHelper* pCopyStateSet =
- static_cast<::utl::AccessibleStateSetHelper*>(xStateSet.get());
- pCopyStateSet->AddState (AccessibleStateType::SELECTED);
+ nRetStateSet |= AccessibleStateType::SELECTED;
}
- return xStateSet;
+ return nRetStateSet;
}
// XAccessibleComponent
@@ -780,12 +762,9 @@ sal_Bool SAL_CALL AccessibleShape::isAccessibleChildSelected( sal_Int32 nChildIn
}
else if( xContext->getAccessibleRole() == AccessibleRole::SHAPE )
{
- Reference< XAccessibleStateSet > pRState = xContext->getAccessibleStateSet();
- if( !pRState.is() )
- return false;
+ sal_Int64 pRState = xContext->getAccessibleStateSet();
- const uno::Sequence<short> aStates = pRState->getStates();
- return std::find(aStates.begin(), aStates.end(), AccessibleStateType::SELECTED) != aStates.end();
+ return bool(pRState & AccessibleStateType::SELECTED);
}
}
@@ -1012,9 +991,7 @@ void AccessibleShape::disposing()
// Make sure to send an event that this object loses the focus in the
// case that it has the focus.
- ::utl::AccessibleStateSetHelper* pStateSet = mxStateSet.get();
- if (pStateSet != nullptr)
- pStateSet->RemoveState (AccessibleStateType::FOCUSED);
+ mnStateSet &= ~AccessibleStateType::FOCUSED;
// Unregister from model.
if (mxShape.is() && maShapeTreeInfo.GetModelBroadcaster().is())
diff --git a/svx/source/accessibility/AccessibleTextHelper.cxx b/svx/source/accessibility/AccessibleTextHelper.cxx
index 2fa4c0a9b5eb..5c8ce773b028 100644
--- a/svx/source/accessibility/AccessibleTextHelper.cxx
+++ b/svx/source/accessibility/AccessibleTextHelper.cxx
@@ -122,7 +122,7 @@ namespace accessibility
return mnStartIndex;
}
- void SetAdditionalChildStates( VectorOfStates&& rChildStates );
+ void SetAdditionalChildStates( sal_Int64 nChildStates );
void Dispose();
@@ -352,9 +352,9 @@ namespace accessibility
}
}
- void AccessibleTextHelper_Impl::SetAdditionalChildStates( VectorOfStates&& rChildStates )
+ void AccessibleTextHelper_Impl::SetAdditionalChildStates( sal_Int64 nChildStates )
{
- maParaManager.SetAdditionalChildStates( std::move(rChildStates) );
+ maParaManager.SetAdditionalChildStates( nChildStates );
}
void AccessibleTextHelper_Impl::SetChildFocus( sal_Int32 nChild, bool bHaveFocus )
@@ -1642,9 +1642,9 @@ namespace accessibility
#endif
}
- void AccessibleTextHelper::SetAdditionalChildStates( VectorOfStates&& rChildStates )
+ void AccessibleTextHelper::SetAdditionalChildStates( sal_Int64 nChildStates )
{
- mpImpl->SetAdditionalChildStates( std::move(rChildStates) );
+ mpImpl->SetAdditionalChildStates( nChildStates );
}
void AccessibleTextHelper::UpdateChildren()
diff --git a/svx/source/accessibility/GraphCtlAccessibleContext.cxx b/svx/source/accessibility/GraphCtlAccessibleContext.cxx
index 531b75eb60cc..66189cf80c40 100644
--- a/svx/source/accessibility/GraphCtlAccessibleContext.cxx
+++ b/svx/source/accessibility/GraphCtlAccessibleContext.cxx
@@ -23,7 +23,6 @@
#include <com/sun/star/accessibility/IllegalAccessibleComponentStateException.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
-#include <unotools/accessiblestatesethelper.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
@@ -390,27 +389,27 @@ Reference< XAccessibleRelationSet > SAL_CALL SvxGraphCtrlAccessibleContext::getA
}
-Reference< XAccessibleStateSet > SAL_CALL SvxGraphCtrlAccessibleContext::getAccessibleStateSet()
+sal_Int64 SAL_CALL SvxGraphCtrlAccessibleContext::getAccessibleStateSet()
{
::SolarMutexGuard aGuard;
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if ( rBHelper.bDisposed || mbDisposed )
{
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
}
else
{
- pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE );
+ nStateSet |= AccessibleStateType::FOCUSABLE;
if( mpControl->HasFocus() )
- pStateSetHelper->AddState( AccessibleStateType::FOCUSED );
- pStateSetHelper->AddState( AccessibleStateType::OPAQUE );
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
- pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
+ nStateSet |= AccessibleStateType::FOCUSED;
+ nStateSet |= AccessibleStateType::OPAQUE;
+ nStateSet |= AccessibleStateType::SHOWING;
+ nStateSet |= AccessibleStateType::VISIBLE;
}
- return pStateSetHelper;
+ return nStateSet;
}
diff --git a/svx/source/accessibility/charmapacc.cxx b/svx/source/accessibility/charmapacc.cxx
index 0de91ccee450..adbda3a3957d 100644
--- a/svx/source/accessibility/charmapacc.cxx
+++ b/svx/source/accessibility/charmapacc.cxx
@@ -17,7 +17,6 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <unotools/accessiblestatesethelper.hxx>
#include <vcl/settings.hxx>
#include <vcl/svapp.hxx>
#include <stdio.h>
@@ -190,33 +189,33 @@ uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL SvxShowCha
}
-uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL SvxShowCharSetAcc::getAccessibleStateSet()
+sal_Int64 SAL_CALL SvxShowCharSetAcc::getAccessibleStateSet()
{
OExternalLockGuard aGuard( this );
- rtl::Reference<::utl::AccessibleStateSetHelper> pStateSet = new ::utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if (m_pParent)
{
// SELECTABLE
- pStateSet->AddState( AccessibleStateType::FOCUSABLE );
+ nStateSet |= AccessibleStateType::FOCUSABLE;
if (m_pParent->HasFocus())
{
- pStateSet->AddState( AccessibleStateType::FOCUSED );
- pStateSet->AddState( AccessibleStateType::ACTIVE );
+ nStateSet |= AccessibleStateType::FOCUSED;
+ nStateSet |= AccessibleStateType::ACTIVE;
}
if (m_pParent->IsEnabled())
{
- pStateSet->AddState( AccessibleStateType::ENABLED );
- pStateSet->AddState( AccessibleStateType::SENSITIVE );
+ nStateSet |= AccessibleStateType::ENABLED;
+ nStateSet |= AccessibleStateType::SENSITIVE;
}
if (m_pParent->IsVisible())
- pStateSet->AddState( AccessibleStateType::VISIBLE );
+ nStateSet |= AccessibleStateType::VISIBLE;
- pStateSet->AddState( AccessibleStateType::MANAGES_DESCENDANTS );
+ nStateSet |= AccessibleStateType::MANAGES_DESCENDANTS;
}
- return pStateSet;
+ return nStateSet;
}
@@ -462,37 +461,37 @@ uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL SvxShowCha
}
-uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL SvxShowCharSetItemAcc::getAccessibleStateSet()
+sal_Int64 SAL_CALL SvxShowCharSetItemAcc::getAccessibleStateSet()
{
OExternalLockGuard aGuard( this );
- rtl::Reference<::utl::AccessibleStateSetHelper> pStateSet = new ::utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if( mpParent )
{
if (mpParent->mrParent.IsEnabled())
{
- pStateSet->AddState( css::accessibility::AccessibleStateType::ENABLED );
+ nStateSet |= css::accessibility::AccessibleStateType::ENABLED;
// SELECTABLE
- pStateSet->AddState( css::accessibility::AccessibleStateType::SELECTABLE );
- pStateSet->AddState( css::accessibility::AccessibleStateType::FOCUSABLE );
+ nStateSet |= css::accessibility::AccessibleStateType::SELECTABLE;
+ nStateSet |= css::accessibility::AccessibleStateType::FOCUSABLE;
}
// SELECTED
if( mpParent->mrParent.GetSelectIndexId() == mpParent->mnId )
{
- pStateSet->AddState( css::accessibility::AccessibleStateType::SELECTED );
- pStateSet->AddState( css::accessibility::AccessibleStateType::FOCUSED );
+ nStateSet |= css::accessibility::AccessibleStateType::SELECTED;
+ nStateSet |= css::accessibility::AccessibleStateType::FOCUSED;
}
if ( mpParent->mnId >= mpParent->mrParent.FirstInView() && mpParent->mnId <= mpParent->mrParent.LastInView() )
{
- pStateSet->AddState( AccessibleStateType::VISIBLE );
- pStateSet->AddState( AccessibleStateType::SHOWING );
+ nStateSet |= AccessibleStateType::VISIBLE;
+ nStateSet |= AccessibleStateType::SHOWING;
}
- pStateSet->AddState( AccessibleStateType::TRANSIENT );
+ nStateSet |= AccessibleStateType::TRANSIENT;
}
- return pStateSet;
+ return nStateSet;
}
diff --git a/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx b/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx
index 4873b3cfe834..4b1ded51ac8d 100644
--- a/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx
+++ b/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx
@@ -19,7 +19,6 @@
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
-#include <unotools/accessiblestatesethelper.hxx>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
#include <toolkit/helper/convert.hxx>
@@ -106,36 +105,27 @@ Reference< XAccessibleRelationSet > SAL_CALL SvxPixelCtlAccessible::getAccessibl
return uno::Reference<css::accessibility::XAccessibleRelationSet>();
}
-uno::Reference< XAccessibleStateSet > SvxPixelCtlAccessible::getAccessibleStateSet( )
+sal_Int64 SvxPixelCtlAccessible::getAccessibleStateSet( )
{
::osl::MutexGuard aGuard( m_aMutex );
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if (mpPixelCtl)
{
- const sal_Int16 aStandardStates[] =
- {
- AccessibleStateType::FOCUSABLE,
- AccessibleStateType::SELECTABLE,
- AccessibleStateType::SHOWING,
- AccessibleStateType::VISIBLE,
- AccessibleStateType::OPAQUE,
- 0
- };
-
- sal_Int16 nState = 0;
- while (aStandardStates[nState])
- {
- pStateSetHelper->AddState(aStandardStates[nState++]);
- }
+ nStateSet |=
+ AccessibleStateType::FOCUSABLE |
+ AccessibleStateType::SELECTABLE |
+ AccessibleStateType::SHOWING |
+ AccessibleStateType::VISIBLE |
+ AccessibleStateType::OPAQUE;
if (mpPixelCtl->IsEnabled())
- pStateSetHelper->AddState(AccessibleStateType::ENABLED);
+ nStateSet |= AccessibleStateType::ENABLED;
if (mpPixelCtl->HasFocus())
- pStateSetHelper->AddState(AccessibleStateType::FOCUSED);
- pStateSetHelper->AddState(AccessibleStateType::MANAGES_DESCENDANTS);
+ nStateSet |= AccessibleStateType::FOCUSED;
+ nStateSet |= AccessibleStateType::MANAGES_DESCENDANTS;
}
- return pStateSetHelper;
+ return nStateSet;
}
uno::Reference<XAccessible > SAL_CALL SvxPixelCtlAccessible::getAccessibleAtPoint (
@@ -409,35 +399,34 @@ uno::Reference<XAccessibleRelationSet> SAL_CALL SvxPixelCtlAccessibleChild::getA
return uno::Reference< XAccessibleRelationSet >();
}
-uno::Reference< XAccessibleStateSet > SAL_CALL SvxPixelCtlAccessibleChild::getAccessibleStateSet()
+sal_Int64 SAL_CALL SvxPixelCtlAccessibleChild::getAccessibleStateSet()
{
::osl::MutexGuard aGuard( m_aMutex );
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if (!rBHelper.bDisposed)
{
-
- pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
- pStateSetHelper->AddState( AccessibleStateType::ENABLED );
- pStateSetHelper->AddState( AccessibleStateType::OPAQUE );
- pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
- pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
+ nStateSet |= AccessibleStateType::TRANSIENT;
+ nStateSet |= AccessibleStateType::ENABLED;
+ nStateSet |= AccessibleStateType::OPAQUE;
+ nStateSet |= AccessibleStateType::SELECTABLE;
+ nStateSet |= AccessibleStateType::SHOWING;
+ nStateSet |= AccessibleStateType::VISIBLE;
tools::Long nIndex = mrParentWindow.GetFocusPosIndex();
if ( nIndex == mnIndexInParent)
{
- pStateSetHelper->AddState( AccessibleStateType::SELECTED );
+ nStateSet |= AccessibleStateType::SELECTED;
}
if (mrParentWindow.GetBitmapPixel(sal_uInt16(mnIndexInParent)))
{
- pStateSetHelper->AddState( AccessibleStateType::CHECKED );
+ nStateSet |= AccessibleStateType::CHECKED;
}
}
else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
- return pStateSetHelper;
+ return nStateSet;
}
void SAL_CALL SvxPixelCtlAccessibleChild::disposing()
diff --git a/svx/source/accessibility/svxrectctaccessiblecontext.cxx b/svx/source/accessibility/svxrectctaccessiblecontext.cxx
index bca421c29a51..5b57fd318bba 100644
--- a/svx/source/accessibility/svxrectctaccessiblecontext.cxx
+++ b/svx/source/accessibility/svxrectctaccessiblecontext.cxx
@@ -20,7 +20,6 @@
#include <svxrectctaccessiblecontext.hxx>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
-#include <unotools/accessiblestatesethelper.hxx>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
#include <toolkit/helper/convert.hxx>
@@ -208,28 +207,28 @@ Reference< XAccessibleRelationSet > SAL_CALL SvxRectCtlAccessibleContext::getAcc
return uno::Reference<css::accessibility::XAccessibleRelationSet>();
}
-Reference< XAccessibleStateSet > SAL_CALL SvxRectCtlAccessibleContext::getAccessibleStateSet()
+sal_Int64 SAL_CALL SvxRectCtlAccessibleContext::getAccessibleStateSet()
{
::osl::MutexGuard aGuard( m_aMutex );
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if (mpRepr)
{
- pStateSetHelper->AddState( AccessibleStateType::ENABLED );
- pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE );
+ nStateSet |= AccessibleStateType::ENABLED;
+ nStateSet |= AccessibleStateType::FOCUSABLE;
if( mpRepr->HasFocus() )
- pStateSetHelper->AddState( AccessibleStateType::FOCUSED );
- pStateSetHelper->AddState( AccessibleStateType::OPAQUE );
+ nStateSet |= AccessibleStateType::FOCUSED;
+ nStateSet |= AccessibleStateType::OPAQUE;
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ nStateSet |= AccessibleStateType::SHOWING;
if( mpRepr->IsVisible() )
- pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
+ nStateSet |= AccessibleStateType::VISIBLE;
}
else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
- return pStateSetHelper;
+ return nStateSet;
}
void SAL_CALL SvxRectCtlAccessibleContext::grabFocus()
@@ -496,29 +495,29 @@ Reference<XAccessibleRelationSet> SAL_CALL SvxRectCtlChildAccessibleContext::get
return pRelationSetHelper;
}
-Reference< XAccessibleStateSet > SAL_CALL SvxRectCtlChildAccessibleContext::getAccessibleStateSet()
+sal_Int64 SAL_CALL SvxRectCtlChildAccessibleContext::getAccessibleStateSet()
{
::osl::MutexGuard aGuard( m_aMutex );
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if (!rBHelper.bDisposed)
{
if( mbIsChecked )
{
- pStateSetHelper->AddState( AccessibleStateType::CHECKED );
+ nStateSet |= AccessibleStateType::CHECKED;
}
- pStateSetHelper->AddState( AccessibleStateType::ENABLED );
- pStateSetHelper->AddState( AccessibleStateType::SENSITIVE );
- pStateSetHelper->AddState( AccessibleStateType::OPAQUE );
- pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
- pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
+ nStateSet |= AccessibleStateType::ENABLED;
+ nStateSet |= AccessibleStateType::SENSITIVE;
+ nStateSet |= AccessibleStateType::OPAQUE;
+ nStateSet |= AccessibleStateType::SELECTABLE;
+ nStateSet |= AccessibleStateType::SHOWING;
+ nStateSet |= AccessibleStateType::VISIBLE;
}
else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
- return pStateSetHelper;
+ return nStateSet;
}
// XAccessibleValue
diff --git a/svx/source/dialog/weldeditview.cxx b/svx/source/dialog/weldeditview.cxx
index 7d36ed3c79b9..1de0c5d237f8 100644
--- a/svx/source/dialog/weldeditview.cxx
+++ b/svx/source/dialog/weldeditview.cxx
@@ -48,7 +48,6 @@
#include <svx/AccessibleTextHelper.hxx>
#include <svx/weldeditview.hxx>
#include <tools/diagnose_ex.h>
-#include <unotools/accessiblestatesethelper.hxx>
#include <vcl/canvastools.hxx>
#include <vcl/cursor.hxx>
#include <vcl/event.hxx>
@@ -781,35 +780,33 @@ public:
return m_pController->GetDrawingArea()->get_accessible_relation_set();
}
- virtual css::uno::Reference<css::accessibility::XAccessibleStateSet>
- SAL_CALL getAccessibleStateSet() override
+ virtual sal_Int64 SAL_CALL getAccessibleStateSet() override
{
SolarMutexGuard aGuard;
- rtl::Reference<::utl::AccessibleStateSetHelper> pStateSet
- = new ::utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if (!m_pController || !m_xTextHelper)
- pStateSet->AddState(css::accessibility::AccessibleStateType::DEFUNC);
+ nStateSet |= css::accessibility::AccessibleStateType::DEFUNC;
else
{
- pStateSet->AddState(css::accessibility::AccessibleStateType::MULTI_LINE);
- pStateSet->AddState(css::accessibility::AccessibleStateType::ENABLED);
- pStateSet->AddState(css::accessibility::AccessibleStateType::EDITABLE);
- pStateSet->AddState(css::accessibility::AccessibleStateType::FOCUSABLE);
- pStateSet->AddState(css::accessibility::AccessibleStateType::SELECTABLE);
+ nStateSet |= css::accessibility::AccessibleStateType::MULTI_LINE;
+ nStateSet |= css::accessibility::AccessibleStateType::ENABLED;
+ nStateSet |= css::accessibility::AccessibleStateType::EDITABLE;
+ nStateSet |= css::accessibility::AccessibleStateType::FOCUSABLE;
+ nStateSet |= css::accessibility::AccessibleStateType::SELECTABLE;
if (m_pController->HasFocus())
- pStateSet->AddState(css::accessibility::AccessibleStateType::FOCUSED);
+ nStateSet |= css::accessibility::AccessibleStateType::FOCUSED;
if (m_pController->IsActive())
- pStateSet->AddState(css::accessibility::AccessibleStateType::ACTIVE);
+ nStateSet |= css::accessibility::AccessibleStateType::ACTIVE;
if (m_pController->IsVisible())
- pStateSet->AddState(css::accessibility::AccessibleStateType::SHOWING);
+ nStateSet |= css::accessibility::AccessibleStateType::SHOWING;
if (m_pController->IsReallyVisible())
- pStateSet->AddState(css::accessibility::AccessibleStateType::VISIBLE);
+ nStateSet |= css::accessibility::AccessibleStateType::VISIBLE;
if (COL_TRANSPARENT != m_pEditEngine->GetBackgroundColor())
- pStateSet->AddState(css::accessibility::AccessibleStateType::OPAQUE);
+ nStateSet |= css::accessibility::AccessibleStateType::OPAQUE;
}
- return pStateSet;
+ return nStateSet;
}
virtual css::lang::Locale SAL_CALL getLocale() override
diff --git a/svx/source/inc/AccessibleFrameSelector.hxx b/svx/source/inc/AccessibleFrameSelector.hxx
index 26f30aa6726b..cb6fbda5cd9e 100644
--- a/svx/source/inc/AccessibleFrameSelector.hxx
+++ b/svx/source/inc/AccessibleFrameSelector.hxx
@@ -56,7 +56,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;
//XAccessible
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
@@ -100,7 +100,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;
//XAccessible
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
diff --git a/svx/source/inc/GraphCtlAccessibleContext.hxx b/svx/source/inc/GraphCtlAccessibleContext.hxx
index 5e77d3a11c99..03bd43e1a09d 100644
--- a/svx/source/inc/GraphCtlAccessibleContext.hxx
+++ b/svx/source/inc/GraphCtlAccessibleContext.hxx
@@ -106,7 +106,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;
// XAccessibleEventBroadcaster
diff --git a/svx/source/inc/charmapacc.hxx b/svx/source/inc/charmapacc.hxx
index 193314ba4661..013c1da1c57d 100644
--- a/svx/source/inc/charmapacc.hxx
+++ b/svx/source/inc/charmapacc.hxx
@@ -92,7 +92,7 @@ namespace svx
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::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override { return this; }
virtual sal_Int32 SAL_CALL getForeground( ) override;
@@ -191,7 +191,7 @@ namespace svx
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::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override { return this; }
diff --git a/svx/source/inc/svxpixelctlaccessiblecontext.hxx b/svx/source/inc/svxpixelctlaccessiblecontext.hxx
index 2e0f0abcf931..8970e9983099 100644
--- a/svx/source/inc/svxpixelctlaccessiblecontext.hxx
+++ b/svx/source/inc/svxpixelctlaccessiblecontext.hxx
@@ -66,7 +66,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;
//XAccessible
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
@@ -118,7 +118,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::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
virtual sal_Int32 SAL_CALL getForeground( ) override;
diff --git a/svx/source/inc/svxrectctaccessiblecontext.hxx b/svx/source/inc/svxrectctaccessiblecontext.hxx
index ef20985a44b4..5e8f458d8895 100644
--- a/svx/source/inc/svxrectctaccessiblecontext.hxx
+++ b/svx/source/inc/svxrectctaccessiblecontext.hxx
@@ -68,7 +68,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::uno::Reference< css::accessibility::XAccessibleContext> SAL_CALL getAccessibleContext() override { return this; }
virtual sal_Int32 SAL_CALL getForeground() override;
@@ -161,7 +161,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::uno::Reference< css::accessibility::XAccessibleContext> SAL_CALL getAccessibleContext() override { return this; }
diff --git a/svx/source/table/accessiblecell.cxx b/svx/source/table/accessiblecell.cxx
index 1052ab5eb93b..0cb9072fb04b 100644
--- a/svx/source/table/accessiblecell.cxx
+++ b/svx/source/table/accessiblecell.cxx
@@ -33,7 +33,6 @@
#include <vcl/svapp.hxx>
#include <vcl/window.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <comphelper/string.hxx>
#include <comphelper/sequence.hxx>
#include <svx/IAccessibleViewForwarder.hxx>
@@ -87,7 +86,7 @@ void AccessibleCell::Init()
}
-bool AccessibleCell::SetState (sal_Int16 aState)
+bool AccessibleCell::SetState (sal_Int64 aState)
{
bool bStateHasChanged = false;
@@ -106,7 +105,7 @@ bool AccessibleCell::SetState (sal_Int16 aState)
}
-bool AccessibleCell::ResetState (sal_Int16 aState)
+bool AccessibleCell::ResetState (sal_Int64 aState)
{
bool bStateHasChanged = false;
@@ -178,65 +177,54 @@ Reference<XAccessible> SAL_CALL AccessibleCell::getAccessibleChild (sal_Int32 nI
SHOWING
VISIBLE
*/
-Reference<XAccessibleStateSet> SAL_CALL AccessibleCell::getAccessibleStateSet()
+sal_Int64 SAL_CALL AccessibleCell::getAccessibleStateSet()
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard (m_aMutex);
- Reference<XAccessibleStateSet> xStateSet;
+ sal_Int64 nStateSet = 0;
if (rBHelper.bDisposed || mpText == nullptr)
{
// Return a minimal state set that only contains the DEFUNC state.
- xStateSet = AccessibleContextBase::getAccessibleStateSet ();
+ nStateSet = AccessibleContextBase::getAccessibleStateSet ();
}
else
{
- if(mxStateSet)
+ // Merge current FOCUSED state from edit engine.
+ if (mpText != nullptr)
{
- // Merge current FOCUSED state from edit engine.
- if (mpText != nullptr)
- {
- if (mpText->HaveFocus())
- mxStateSet->AddState (AccessibleStateType::FOCUSED);
- else
- mxStateSet->RemoveState (AccessibleStateType::FOCUSED);
- }
- // Set the invisible state for merged cell
- if (mxCell.is() && mxCell->isMerged())
- mxStateSet->RemoveState(AccessibleStateType::VISIBLE);
+ if (mpText->HaveFocus())
+ mnStateSet |= AccessibleStateType::FOCUSED;
else
- mxStateSet->AddState(AccessibleStateType::VISIBLE);
+ mnStateSet &= ~AccessibleStateType::FOCUSED;
+ }
+ // Set the invisible state for merged cell
+ if (mxCell.is() && mxCell->isMerged())
+ mnStateSet &= ~AccessibleStateType::VISIBLE;
+ else
+ mnStateSet |= AccessibleStateType::VISIBLE;
- //Just when the parent table is not read-only,set states EDITABLE,RESIZABLE,MOVEABLE
- css::uno::Reference<XAccessible> xTempAcc = getAccessibleParent();
- if( xTempAcc.is() )
+ //Just when the parent table is not read-only,set states EDITABLE,RESIZABLE,MOVEABLE
+ css::uno::Reference<XAccessible> xTempAcc = getAccessibleParent();
+ if( xTempAcc.is() )
+ {
+ css::uno::Reference<XAccessibleContext>
+ xTempAccContext = xTempAcc->getAccessibleContext();
+ if( xTempAccContext.is() )
{
- css::uno::Reference<XAccessibleContext>
- xTempAccContext = xTempAcc->getAccessibleContext();
- if( xTempAccContext.is() )
+ if (xTempAccContext->getAccessibleStateSet() & AccessibleStateType::EDITABLE)
{
- css::uno::Reference<XAccessibleStateSet> rState =
- xTempAccContext->getAccessibleStateSet();
- if( rState.is() )
- {
- const css::uno::Sequence<short> aStates = rState->getStates();
- if (std::find(aStates.begin(), aStates.end(), AccessibleStateType::EDITABLE) != aStates.end())
- {
- mxStateSet->AddState (AccessibleStateType::EDITABLE);
- mxStateSet->AddState (AccessibleStateType::RESIZABLE);
- mxStateSet->AddState (AccessibleStateType::MOVEABLE);
- }
- }
+ mnStateSet |= AccessibleStateType::EDITABLE;
+ mnStateSet |= AccessibleStateType::RESIZABLE;
+ mnStateSet |= AccessibleStateType::MOVEABLE;
}
}
- // Create a copy of the state set that may be modified by the
- // caller without affecting the current state set.
- xStateSet.set(new ::utl::AccessibleStateSetHelper (*mxStateSet));
}
+ nStateSet = mnStateSet;
}
- return xStateSet;
+ return nStateSet;
}
@@ -491,8 +479,7 @@ void AccessibleCell::disposing()
// Make sure to send an event that this object loses the focus in the
// case that it has the focus.
- if (mxStateSet != nullptr)
- mxStateSet->RemoveState(AccessibleStateType::FOCUSED);
+ mnStateSet &= ~AccessibleStateType::FOCUSED;
if (mpText != nullptr)
{
diff --git a/svx/source/table/accessiblecell.hxx b/svx/source/table/accessiblecell.hxx
index 65b9665ab668..d08cc97e9207 100644
--- a/svx/source/table/accessiblecell.hxx
+++ b/svx/source/table/accessiblecell.hxx
@@ -54,8 +54,8 @@ public:
void Init();
- virtual bool SetState (sal_Int16 aState) override;
- virtual bool ResetState (sal_Int16 aState) override;
+ virtual bool SetState (sal_Int64 aState) override;
+ virtual bool ResetState (sal_Int64 aState) override;
// XInterface
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) override;
@@ -65,7 +65,7 @@ public:
// XAccessibleContext
virtual sal_Int32 SAL_CALL getAccessibleChildCount() override;
virtual css::uno::Reference< css::accessibility::XAccessible> SAL_CALL getAccessibleChild(sal_Int32 nIndex) override;
- virtual css::uno::Reference< css::accessibility::XAccessibleStateSet> SAL_CALL getAccessibleStateSet() override;
+ virtual sal_Int64 SAL_CALL getAccessibleStateSet() override;
virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override;
virtual OUString SAL_CALL getAccessibleName() override;
const sdr::table::CellRef& getCellRef() const { return mxCell;}
diff --git a/svx/source/table/accessibletableshape.cxx b/svx/source/table/accessibletableshape.cxx
index 540ae311687e..cd29e8dbf1bc 100644
--- a/svx/source/table/accessibletableshape.cxx
+++ b/svx/source/table/accessibletableshape.cxx
@@ -954,7 +954,7 @@ AccessibleCell* AccessibleTableShape::GetActiveAccessibleCell()
}
//If current active cell is in editing, the focus state should be set to internal text
-bool AccessibleTableShape::SetState (sal_Int16 aState)
+bool AccessibleTableShape::SetState (sal_Int64 aState)
{
if( aState == AccessibleStateType::FOCUSED )
{
@@ -967,7 +967,7 @@ bool AccessibleTableShape::SetState (sal_Int16 aState)
}
//If current active cell is in editing, the focus state should be reset to internal text
-bool AccessibleTableShape::ResetState (sal_Int16 aState)
+bool AccessibleTableShape::ResetState (sal_Int64 aState)
{
if( aState == AccessibleStateType::FOCUSED )
{
@@ -979,12 +979,12 @@ bool AccessibleTableShape::ResetState (sal_Int16 aState)
return AccessibleShape::ResetState (aState);
}
-bool AccessibleTableShape::SetStateDirectly (sal_Int16 aState)
+bool AccessibleTableShape::SetStateDirectly (sal_Int64 aState)
{
return AccessibleContextBase::SetState (aState);
}
-bool AccessibleTableShape::ResetStateDirectly (sal_Int16 aState)
+bool AccessibleTableShape::ResetStateDirectly (sal_Int64 aState)
{
return AccessibleContextBase::ResetState (aState);
}
@@ -1051,7 +1051,7 @@ OUString SAL_CALL AccessibleTableHeaderShape::getAccessibleName()
return mpTable->getAccessibleName();
}
-Reference< XAccessibleStateSet > SAL_CALL AccessibleTableHeaderShape::getAccessibleStateSet()
+sal_Int64 SAL_CALL AccessibleTableHeaderShape::getAccessibleStateSet()
{
return mpTable->getAccessibleStateSet();
}