summaryrefslogtreecommitdiffstats
path: root/accessibility/source/extended/AccessibleGridControlHeader.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'accessibility/source/extended/AccessibleGridControlHeader.cxx')
-rw-r--r--accessibility/source/extended/AccessibleGridControlHeader.cxx62
1 files changed, 36 insertions, 26 deletions
diff --git a/accessibility/source/extended/AccessibleGridControlHeader.cxx b/accessibility/source/extended/AccessibleGridControlHeader.cxx
index 7c6c2df5925d..c6b278386b9b 100644
--- a/accessibility/source/extended/AccessibleGridControlHeader.cxx
+++ b/accessibility/source/extended/AccessibleGridControlHeader.cxx
@@ -51,7 +51,7 @@ AccessibleGridControlHeader::AccessibleGridControlHeader(
// XAccessibleContext ---------------------------------------------------------
Reference< XAccessible > SAL_CALL
-AccessibleGridControlHeader::getAccessibleChild( sal_Int32 nChildIndex )
+AccessibleGridControlHeader::getAccessibleChild( sal_Int64 nChildIndex )
{
SolarMutexGuard aSolarGuard;
@@ -59,26 +59,30 @@ AccessibleGridControlHeader::getAccessibleChild( sal_Int32 nChildIndex )
throw IndexOutOfBoundsException();
ensureIsAlive();
Reference< XAccessible > xChild;
- if(m_eObjType == vcl::table::TCTYPE_COLUMNHEADERBAR)
+ if (m_eObjType == vcl::table::AccessibleTableControlObjType::COLUMNHEADERBAR)
{
- rtl::Reference<AccessibleGridControlHeaderCell> pColHeaderCell = new AccessibleGridControlHeaderCell(nChildIndex, this, m_aTable, vcl::table::TCTYPE_COLUMNHEADERCELL);
+ rtl::Reference<AccessibleGridControlHeaderCell> pColHeaderCell = new AccessibleGridControlHeaderCell(nChildIndex, this, m_aTable,
+ vcl::table::AccessibleTableControlObjType::COLUMNHEADERCELL);
xChild = pColHeaderCell;
}
- else if(m_eObjType == vcl::table::TCTYPE_ROWHEADERBAR)
+ else if (m_eObjType == vcl::table::AccessibleTableControlObjType::ROWHEADERBAR)
{
- rtl::Reference<AccessibleGridControlHeaderCell> pRowHeaderCell = new AccessibleGridControlHeaderCell(nChildIndex, this, m_aTable, vcl::table::TCTYPE_ROWHEADERCELL);
+ rtl::Reference<AccessibleGridControlHeaderCell> pRowHeaderCell = new AccessibleGridControlHeaderCell(nChildIndex, this, m_aTable,
+ vcl::table::AccessibleTableControlObjType::ROWHEADERCELL);
xChild = pRowHeaderCell;
}
return xChild;
}
-sal_Int32 SAL_CALL AccessibleGridControlHeader::getAccessibleIndexInParent()
+sal_Int64 SAL_CALL AccessibleGridControlHeader::getAccessibleIndexInParent()
{
- ensureIsAlive();
- if(m_eObjType == vcl::table::TCTYPE_ROWHEADERBAR && m_aTable.HasColHeader())
- return 1;
- else
- return 0;
+ SolarMutexGuard aSolarGuard;
+
+ ensureIsAlive();
+ if (m_eObjType == vcl::table::AccessibleTableControlObjType::ROWHEADERBAR && m_aTable.HasColHeader())
+ return 1;
+ else
+ return 0;
}
// XAccessibleComponent -------------------------------------------------------
@@ -157,11 +161,15 @@ sal_Bool SAL_CALL AccessibleGridControlHeader::isAccessibleColumnSelected( sal_I
{
return false;
}
-//not implemented
+
Reference< XAccessible > SAL_CALL AccessibleGridControlHeader::getAccessibleCellAt(
- sal_Int32 /*nRow*/, sal_Int32 /*nColumn*/ )
+ sal_Int32 nRow, sal_Int32 nColumn)
{
- return nullptr;
+ SolarMutexGuard g;
+
+ ensureIsAlive();
+ ensureIsValidAddress(nRow, nColumn);
+ return implGetChild(nRow, nColumn);
}
// not selectable
sal_Bool SAL_CALL AccessibleGridControlHeader::isAccessibleSelected(
@@ -174,7 +182,7 @@ sal_Bool SAL_CALL AccessibleGridControlHeader::isAccessibleSelected(
OUString SAL_CALL AccessibleGridControlHeader::getImplementationName()
{
- return "com.sun.star.accessibility.AccessibleGridControlHeader";
+ return u"com.sun.star.accessibility.AccessibleGridControlHeader"_ustr;
}
Sequence< sal_Int8 > SAL_CALL AccessibleGridControlHeader::getImplementationId()
@@ -187,23 +195,23 @@ Sequence< sal_Int8 > SAL_CALL AccessibleGridControlHeader::getImplementationId()
tools::Rectangle AccessibleGridControlHeader::implGetBoundingBox()
{
vcl::Window* pParent = m_aTable.GetAccessibleParentWindow();
- tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( pParent ) );
+ tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( *pParent ) );
tools::Rectangle aHeaderRect (m_aTable.calcHeaderRect(isColumnBar()));
if(isColumnBar())
- return tools::Rectangle(aGridRect.TopLeft(), Size(aGridRect.getWidth(),aHeaderRect.getHeight()));
+ return tools::Rectangle(aGridRect.TopLeft(), Size(aGridRect.getOpenWidth(),aHeaderRect.getOpenHeight()));
else
- return tools::Rectangle(aGridRect.TopLeft(), Size(aHeaderRect.getWidth(),aGridRect.getHeight()));
+ return tools::Rectangle(aGridRect.TopLeft(), Size(aHeaderRect.getOpenWidth(),aGridRect.getOpenHeight()));
}
-tools::Rectangle AccessibleGridControlHeader::implGetBoundingBoxOnScreen()
+AbsoluteScreenPixelRectangle AccessibleGridControlHeader::implGetBoundingBoxOnScreen()
{
- tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( nullptr ) );
+ AbsoluteScreenPixelRectangle aGridRect( m_aTable.GetWindowExtentsAbsolute() );
tools::Rectangle aHeaderRect (m_aTable.calcHeaderRect(isColumnBar()));
if(isColumnBar())
- return tools::Rectangle(aGridRect.TopLeft(), Size(aGridRect.getWidth(),aHeaderRect.getHeight()));
+ return AbsoluteScreenPixelRectangle(aGridRect.TopLeft(), Size(aGridRect.getOpenWidth(),aHeaderRect.getOpenHeight()));
else
- return tools::Rectangle(aGridRect.TopLeft(), Size(aHeaderRect.getWidth(),aGridRect.getHeight()));
+ return AbsoluteScreenPixelRectangle(aGridRect.TopLeft(), Size(aHeaderRect.getOpenWidth(),aGridRect.getOpenHeight()));
}
// internal helper methods ----------------------------------------------------
@@ -211,14 +219,16 @@ Reference< XAccessible > AccessibleGridControlHeader::implGetChild(
sal_Int32 nRow, sal_uInt32 nColumnPos )
{
Reference< XAccessible > xChild;
- if(m_eObjType == vcl::table::TCTYPE_COLUMNHEADERBAR)
+ if (m_eObjType == vcl::table::AccessibleTableControlObjType::COLUMNHEADERBAR)
{
- rtl::Reference<AccessibleGridControlHeaderCell> pColHeaderCell = new AccessibleGridControlHeaderCell(nColumnPos, this, m_aTable, vcl::table::TCTYPE_COLUMNHEADERCELL);
+ rtl::Reference<AccessibleGridControlHeaderCell> pColHeaderCell = new AccessibleGridControlHeaderCell(nColumnPos, this, m_aTable,
+ vcl::table::AccessibleTableControlObjType::COLUMNHEADERCELL);
xChild = pColHeaderCell;
}
- else if(m_eObjType == vcl::table::TCTYPE_ROWHEADERBAR)
+ else if (m_eObjType == vcl::table::AccessibleTableControlObjType::ROWHEADERBAR)
{
- rtl::Reference<AccessibleGridControlHeaderCell> pRowHeaderCell = new AccessibleGridControlHeaderCell(nRow, this, m_aTable, vcl::table::TCTYPE_ROWHEADERCELL);
+ rtl::Reference<AccessibleGridControlHeaderCell> pRowHeaderCell = new AccessibleGridControlHeaderCell(nRow, this, m_aTable,
+ vcl::table::AccessibleTableControlObjType::ROWHEADERCELL);
xChild = pRowHeaderCell;
}
return xChild;