summaryrefslogtreecommitdiffstats
path: root/accessibility/source/extended/AccessibleGridControlBase.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'accessibility/source/extended/AccessibleGridControlBase.cxx')
-rw-r--r--accessibility/source/extended/AccessibleGridControlBase.cxx62
1 files changed, 28 insertions, 34 deletions
diff --git a/accessibility/source/extended/AccessibleGridControlBase.cxx b/accessibility/source/extended/AccessibleGridControlBase.cxx
index c118c70f7a32..a57946989e1b 100644
--- a/accessibility/source/extended/AccessibleGridControlBase.cxx
+++ b/accessibility/source/extended/AccessibleGridControlBase.cxx
@@ -19,6 +19,7 @@
#include <extended/AccessibleGridControlBase.hxx>
#include <toolkit/helper/convert.hxx>
+#include <utility>
#include <vcl/accessibletable.hxx>
#include <vcl/svapp.hxx>
#include <vcl/window.hxx>
@@ -47,15 +48,13 @@ using namespace com::sun::star::accessibility::AccessibleStateType;
AccessibleGridControlBase::AccessibleGridControlBase(
- const css::uno::Reference< css::accessibility::XAccessible >& rxParent,
+ css::uno::Reference< css::accessibility::XAccessible > xParent,
::vcl::table::IAccessibleTable& rTable,
::vcl::table::AccessibleTableControlObjType eObjType ) :
AccessibleGridControlImplHelper( m_aMutex ),
- m_xParent( rxParent ),
+ m_xParent(std::move( xParent )),
m_aTable( rTable),
m_eObjType( eObjType ),
- m_aName( rTable.GetAccessibleObjectName( eObjType, 0, 0 ) ),
- m_aDescription( rTable.GetAccessibleObjectDescription( eObjType ) ),
m_aClientId(0)
{
}
@@ -95,14 +94,14 @@ css::uno::Reference< css::accessibility::XAccessible > SAL_CALL AccessibleGridCo
return m_xParent;
}
-sal_Int32 SAL_CALL AccessibleGridControlBase::getAccessibleIndexInParent()
+sal_Int64 SAL_CALL AccessibleGridControlBase::getAccessibleIndexInParent()
{
SolarMutexGuard g;
ensureIsAlive();
// -1 for child not found/no parent (according to specification)
- sal_Int32 nRet = -1;
+ sal_Int64 nRet = -1;
css::uno::Reference< uno::XInterface > xMeMyselfAndI( static_cast< css::accessibility::XAccessibleContext* >( this ), uno::UNO_QUERY );
@@ -115,8 +114,8 @@ sal_Int32 SAL_CALL AccessibleGridControlBase::getAccessibleIndexInParent()
{
css::uno::Reference< uno::XInterface > xChild;
- sal_Int32 nChildCount = xParentContext->getAccessibleChildCount();
- for( sal_Int32 nChild = 0; nChild < nChildCount; ++nChild )
+ sal_Int64 nChildCount = xParentContext->getAccessibleChildCount();
+ for( sal_Int64 nChild = 0; nChild < nChildCount; ++nChild )
{
xChild.set(xParentContext->getAccessibleChild( nChild ), css::uno::UNO_QUERY);
if ( xMeMyselfAndI.get() == xChild.get() )
@@ -135,7 +134,7 @@ OUString SAL_CALL AccessibleGridControlBase::getAccessibleDescription()
SolarMutexGuard g;
ensureIsAlive();
- return m_aDescription;
+ return m_aTable.GetAccessibleObjectDescription(m_eObjType);
}
OUString SAL_CALL AccessibleGridControlBase::getAccessibleName()
@@ -143,7 +142,7 @@ OUString SAL_CALL AccessibleGridControlBase::getAccessibleName()
SolarMutexGuard g;
ensureIsAlive();
- return m_aName;
+ return m_aTable.GetAccessibleObjectName(m_eObjType, 0, 0);
}
css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL
@@ -156,13 +155,13 @@ AccessibleGridControlBase::getAccessibleRelationSet()
return new utl::AccessibleRelationSetHelper;
}
-css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL
+sal_Int64 SAL_CALL
AccessibleGridControlBase::getAccessibleStateSet()
{
SolarMutexGuard aSolarGuard;
// don't check whether alive -> StateSet may contain DEFUNC
- return implCreateStateSetHelper();
+ return implCreateStateSet();
}
lang::Locale SAL_CALL AccessibleGridControlBase::getLocale()
@@ -261,7 +260,7 @@ sal_Bool SAL_CALL AccessibleGridControlBase::supportsService(
Sequence< OUString > SAL_CALL AccessibleGridControlBase::getSupportedServiceNames()
{
- return { "com.sun.star.accessibility.AccessibleContext" };
+ return { u"com.sun.star.accessibility.AccessibleContext"_ustr };
}
// internal virtual methods
@@ -279,22 +278,21 @@ bool AccessibleGridControlBase::implIsShowing()
return bShowing;
}
-rtl::Reference<::utl::AccessibleStateSetHelper> AccessibleGridControlBase::implCreateStateSetHelper()
+sal_Int64 AccessibleGridControlBase::implCreateStateSet()
{
- rtl::Reference<::utl::AccessibleStateSetHelper>
- pStateSetHelper = new ::utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if( isAlive() )
{
// SHOWING done with m_xParent
if( implIsShowing() )
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ nStateSet |= AccessibleStateType::SHOWING;
// GridControl fills StateSet with states depending on object type
- m_aTable.FillAccessibleStateSet( *pStateSetHelper, getType() );
+ m_aTable.FillAccessibleStateSet( nStateSet, getType() );
}
else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
- return pStateSetHelper;
+ nStateSet |= AccessibleStateType::DEFUNC;
+ return nStateSet;
}
// internal helper methods
@@ -323,11 +321,11 @@ tools::Rectangle AccessibleGridControlBase::getBoundingBox()
return aRect;
}
-tools::Rectangle AccessibleGridControlBase::getBoundingBoxOnScreen()
+AbsoluteScreenPixelRectangle AccessibleGridControlBase::getBoundingBoxOnScreen()
{
SolarMutexGuard aSolarGuard;
ensureIsAlive();
- tools::Rectangle aRect = implGetBoundingBoxOnScreen();
+ AbsoluteScreenPixelRectangle aRect = implGetBoundingBoxOnScreen();
if ( aRect.Left() == 0 && aRect.Top() == 0 && aRect.Right() == 0 && aRect.Bottom() == 0 )
{
SAL_WARN( "accessibility", "rectangle doesn't exist" );
@@ -346,11 +344,7 @@ void AccessibleGridControlBase::commitEvent(
return;
// build an event object
- AccessibleEventObject aEvent;
- aEvent.Source = *this;
- aEvent.EventId = _nEventId;
- aEvent.OldValue = _rOldValue;
- aEvent.NewValue = _rNewValue;
+ AccessibleEventObject aEvent(*this, _nEventId, _rNewValue, _rOldValue, -1);
// let the notifier handle this event
@@ -363,21 +357,21 @@ sal_Int16 SAL_CALL AccessibleGridControlBase::getAccessibleRole()
sal_Int16 nRole = AccessibleRole::UNKNOWN;
switch ( m_eObjType )
{
- case TCTYPE_ROWHEADERCELL:
+ case AccessibleTableControlObjType::ROWHEADERCELL:
nRole = AccessibleRole::ROW_HEADER;
break;
- case TCTYPE_COLUMNHEADERCELL:
+ case AccessibleTableControlObjType::COLUMNHEADERCELL:
nRole = AccessibleRole::COLUMN_HEADER;
break;
- case TCTYPE_COLUMNHEADERBAR:
- case TCTYPE_ROWHEADERBAR:
- case TCTYPE_TABLE:
+ case AccessibleTableControlObjType::COLUMNHEADERBAR:
+ case AccessibleTableControlObjType::ROWHEADERBAR:
+ case AccessibleTableControlObjType::TABLE:
nRole = AccessibleRole::TABLE;
break;
- case TCTYPE_TABLECELL:
+ case AccessibleTableControlObjType::TABLECELL:
nRole = AccessibleRole::TABLE_CELL;
break;
- case TCTYPE_GRIDCONTROL:
+ case AccessibleTableControlObjType::GRIDCONTROL:
nRole = AccessibleRole::PANEL;
break;
}