24#include <com/sun/star/accessibility/AccessibleRole.hpp>
25#include <com/sun/star/accessibility/AccessibleStateType.hpp>
26#include <com/sun/star/accessibility/AccessibleEventId.hpp>
27#include <com/sun/star/accessibility/AccessibleTableModelChange.hpp>
28#include <com/sun/star/accessibility/AccessibleTableModelChangeType.hpp>
29#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
43#include <com/sun/star/accessibility/XAccessibleText.hpp>
62class SwAccTableSelHandler_Impl
65 virtual void Unselect( sal_Int32 nRowOrCol, sal_Int32 nExt ) = 0;
68 ~SwAccTableSelHandler_Impl() {}
86 bool bExact,
const SwFrame *& rFrame )
const;
90 SwAccTableSelHandler_Impl& rSelHdl,
91 bool bColumns )
const;
103 bool bIsInPagePreview,
104 bool bOnlyTableColumnHeader =
false );
122 SwAccTableSelHandler_Impl& rSelHdl,
123 bool bColumns )
const;
138 while( aIter != aEndIter )
140 const SwAccessibleChild& rLower = *aIter;
141 const SwFrame *pLower = rLower.GetSwFrame();
176 while( !bFound && aIter != aEndIter )
178 const SwAccessibleChild& rLower = *aIter;
179 const SwFrame *pLower = rLower.GetSwFrame();
180 OSL_ENSURE( pLower,
"child should be a frame" );
185 OSL_ENSURE( pLower->
IsCellFrame(),
"lower is not a cell frame" );
187 if( rFrame.
Right() >= rPos.
X() && rFrame.
Bottom() >= rPos.
Y() )
190 OSL_ENSURE( rFrame.
Left() <= rPos.
X() && rFrame.
Top() <= rPos.
Y(),
191 "find frame moved to far!" );
194 (rFrame.
Top() == rPos.
Y() && rFrame.
Left() == rPos.
Y() ) )
206 bFound =
FindCell( rPos, pLower, bExact, rRet );
217 const Point& rTabPos,
221 SwAccTableSelHandler_Impl& rSelHdl,
222 bool bColumns )
const
227 while( aIter != aEndIter )
229 const SwAccessibleChild& rLower = *aIter;
230 const SwFrame *pLower = rLower.GetSwFrame();
231 OSL_ENSURE( pLower,
"child should be a frame" );
233 if( pLower && rBox.
Overlaps( rArea ) )
237 OSL_ENSURE( pLower->
IsCellFrame(),
"lower is not a cell frame" );
242 if( rSelBoxes.
find( pBox ) == rSelBoxes.
end() )
247 sal_Int32
nPos = bColumns ? (rBox.
Left() - rTabPos.
X())
248 : (rBox.
Top() - rTabPos.
Y());
251 sal_Int32 nRowOrCol =
252 static_cast< sal_Int32
>( std::distance(
253 rRowsOrCols.
begin(), aSttRowOrCol ) );
255 nPos = bColumns ? (rBox.
Right() - rTabPos.
X())
256 : (rBox.
Bottom() - rTabPos.
Y());
260 static_cast< sal_Int32
>( std::distance(
261 aSttRowOrCol, aEndRowOrCol ) );
263 rSelHdl.Unselect( nRowOrCol, nExt );
272 GetSelection( rTabPos, rArea, rSelBoxes, pLower, rSelHdl,
282 sal_Int32 nRow, sal_Int32 nColumn,
295 sal_Int32 nStart, sal_Int32 nEnd,
297 SwAccTableSelHandler_Impl& rSelHdl,
298 bool bColumns )
const
312 aArea.
Top( *aStt + aPos.
getY() );
314 if( nEnd <
static_cast< sal_Int32
>( rRowsOrColumns.
size() ) )
329 sal_Int32 nLeft, sal_Int32 nTop )
const
332 aPos.
Move( nLeft, nTop );
360 bool bIsInPagePreview,
361 bool bOnlyTableColumnHeader )
362 : mrAccMap( rAccMap )
363 , maTabFramePos( pTabFrame->getFrameArea().
Pos() )
364 , mpTabFrame( pTabFrame )
365 , mbIsInPagePreview( bIsInPagePreview )
366 , mbOnlyTableColumnHeader( bOnlyTableColumnHeader )
372 sal_Int32 nRow )
const
384 sal_Int32 nColumn )
const
401 uno::Reference < XAccessibleTable > xThis( pThis );
402 lang::IndexOutOfBoundsException aExcept(
403 "row or column index out of range",
411class SwAccSingleTableSelHandler_Impl :
public SwAccTableSelHandler_Impl
417 inline SwAccSingleTableSelHandler_Impl();
419 virtual ~SwAccSingleTableSelHandler_Impl() {}
421 bool IsSelected()
const {
return m_bSelected; }
423 virtual void Unselect( sal_Int32, sal_Int32 )
override;
428inline SwAccSingleTableSelHandler_Impl::SwAccSingleTableSelHandler_Impl() :
433void SwAccSingleTableSelHandler_Impl::Unselect( sal_Int32, sal_Int32 )
440class SwAccAllTableSelHandler_Impl :
public SwAccTableSelHandler_Impl
443 std::vector< bool > m_aSelected;
447 explicit SwAccAllTableSelHandler_Impl(sal_Int32 nSize)
448 : m_aSelected(nSize, true)
453 uno::Sequence < sal_Int32 > GetSelSequence();
455 virtual void Unselect( sal_Int32 nRowOrCol, sal_Int32 nExt )
override;
456 virtual ~SwAccAllTableSelHandler_Impl();
461SwAccAllTableSelHandler_Impl::~SwAccAllTableSelHandler_Impl()
465uno::Sequence < sal_Int32 > SwAccAllTableSelHandler_Impl::GetSelSequence()
467 OSL_ENSURE( m_nCount >= 0,
"underflow" );
468 uno::Sequence < sal_Int32 > aRet( m_nCount );
469 sal_Int32 *pRet = aRet.getArray();
471 size_t nSize = m_aSelected.size();
481 OSL_ENSURE( nPos == m_nCount,
"count is wrong" );
486void SwAccAllTableSelHandler_Impl::Unselect( sal_Int32 nRowOrCol,
492 "extent too large" );
495 if( m_aSelected[
static_cast< size_t >( nRowOrCol )] )
497 m_aSelected[
static_cast< size_t >( nRowOrCol )] =
false;
520 AccessibleTableModelChange aModelChange;
521 aModelChange.Type = AccessibleTableModelChangeType::UPDATE;
522 aModelChange.FirstRow = 0;
523 aModelChange.LastRow = rTableData.
GetRowCount() - 1;
524 aModelChange.FirstColumn = 0;
527 AccessibleEventObject
aEvent;
528 aEvent.EventId = AccessibleEventId::TABLE_MODEL_CHANGED;
529 aEvent.NewValue <<= aModelChange;
536 OSL_ENSURE( nChildIndex >= 0,
"Illegal child index." );
543 if( aCell.GetSwFrame() )
545 const SwFrame* pChildFrame = aCell.GetSwFrame();
546 if( (pChildFrame !=
nullptr) && pChildFrame->
IsCellFrame() )
554 OSL_ENSURE( pBox !=
nullptr,
"We need the table box." );
565 OSL_ENSURE( pBox !=
nullptr,
"We need the table box." );
573 sal_Int64 nSelectedChildIndex )
const
577 if( nSelectedChildIndex >= nChildren )
581 while(
n < nChildren )
585 if( 0 == nSelectedChildIndex )
588 --nSelectedChildIndex;
593 return n < nChildren ?
n : -1;
600 rStateSet |= AccessibleStateType::RESIZABLE;
602 rStateSet |= AccessibleStateType::MULTI_SELECTABLE;
605 rStateSet |= AccessibleStateType::MULTI_SELECTABLE;
609 std::shared_ptr<SwAccessibleMap>
const& pInitMap,
636 if(rHint.
GetId() == SfxHintId::Dying)
640 else if (rHint.
GetId() == SfxHintId::SwNameChanged && pTabFrame)
643 const OUString sOldName(
GetName() );
644 const OUString sNewTabName = pFrameFormat->
GetName();
650 AccessibleEventObject
aEvent;
651 aEvent.EventId = AccessibleEventId::NAME_CHANGED;
652 aEvent.OldValue <<= sOldName;
657 const OUString sOldDesc(
m_sDesc );
663 AccessibleEventObject
aEvent;
664 aEvent.EventId = AccessibleEventId::DESCRIPTION_CHANGED;
665 aEvent.OldValue <<= sOldDesc;
677 uno::Reference<XAccessibleTable> xThis(
this );
682 uno::Reference<XAccessibleSelection> xSelection(
this );
687 uno::Reference<XAccessibleTableSelection> xTableExtent(
this );
688 aRet <<= xTableExtent;
692 aRet = SwAccessibleContext::queryInterface(rType);
704 SwAccessibleContext::getTypes() ).
getTypes();
709 return css::uno::Sequence<sal_Int8>();
767 if ( xTableRowHeader.is() )
769 uno::Reference< XAccessible > xRowHeaderCell =
770 xTableRowHeader->getAccessibleCellAt( nRow, 0 );
771 OSL_ENSURE( xRowHeaderCell.is(),
772 "<SwAccessibleTable::getAccessibleRowDescription(..)> - missing row header cell -> serious issue." );
773 uno::Reference< XAccessibleContext > xRowHeaderCellContext =
774 xRowHeaderCell->getAccessibleContext();
775 const sal_Int64 nCellChildCount( xRowHeaderCellContext->getAccessibleChildCount() );
776 for ( sal_Int64 nChildIndex = 0; nChildIndex < nCellChildCount; ++nChildIndex )
778 uno::Reference< XAccessible > xChild = xRowHeaderCellContext->getAccessibleChild( nChildIndex );
779 uno::Reference< XAccessibleText > xChildText( xChild, uno::UNO_QUERY );
780 if ( xChildText.is() )
782 sRowDesc += xChildText->getText();
795 OUString sColumnDesc;
800 if ( xTableColumnHeader.is() )
802 uno::Reference< XAccessible > xColumnHeaderCell =
803 xTableColumnHeader->getAccessibleCellAt( 0, nColumn );
804 OSL_ENSURE( xColumnHeaderCell.is(),
805 "<SwAccessibleTable::getAccessibleColumnDescription(..)> - missing column header cell -> serious issue." );
806 uno::Reference< XAccessibleContext > xColumnHeaderCellContext =
807 xColumnHeaderCell->getAccessibleContext();
808 const sal_Int64 nCellChildCount( xColumnHeaderCellContext->getAccessibleChildCount() );
809 for ( sal_Int64 nChildIndex = 0; nChildIndex < nCellChildCount; ++nChildIndex )
811 uno::Reference< XAccessible > xChild = xColumnHeaderCellContext->getAccessibleChild( nChildIndex );
812 uno::Reference< XAccessibleText > xChildText( xChild, uno::UNO_QUERY );
813 if ( xChildText.is() )
815 sColumnDesc += xChildText->getText();
824 sal_Int32 nRow, sal_Int32 nColumn )
826 sal_Int32 nExtend = -1;
847 static_cast< sal_Int32
>( std::distance( aSttRow, aEndRow ) );
854 sal_Int32 nRow, sal_Int32 nColumn )
856 sal_Int32 nExtend = -1;
877 static_cast< sal_Int32
>( std::distance( aSttCol, aEndCol ) );
883uno::Reference< XAccessibleTable > SAL_CALL
887 return uno::Reference< XAccessibleTable >();
890uno::Reference< XAccessibleTable > SAL_CALL
900 if ( pTableColHeaders->getAccessibleChildCount() <= 0 )
902 return uno::Reference< XAccessibleTable >();
905 return pTableColHeaders;
918 SwAccAllTableSelHandler_Impl aSelRows( nRows );
923 return aSelRows.GetSelSequence();
927 return uno::Sequence< sal_Int32 >( 0 );
941 SwAccAllTableSelHandler_Impl aSelCols( nCols );
945 return aSelCols.GetSelSequence();
949 return uno::Sequence< sal_Int32 >( 0 );
965 SwAccSingleTableSelHandler_Impl aSelRow;
968 bRet = aSelRow.IsSelected();
991 SwAccSingleTableSelHandler_Impl aSelCol;
995 bRet = aSelCol.IsSelected();
1006 sal_Int32 nRow, sal_Int32 nColumn )
1008 uno::Reference< XAccessible > xRet;
1025 return uno::Reference< XAccessible >();
1031 return uno::Reference< XAccessible >();
1035 sal_Int32 nRow, sal_Int32 nColumn )
1053 bRet = pSelBoxes->
find( pBox ) != pSelBoxes->
end();
1061 sal_Int32 nRow, sal_Int32 nColumn )
1063 sal_Int32 nRet = -1;
1069 SwAccessibleChild aCell(
GetTableData().GetCell( nRow, nColumn,
this ));
1070 if ( aCell.IsValid() )
1080 sal_Int32 nRet = -1;
1087 if ( ( nChildIndex < 0 ) ||
1090 throw lang::IndexOutOfBoundsException();
1094 if ( aCell.GetSwFrame() )
1096 sal_Int32 nTop = aCell.GetSwFrame()->getFrameArea().Top();
1100 nRet =
static_cast< sal_Int32
>( std::distance(
1105 OSL_ENSURE( !aCell.IsValid(),
"SwAccessibleTable::getAccessibleColumn:"
1106 "aCell not expected to be valid.");
1108 throw lang::IndexOutOfBoundsException();
1115 sal_Int64 nChildIndex )
1117 sal_Int32 nRet = -1;
1124 if ( ( nChildIndex < 0 ) ||
1127 throw lang::IndexOutOfBoundsException();
1131 if ( aCell.GetSwFrame() )
1133 sal_Int32 nLeft = aCell.GetSwFrame()->getFrameArea().Left();
1137 nRet =
static_cast< sal_Int32
>( std::distance(
1142 OSL_ENSURE( !aCell.IsValid(),
"SwAccessibleTable::getAccessibleColumn:"
1143 "aCell not expected to be valid.");
1145 throw lang::IndexOutOfBoundsException();
1153 return "com.sun.star.comp.Writer.SwAccessibleTableView";
1157 const OUString& sTestServiceName)
1192 bool bRecursive,
bool bCanSkipInvisible )
1196 const SwFrame *pFrame = rChildFrameOrObj.GetSwFrame();
1197 OSL_ENSURE( pFrame,
"frame expected" );
1209 uno::Reference< XAccessible > xAcc(
GetMap()->GetContext( pFrame,
false ) );
1223 "sw.a11y",
"table has invalid position" );
1229 if (pNewTableData->GetRowCount() !=
mpTableData->GetRowCount()
1237 const SwFrame *pCellFrame2 = pNewTableData->GetCellAtPos( *aSttCol2, *aSttRow2 );
1239 if(pCellFrame == pCellFrame2)
1241 AccessibleTableModelChange aModelChange;
1242 aModelChange.Type = AccessibleTableModelChangeType::UPDATE;
1243 aModelChange.FirstRow = 0;
1244 aModelChange.LastRow =
mpTableData->GetRowCount() - 1;
1245 aModelChange.FirstColumn = 0;
1246 aModelChange.LastColumn =
mpTableData->GetColumnCount() - 1;
1248 AccessibleEventObject
aEvent;
1249 aEvent.EventId = AccessibleEventId::TABLE_COLUMN_HEADER_CHANGED;
1250 aEvent.NewValue <<= aModelChange;
1270 sal_Int64 nChildIndex )
1277 throw lang::IndexOutOfBoundsException();
1281 OSL_ENSURE( pBox !=
nullptr,
"We need the table box." );
1284 if( pCursorShell ==
nullptr )
1300 if( pSelectedTable !=
nullptr )
1304 while( pUpper->
GetUpper() !=
nullptr )
1308 if(
nPos == USHRT_MAX )
1309 pSelectedTable =
nullptr;
1314 if( pSelectedTable ==
nullptr || !pCursorShell->
GetTableCrs() )
1318 SwPaM aPaM( *pStartNode );
1337 SwPaM aPaM( *pStartNode );
1349 sal_Int64 nChildIndex )
1356 throw lang::IndexOutOfBoundsException();
1368 if( pCursorShell !=
nullptr )
1394 for( sal_Int64
n = 0;
n < nChildren;
n++ )
1402 sal_Int64 nSelectedChildIndex )
1409 if( nSelectedChildIndex < 0 )
1410 throw lang::IndexOutOfBoundsException();
1415 if( nChildIndex < 0 )
1416 throw lang::IndexOutOfBoundsException();
1421 throw lang::IndexOutOfBoundsException();
1429 sal_Int64 nChildIndex )
1438 if ( !pCursorShell )
1439 throw lang::IndexOutOfBoundsException();
1443 throw lang::IndexOutOfBoundsException();
1450 OSL_ENSURE( pBox !=
nullptr,
"We need the table box." );
1457 bool bDeselectPoint =
1488 uno::Reference<XAccessibleComponent> xComponentDoc(xAccDoc,uno::UNO_QUERY);
1489 if (xComponentDoc.is())
1495 return sal_Int32(crBack);
1500 AccessibleEventObject
aEvent;
1502 aEvent.EventId = AccessibleEventId::SELECTION_CHANGED_REMOVE;
1507 uno::Reference<XAccessible>
const xAcc(rCell.second);
1518 aEvent.EventId = AccessibleEventId::SELECTION_CHANGED_ADD;
1522 uno::Reference<XAccessible>
const xAcc(rCell.second);
1534 aEvent.EventId = AccessibleEventId::SELECTION_CHANGED_WITHIN;
1542 uno::Reference<XAccessible>
const xTmp(pAccCell);
1562 for(
tools::Long lCol = 0; lCol < lColumnCount; lCol ++)
1579 for(sal_Int32 lRow = 0; lRow < lRowCount; lRow ++)
1594 if( pCursorShell !=
nullptr )
1612 if( pCursorShell !=
nullptr )
1625 std::shared_ptr<SwAccessibleMap>
const& pMap,
1634 const OUString
aName = pFrameFormat->
GetName() +
"-ColumnHeaders";
1673 while( aIter != aVisList.
end() )
1675 const SwAccessibleChild& rLower = *aIter;
1680 else if( rLower.GetSwFrame() )
1683 if ( !rLower.GetSwFrame()->IsRowFrame() ||
1688 rLower.GetSwFrame(),
1698uno::Reference< XAccessible> SAL_CALL
1703 throw lang::IndexOutOfBoundsException();
1710uno::Reference< XAccessibleTable >
1713 return uno::Reference< XAccessibleTable >();
1716uno::Reference< XAccessibleTable >
1719 return uno::Reference< XAccessibleTable >();
1726 static constexpr OUStringLiteral sImplName
1727 =
u"com.sun.star.comp.Writer.SwAccessibleTableColumnHeadersView";
constexpr OUStringLiteral sAccessibleServiceName
const unsigned int SELECTION_WITH_NUM
o3tl::sorted_vector< sal_Int32 > Int32Set_Impl
constexpr tools::Long Y() const
void Move(tools::Long nHorzMove, tools::Long nVertMove)
constexpr tools::Long X() const
constexpr tools::Long getX() const
constexpr tools::Long getY() const
bool StartListening(SvtBroadcaster &rBroadcaster)
const Color & GetColor() const
const_iterator end() const
const_iterator begin() const
virtual void Dispose(bool bRecursive, bool bCanSkipInvisible=true)
virtual sal_Int64 SAL_CALL getAccessibleChildCount() override
const OUString & GetName() const
void SetName(const OUString &rName)
virtual void InvalidateChildPosOrSize(const sw::access::SwAccessibleChild &rFrameOrObj, const SwRect &rFrame)
void FireAccessibleEvent(css::accessibility::AccessibleEventObject &rEvent)
virtual void GetStates(sal_Int64 &rStateSet)
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent() override
virtual void DisposeChild(const sw::access::SwAccessibleChild &rFrameOrObj, bool bRecursive, bool bCanSkipInvisible)
SwAccessibleMap * GetMap()
void NotRegisteredAtAccessibleMap()
bool Select(SwPaM *pPaM, SdrObject *pObj, bool bAdd)
SwCursorShell * GetCursorShell()
convenience method to get SwCursorShell through accessibility map
static OUString GetResource(TranslateId pResId, const OUString *pArg1=nullptr, const OUString *pArg2=nullptr)
virtual void InvalidatePosOrSize(const SwRect &rFrame)
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild(sal_Int64 nIndex) override
bool IsInPagePreview() const
static sal_Int32 GetChildCount(SwAccessibleMap &rAccMap, const SwRect &rVisArea, const SwFrame *pFrame, bool bInPagePreviewr)
static bool GetChildIndex(SwAccessibleMap &rAccMap, const SwRect &rVisArea, const SwFrame &rFrame, const sw::access::SwAccessibleChild &rChild, sal_Int32 &rPos, bool bInPagePreview)
static sw::access::SwAccessibleChild GetChild(SwAccessibleMap &rAccMap, const SwRect &rVisArea, const SwFrame &rFrame, sal_Int32 &rPos, bool bInPagePreview)
const SwFrame * GetFrame() const
OUString GetFormattedPageNumber() const
const SwRect & GetVisArea() const
css::uno::Reference< css::accessibility::XAccessible > GetContext(const SwFrame *pFrame, bool bCreate=true)
Int32Set_Impl::const_iterator GetRowIter(sal_Int32 nRow) const
sal_Int32 GetRowCount() const
const SwTabFrame * mpTabFrame
void GetSelection(const Point &rTabPos, const SwRect &rArea, const SwSelBoxes &rSelBoxes, const SwFrame *pFrame, SwAccTableSelHandler_Impl &rSelHdl, bool bColumns) const
const SwFrame * GetCellAtPos(sal_Int32 nLeft, sal_Int32 nTop) const
const SwFrame * GetCell(sal_Int32 nRow, sal_Int32 nColumn, SwAccessibleTable *pThis) const
SwAccessibleMap & mrAccMap
bool CompareExtents(const SwAccessibleTableData_Impl &r) const
SwAccessibleTableData_Impl(SwAccessibleMap &rAccMap, const SwTabFrame *pTabFrame, bool bIsInPagePreview, bool bOnlyTableColumnHeader=false)
const Int32Set_Impl & GetRows() const
const Int32Set_Impl & GetColumns() const
const Point & GetTablePos() const
void CollectData(const SwFrame *pFrame)
void CheckRowAndCol(sal_Int32 nRow, sal_Int32 nCol, SwAccessibleTable *pThis) const
bool IncludeRow(const SwFrame &rFrame) const
sal_Int32 GetColumnCount() const
Int32Set_Impl::const_iterator GetColumnIter(sal_Int32 nCol) const
bool FindCell(const Point &rPos, const SwFrame *pFrame, bool bExact, const SwFrame *&rFrame) const
bool mbOnlyTableColumnHeader
void SetTablePos(const Point &rPos)
virtual void InvalidateChildPosOrSize(const sw::access::SwAccessibleChild &rFrameOrObj, const SwRect &rFrame) override
sal_Int32 SAL_CALL getBackground() override
bool HasTableData() const
virtual void SAL_CALL clearAccessibleSelection() override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleCellAt(sal_Int32 nRow, sal_Int32 nColumn) override
virtual sal_Bool SAL_CALL selectColumn(sal_Int32 column) override
virtual sal_Int64 SAL_CALL getSelectedAccessibleChildCount() override
virtual void DisposeChild(const sw::access::SwAccessibleChild &rFrameOrObj, bool bRecursive, bool bCanSkipInvisible) override
virtual ~SwAccessibleTable() override
virtual OUString SAL_CALL getAccessibleDescription() override
Return this object's description.
virtual sal_Bool SAL_CALL isAccessibleSelected(sal_Int32 nRow, sal_Int32 nColumn) override
virtual OUString SAL_CALL getAccessibleRowDescription(sal_Int32 nRow) override
virtual void InvalidatePosOrSize(const SwRect &rOldBox) override
virtual OUString SAL_CALL getImplementationName() override
Returns an identifier for the implementation of this object.
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Returns a list of all supported services.
virtual css::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleRows() override
virtual sal_Bool SAL_CALL selectRow(sal_Int32 row) override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleCaption() override
bool IsChildSelected(sal_Int64 nChildIndex) const
virtual css::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleColumns() override
virtual sal_Int32 SAL_CALL getAccessibleRowExtentAt(sal_Int32 nRow, sal_Int32 nColumn) override
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &aType) override
virtual sal_Bool SAL_CALL isAccessibleRowSelected(sal_Int32 nRow) override
SwAccessibleTableData_Impl & GetTableData()
const SwTableBox * GetTableBox(sal_Int64) const
get the SwTableBox* for the given child
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleSummary() override
SwAccessibleTable(std::shared_ptr< SwAccessibleMap > const &pInitMap, const SwTabFrame *pTableFrame)
virtual std::unique_ptr< SwAccessibleTableData_Impl > CreateNewTableData()
virtual sal_Int64 SAL_CALL getAccessibleIndex(sal_Int32 nRow, sal_Int32 nColumn) override
void AddSelectionCell(SwAccessibleContext *, bool bAddOrRemove)
virtual sal_Bool SAL_CALL isAccessibleColumnSelected(sal_Int32 nColumn) override
virtual sal_Bool SAL_CALL unselectColumn(sal_Int32 column) override
virtual void Dispose(bool bRecursive, bool bCanSkipInvisible=true) override
virtual void GetStates(sal_Int64 &rStateSet) override
virtual void Notify(const SfxHint &) override
virtual sal_Int32 SAL_CALL getAccessibleColumnCount() override
std::unique_ptr< SwAccessibleTableData_Impl > mpTableData
virtual sal_Int32 SAL_CALL getAccessibleRow(sal_Int64 nChildIndex) override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
virtual void SAL_CALL selectAccessibleChild(sal_Int64 nChildIndex) override
virtual sal_Int32 SAL_CALL getAccessibleColumn(sal_Int64 nChildIndex) override
virtual sal_Bool SAL_CALL supportsService(const OUString &sServiceName) override
Return whether the specified service is supported by this class.
virtual sal_Bool SAL_CALL unselectRow(sal_Int32 row) override
virtual sal_Bool SAL_CALL isAccessibleChildSelected(sal_Int64 nChildIndex) override
virtual void SAL_CALL selectAllAccessibleChildren() override
virtual void SAL_CALL deselectAccessibleChild(sal_Int64 nChildIndex) override
virtual css::uno::Reference< css::accessibility::XAccessibleTable > SAL_CALL getAccessibleRowHeaders() override
virtual sal_Int32 SAL_CALL getAccessibleColumnExtentAt(sal_Int32 nRow, sal_Int32 nColumn) override
sal_Int64 GetIndexOfSelectedChild(sal_Int64 nSelectedChildIndex) const
virtual OUString SAL_CALL getAccessibleColumnDescription(sal_Int32 nColumn) override
virtual css::uno::Reference< css::accessibility::XAccessibleTable > SAL_CALL getAccessibleColumnHeaders() override
const SwSelBoxes * GetSelBoxes() const
void FireTableChangeEvent(const SwAccessibleTableData_Impl &rTableData)
void SetDesc(const OUString &sNewDesc)
void FireSelectionEvent()
virtual sal_Int32 SAL_CALL getAccessibleRowCount() override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild(sal_Int64 nSelectedChildIndex) override
const SvxBrushItem & GetBackground(bool=true) const
SwCellFrame is one table cell in the document layout.
const SwTableBox * GetTabBox() const
const SwPaM * GetTableCrs() const
const SwTableNode * IsCursorInTable() const
Check if Point of current cursor is placed within a table.
bool MoveTable(SwWhichTable, SwMoveFnCollection const &)
SwCursor * GetCursor(bool bMakeTableCursor=true) const
Return pointer to the current shell cursor.
void EndAction(const bool bIdleEnd=false)
const SwShellTableCursor * GetTableCursor() const
const SwRect & getFrameArea() const
Base class of the Writer layout elements.
const SwAttrSet * GetAttrSet() const
WARNING: this may not return correct RES_PAGEDESC/RES_BREAK items for SwTextFrame,...
sal_uInt16 GetPhyPageNum() const
virtual const SwFrameFormat * GetFormat() const
const SwStartNode * FindTableBoxStartNode() const
PaM is Point and Mark: a selection of the document model.
const SwPosition * GetMark() const
virtual void SetMark()
Unless this is called, the getter method of Mark will return Point.
bool Move(SwMoveFnCollection const &fnMove=fnMoveForward, SwGoInDoc fnGo=GoInContent)
Movement of cursor.
const SwPosition * GetPoint() const
Of course Writer needs its own rectangles.
void Top(const tools::Long nTop)
void Right(const tools::Long nRight)
void Bottom(const tools::Long nBottom)
void Pos(const Point &rNew)
bool Overlaps(const SwRect &rRect) const
void Left(const tools::Long nLeft)
Starts a section of nodes in the document model.
SwTabFrame is one table in the document layout, containing rows (which contain cells).
bool IsInHeadline(const SwFrame &rFrame) const
SwTableBox is one table cell in the document model.
const SwStartNode * GetSttNd() const
const SwSelBoxes & GetSelectedBoxes() const
SwTableLine is one table row in the document model.
sal_uInt16 GetPos(const SwTableLine *pBox) const
const SwTable & GetTable() const
SwTableLines & GetTabLines()
css::uno::Sequence< css::uno::Type > SAL_CALL getTypes()
const_iterator upper_bound(const Value &x) const
std::vector< Value >::difference_type difference_type
const_iterator begin() const
std::vector< Value >::const_iterator const_iterator
const_iterator find(const Value &x) const
const_iterator end() const
std::pair< const_iterator, bool > insert(Value &&x)
const_iterator lower_bound(const Value &x) const
constexpr ::Color COL_AUTO(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
virtual SotClipboardFormatId GetFormat(const TransferableDataHelper &aHelper) override
#define SAL_WARN_IF(condition, area, stream)
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)
enumrange< T >::Iterator begin(enumrange< T >)
bool GoInNode(SwPaM &rPam, SwMoveFnCollection const &fnMove)
SwMoveFnCollection const & fnTableEnd
SwMoveFnCollection const & fnMoveForward
SwPam::Move()/Find() default argument.
bool GotoCurrTable(SwPaM &rCurrentCursor, SwMoveFnCollection const &fnPosTable, bool bInReadOnly)