diff options
Diffstat (limited to 'accessibility/source/extended/AccessibleGridControlHeader.cxx')
-rw-r--r-- | accessibility/source/extended/AccessibleGridControlHeader.cxx | 62 |
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; |