1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_SW_INC_UNOTBL_HXX
21 #define INCLUDED_SW_INC_UNOTBL_HXX
23 #include <com/sun/star/lang/XUnoTunnel.hpp>
24 #include <com/sun/star/container/XNamed.hpp>
25 #include <com/sun/star/container/XEnumerationAccess.hpp>
26 #include <com/sun/star/util/XSortable.hpp>
27 #include <com/sun/star/chart/XChartDataArray.hpp>
28 #include <com/sun/star/text/XTextTableCursor.hpp>
29 #include <com/sun/star/text/XTextTable.hpp>
30 #include <com/sun/star/table/XCellRange.hpp>
31 #include <com/sun/star/sheet/XCellRangeData.hpp>
32 #include <com/sun/star/table/XAutoFormattable.hpp>
34 #include <cppuhelper/implbase.hxx>
36 #include <comphelper/uno3.hxx>
38 #include <svl/listener.hxx>
40 #include "TextCursorHelper.hxx"
41 #include "unotext.hxx"
43 #include "unocrsr.hxx"
49 class SwUnoInternalPaM
;
50 struct SwXParagraphEnumeration
;
52 class SfxItemPropertySet
;
58 css::lang::XServiceInfo
,
59 css::beans::XPropertySet
,
60 css::container::XEnumerationAccess
63 class SW_DLLPUBLIC SwXCell final
: public SwXCellBaseClass
,
67 friend void sw_setString( SwXCell
&rCell
, const OUString
&rText
,
68 bool bKeepNumberFormat
);
69 friend void sw_setValue( SwXCell
&rCell
, double nVal
);
71 const SfxItemPropertySet
* m_pPropSet
;
72 SwTableBox
* m_pBox
; // only set in non-XML import
73 const SwStartNode
* m_pStartNode
; // only set in XML import
74 SwFrameFormat
* m_pTableFormat
;
76 // table position where pBox was found last
78 css::uno::Reference
<css::text::XText
> m_xParentText
;
79 static size_t const NOTFOUND
= SAL_MAX_SIZE
;
81 virtual const SwStartNode
*GetStartNode() const override
;
85 virtual ~SwXCell() override
;
87 virtual void Notify(const SfxHint
&) override
;
90 SwXCell(SwFrameFormat
* pTableFormat
, SwTableBox
* pBox
, size_t nPos
);
91 SwXCell(SwFrameFormat
* pTableFormat
, const SwStartNode
& rStartNode
); // XML import interface
93 virtual css::uno::Any SAL_CALL
queryInterface( const css::uno::Type
& aType
) override
;
94 virtual void SAL_CALL
acquire( ) noexcept override
;
95 virtual void SAL_CALL
release( ) noexcept override
;
98 virtual css::uno::Sequence
< css::uno::Type
> SAL_CALL
getTypes( ) override
;
99 virtual css::uno::Sequence
< sal_Int8
> SAL_CALL
getImplementationId( ) override
;
102 virtual OUString SAL_CALL
getFormula( ) override
;
103 virtual void SAL_CALL
setFormula( const OUString
& aFormula
) override
;
104 virtual double SAL_CALL
getValue( ) override
;
105 /// @throws css::uno::RuntimeException
106 double getValue( ) const
107 { return const_cast<SwXCell
*>(this)->getValue(); };
108 virtual void SAL_CALL
setValue( double nValue
) override
;
109 virtual css::table::CellContentType SAL_CALL
getType( ) override
;
110 virtual sal_Int32 SAL_CALL
getError( ) override
;
113 virtual rtl::Reference
< SwXTextCursor
> createXTextCursor() override
;
114 virtual rtl::Reference
< SwXTextCursor
> createXTextCursorByRange(
115 const ::css::uno::Reference
< ::css::text::XTextRange
>& aTextPosition
) override
;
116 virtual void SAL_CALL
setString(const OUString
& aString
) override
;
119 virtual css::uno::Reference
< css::beans::XPropertySetInfo
> SAL_CALL
getPropertySetInfo( ) override
;
120 virtual void SAL_CALL
setPropertyValue( const OUString
& aPropertyName
, const css::uno::Any
& aValue
) override
;
121 virtual css::uno::Any SAL_CALL
getPropertyValue( const OUString
& PropertyName
) override
;
122 virtual void SAL_CALL
addPropertyChangeListener( const OUString
& aPropertyName
, const css::uno::Reference
< css::beans::XPropertyChangeListener
>& xListener
) override
;
123 virtual void SAL_CALL
removePropertyChangeListener( const OUString
& aPropertyName
, const css::uno::Reference
< css::beans::XPropertyChangeListener
>& aListener
) override
;
124 virtual void SAL_CALL
addVetoableChangeListener( const OUString
& PropertyName
, const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
125 virtual void SAL_CALL
removeVetoableChangeListener( const OUString
& PropertyName
, const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
128 virtual OUString SAL_CALL
getImplementationName() override
;
129 virtual sal_Bool SAL_CALL
supportsService(const OUString
& ServiceName
) override
;
130 virtual css::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() override
;
132 //XEnumerationAccess - was: XParagraphEnumerationAccess
133 virtual css::uno::Reference
< css::container::XEnumeration
> SAL_CALL
createEnumeration() override
;
136 virtual css::uno::Type SAL_CALL
getElementType( ) override
;
137 virtual sal_Bool SAL_CALL
hasElements( ) override
;
139 rtl::Reference
< SwXParagraphEnumeration
> createSwEnumeration();
140 SwTableBox
* GetTableBox() const { return m_pBox
; }
141 static rtl::Reference
<SwXCell
> CreateXCell(SwFrameFormat
* pTableFormat
, SwTableBox
* pBox
, SwTable
*pTable
= nullptr );
142 SwTableBox
* FindBox(SwTable
* pTable
, SwTableBox
* pBox
);
143 SwFrameFormat
* GetFrameFormat() const { return m_pTableFormat
; }
144 double GetForcedNumericalValue() const;
145 css::uno::Any
GetAny() const;
147 rtl::Reference
< SwXTextCursor
> createXTextCursorByRangeImpl(SwUnoInternalPaM
& rPam
);
150 class SwXTextTableRow final
151 : public cppu::WeakImplHelper
<css::beans::XPropertySet
, css::lang::XServiceInfo
>
154 SwFrameFormat
* m_pFormat
;
155 SwTableLine
* m_pLine
;
156 const SfxItemPropertySet
* m_pPropSet
;
158 SwFrameFormat
* GetFrameFormat() { return m_pFormat
; }
159 const SwFrameFormat
* GetFrameFormat() const { return m_pFormat
; }
160 virtual ~SwXTextTableRow() override
;
163 SwXTextTableRow(SwFrameFormat
* pFormat
, SwTableLine
* pLine
);
167 virtual css::uno::Reference
< css::beans::XPropertySetInfo
> SAL_CALL
getPropertySetInfo( ) override
;
168 virtual void SAL_CALL
setPropertyValue( const OUString
& aPropertyName
, const css::uno::Any
& aValue
) override
;
169 virtual css::uno::Any SAL_CALL
getPropertyValue( const OUString
& PropertyName
) override
;
170 virtual void SAL_CALL
addPropertyChangeListener( const OUString
& aPropertyName
, const css::uno::Reference
< css::beans::XPropertyChangeListener
>& xListener
) override
;
171 virtual void SAL_CALL
removePropertyChangeListener( const OUString
& aPropertyName
, const css::uno::Reference
< css::beans::XPropertyChangeListener
>& aListener
) override
;
172 virtual void SAL_CALL
addVetoableChangeListener( const OUString
& PropertyName
, const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
173 virtual void SAL_CALL
removeVetoableChangeListener( const OUString
& PropertyName
, const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
176 virtual OUString SAL_CALL
getImplementationName() override
;
177 virtual sal_Bool SAL_CALL
supportsService(const OUString
& ServiceName
) override
;
178 virtual css::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() override
;
180 static SwTableLine
* FindLine(SwTable
* pTable
, SwTableLine
const * pLine
);
182 void Notify(const SfxHint
&) override
;
185 typedef cppu::WeakImplHelper
<
186 css::text::XTextTableCursor
,
187 css::lang::XServiceInfo
,
188 css::beans::XPropertySet
> SwXTextTableCursor_Base
;
189 class SW_DLLPUBLIC SwXTextTableCursor final
190 : public SwXTextTableCursor_Base
192 , public OTextCursorHelper
194 SwFrameFormat
* m_pFrameFormat
;
195 const SfxItemPropertySet
* m_pPropSet
;
196 sw::UnoCursorPointer m_pUnoCursor
;
199 SwXTextTableCursor(SwFrameFormat
* pFormat
, SwTableBox
const* pBox
);
200 SwXTextTableCursor(SwFrameFormat
& rTableFormat
, const SwTableCursor
* pTableSelection
);
201 virtual void SAL_CALL
release() noexcept override
;
204 virtual OUString SAL_CALL
getRangeName() override
;
205 virtual sal_Bool SAL_CALL
gotoCellByName( const OUString
& aCellName
, sal_Bool bExpand
) override
;
206 virtual sal_Bool SAL_CALL
goLeft( sal_Int16 nCount
, sal_Bool bExpand
) override
;
207 virtual sal_Bool SAL_CALL
goRight( sal_Int16 nCount
, sal_Bool bExpand
) override
;
208 virtual sal_Bool SAL_CALL
goUp( sal_Int16 nCount
, sal_Bool bExpand
) override
;
209 virtual sal_Bool SAL_CALL
goDown( sal_Int16 nCount
, sal_Bool bExpand
) override
;
210 virtual void SAL_CALL
gotoStart( sal_Bool bExpand
) override
;
211 virtual void SAL_CALL
gotoEnd( sal_Bool bExpand
) override
;
212 virtual sal_Bool SAL_CALL
mergeRange() override
;
213 virtual sal_Bool SAL_CALL
splitRange( sal_Int16 Count
, sal_Bool Horizontal
) override
;
216 virtual css::uno::Reference
< css::beans::XPropertySetInfo
> SAL_CALL
getPropertySetInfo( ) override
;
217 virtual void SAL_CALL
setPropertyValue( const OUString
& aPropertyName
, const css::uno::Any
& aValue
) override
;
218 virtual css::uno::Any SAL_CALL
getPropertyValue( const OUString
& PropertyName
) override
;
219 virtual void SAL_CALL
addPropertyChangeListener( const OUString
& aPropertyName
, const css::uno::Reference
< css::beans::XPropertyChangeListener
>& xListener
) override
;
220 virtual void SAL_CALL
removePropertyChangeListener( const OUString
& aPropertyName
, const css::uno::Reference
< css::beans::XPropertyChangeListener
>& aListener
) override
;
221 virtual void SAL_CALL
addVetoableChangeListener( const OUString
& PropertyName
, const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
222 virtual void SAL_CALL
removeVetoableChangeListener( const OUString
& PropertyName
, const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
225 virtual OUString SAL_CALL
getImplementationName() override
;
226 virtual sal_Bool SAL_CALL
supportsService(const OUString
& ServiceName
) override
;
227 virtual css::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() override
;
231 virtual const SwPaM
* GetPaM() const override
;
232 virtual SwPaM
* GetPaM() override
;
233 virtual const SwDoc
* GetDoc() const override
;
234 virtual SwDoc
* GetDoc() override
;
236 virtual void Notify( const SfxHint
& ) override
;
238 const SwUnoCursor
& GetCursor() const;
239 SwUnoCursor
& GetCursor();
240 SwFrameFormat
* GetFrameFormat() const { return m_pFrameFormat
; }
243 struct SwRangeDescriptor
253 class SW_DLLPUBLIC SwXTextTable final
: public cppu::WeakImplHelper
255 css::text::XTextTable
,
256 css::lang::XServiceInfo
,
257 css::table::XCellRange
,
258 css::chart::XChartDataArray
,
259 css::beans::XPropertySet
,
260 css::container::XNamed
,
261 css::table::XAutoFormattable
,
262 css::util::XSortable
,
263 css::sheet::XCellRangeData
268 ::sw::UnoImplPtr
<Impl
> m_pImpl
;
271 SwXTextTable(SwFrameFormat
& rFrameFormat
);
272 virtual ~SwXTextTable() override
;
275 static rtl::Reference
<SwXTextTable
>
276 CreateXTextTable(SwFrameFormat
* pFrameFormat
);
278 static void GetCellPosition(std::u16string_view aCellName
, sal_Int32
& o_rColumn
, sal_Int32
& o_rRow
);
280 SwFrameFormat
* GetFrameFormat();
283 virtual void SAL_CALL
initialize( sal_Int32 nRows
, sal_Int32 nColumns
) override
;
284 virtual css::uno::Reference
< css::table::XTableRows
> SAL_CALL
getRows( ) override
;
285 virtual css::uno::Reference
< css::table::XTableColumns
> SAL_CALL
getColumns( ) override
;
286 virtual css::uno::Reference
< css::table::XCell
> SAL_CALL
getCellByName( const OUString
& aCellName
) override
;
287 virtual css::uno::Sequence
< OUString
> SAL_CALL
getCellNames( ) override
;
288 virtual css::uno::Reference
< css::text::XTextTableCursor
> SAL_CALL
createCursorByCellName( const OUString
& aCellName
) override
;
291 virtual void SAL_CALL
attach(const css::uno::Reference
< css::text::XTextRange
> & xTextRange
) override
;
292 virtual css::uno::Reference
< css::text::XTextRange
> SAL_CALL
getAnchor( ) override
;
295 virtual void SAL_CALL
dispose() override
;
296 virtual void SAL_CALL
addEventListener(const css::uno::Reference
< css::lang::XEventListener
> & aListener
) override
;
297 virtual void SAL_CALL
removeEventListener(const css::uno::Reference
< css::lang::XEventListener
> & aListener
) override
;
300 virtual css::uno::Reference
< css::table::XCell
> SAL_CALL
getCellByPosition( sal_Int32 nColumn
, sal_Int32 nRow
) override
;
301 virtual css::uno::Reference
< css::table::XCellRange
> SAL_CALL
getCellRangeByPosition( sal_Int32 nLeft
, sal_Int32 nTop
, sal_Int32 nRight
, sal_Int32 nBottom
) override
;
302 virtual css::uno::Reference
< css::table::XCellRange
> SAL_CALL
getCellRangeByName( const OUString
& aRange
) override
;
305 virtual css::uno::Sequence
< css::uno::Sequence
< double > > SAL_CALL
getData( ) override
;
306 virtual void SAL_CALL
setData( const css::uno::Sequence
< css::uno::Sequence
< double > >& aData
) override
;
307 virtual css::uno::Sequence
< OUString
> SAL_CALL
getRowDescriptions( ) override
;
308 virtual void SAL_CALL
setRowDescriptions( const css::uno::Sequence
< OUString
>& aRowDescriptions
) override
;
309 virtual css::uno::Sequence
< OUString
> SAL_CALL
getColumnDescriptions( ) override
;
310 virtual void SAL_CALL
setColumnDescriptions( const css::uno::Sequence
< OUString
>& aColumnDescriptions
) override
;
313 virtual void SAL_CALL
addChartDataChangeEventListener( const css::uno::Reference
< css::chart::XChartDataChangeEventListener
>& aListener
) override
;
314 virtual void SAL_CALL
removeChartDataChangeEventListener( const css::uno::Reference
< css::chart::XChartDataChangeEventListener
>& aListener
) override
;
315 virtual double SAL_CALL
getNotANumber( ) override
;
316 virtual sal_Bool SAL_CALL
isNotANumber( double nNumber
) override
;
319 virtual css::uno::Sequence
< css::beans::PropertyValue
> SAL_CALL
createSortDescriptor() override
;
320 virtual void SAL_CALL
sort(const css::uno::Sequence
< css::beans::PropertyValue
>& xDescriptor
) override
;
323 virtual void SAL_CALL
autoFormat(const OUString
& aName
) override
;
326 virtual css::uno::Reference
< css::beans::XPropertySetInfo
> SAL_CALL
getPropertySetInfo( ) override
;
327 virtual void SAL_CALL
setPropertyValue( const OUString
& aPropertyName
, const css::uno::Any
& aValue
) override
;
328 virtual css::uno::Any SAL_CALL
getPropertyValue( const OUString
& PropertyName
) override
;
329 virtual void SAL_CALL
addPropertyChangeListener( const OUString
& aPropertyName
, const css::uno::Reference
< css::beans::XPropertyChangeListener
>& xListener
) override
;
330 virtual void SAL_CALL
removePropertyChangeListener( const OUString
& aPropertyName
, const css::uno::Reference
< css::beans::XPropertyChangeListener
>& aListener
) override
;
331 virtual void SAL_CALL
addVetoableChangeListener( const OUString
& PropertyName
, const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
332 virtual void SAL_CALL
removeVetoableChangeListener( const OUString
& PropertyName
, const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
335 virtual OUString SAL_CALL
getName() override
;
336 virtual void SAL_CALL
setName(const OUString
& Name_
) override
;
339 virtual css::uno::Sequence
< css::uno::Sequence
< css::uno::Any
> > SAL_CALL
getDataArray( ) override
;
340 virtual void SAL_CALL
setDataArray( const css::uno::Sequence
< css::uno::Sequence
< css::uno::Any
> >& aArray
) override
;
343 virtual OUString SAL_CALL
getImplementationName() override
;
344 virtual sal_Bool SAL_CALL
supportsService(const OUString
& ServiceName
) override
;
345 virtual css::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() override
;
347 rtl::Reference
< SwXTableRows
> getSwRows();
348 rtl::Reference
< SwXCell
> getSwCellByPosition( sal_Int32 nColumn
, sal_Int32 nRow
);
349 rtl::Reference
< SwXCell
> getSwCellByName( const OUString
& aCellName
);
352 class SwXCellRange final
: public cppu::WeakImplHelper
354 css::table::XCellRange
,
355 css::lang::XServiceInfo
,
356 css::beans::XPropertySet
,
357 css::chart::XChartDataArray
,
358 css::util::XSortable
,
359 css::sheet::XCellRangeData
364 ::sw::UnoImplPtr
<Impl
> m_pImpl
;
366 SwXCellRange(const sw::UnoCursorPointer
& pCursor
, SwFrameFormat
& rFrameFormat
, SwRangeDescriptor
const & rDesc
);
367 virtual ~SwXCellRange() override
;
370 static ::rtl::Reference
<SwXCellRange
> CreateXCellRange(
371 const sw::UnoCursorPointer
& pCursor
, SwFrameFormat
& rFrameFormat
,
372 SwRangeDescriptor
const & rDesc
);
374 void SetLabels(bool bFirstRowAsLabel
, bool bFirstColumnAsLabel
);
376 std::vector
<css::uno::Reference
<css::table::XCell
>> GetCells();
378 const SwUnoCursor
* GetTableCursor() const;
381 virtual css::uno::Reference
< css::table::XCell
> SAL_CALL
getCellByPosition( sal_Int32 nColumn
, sal_Int32 nRow
) override
;
382 virtual css::uno::Reference
< css::table::XCellRange
> SAL_CALL
getCellRangeByPosition( sal_Int32 nLeft
, sal_Int32 nTop
, sal_Int32 nRight
, sal_Int32 nBottom
) override
;
383 virtual css::uno::Reference
< css::table::XCellRange
> SAL_CALL
getCellRangeByName( const OUString
& aRange
) override
;
386 virtual css::uno::Reference
< css::beans::XPropertySetInfo
> SAL_CALL
getPropertySetInfo( ) override
;
387 virtual void SAL_CALL
setPropertyValue(const OUString
& aPropertyName
, const css::uno::Any
& aValue
) override
;
388 virtual css::uno::Any SAL_CALL
getPropertyValue(const OUString
& PropertyName
) override
;
389 virtual void SAL_CALL
addPropertyChangeListener( const OUString
& aPropertyName
, const css::uno::Reference
< css::beans::XPropertyChangeListener
>& xListener
) override
;
390 virtual void SAL_CALL
removePropertyChangeListener( const OUString
& aPropertyName
, const css::uno::Reference
< css::beans::XPropertyChangeListener
>& aListener
) override
;
391 virtual void SAL_CALL
addVetoableChangeListener( const OUString
& PropertyName
, const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
392 virtual void SAL_CALL
removeVetoableChangeListener( const OUString
& PropertyName
, const css::uno::Reference
< css::beans::XVetoableChangeListener
>& aListener
) override
;
395 virtual void SAL_CALL
addChartDataChangeEventListener( const css::uno::Reference
< css::chart::XChartDataChangeEventListener
>& aListener
) override
;
396 virtual void SAL_CALL
removeChartDataChangeEventListener( const css::uno::Reference
< css::chart::XChartDataChangeEventListener
>& aListener
) override
;
397 virtual double SAL_CALL
getNotANumber( ) override
;
398 virtual sal_Bool SAL_CALL
isNotANumber( double nNumber
) override
;
401 virtual css::uno::Sequence
< css::uno::Sequence
< double > > SAL_CALL
getData( ) override
;
402 virtual void SAL_CALL
setData( const css::uno::Sequence
< css::uno::Sequence
< double > >& aData
) override
;
403 virtual css::uno::Sequence
< OUString
> SAL_CALL
getRowDescriptions( ) override
;
404 virtual void SAL_CALL
setRowDescriptions( const css::uno::Sequence
< OUString
>& aRowDescriptions
) override
;
405 virtual css::uno::Sequence
< OUString
> SAL_CALL
getColumnDescriptions( ) override
;
406 virtual void SAL_CALL
setColumnDescriptions( const css::uno::Sequence
< OUString
>& aColumnDescriptions
) override
;
409 virtual css::uno::Sequence
< css::beans::PropertyValue
> SAL_CALL
createSortDescriptor() override
;
410 virtual void SAL_CALL
sort(const css::uno::Sequence
< css::beans::PropertyValue
>& xDescriptor
) override
;
413 virtual css::uno::Sequence
< css::uno::Sequence
< css::uno::Any
> > SAL_CALL
getDataArray( ) override
;
414 virtual void SAL_CALL
setDataArray( const css::uno::Sequence
< css::uno::Sequence
< css::uno::Any
> >& aArray
) override
;
417 virtual OUString SAL_CALL
getImplementationName() override
;
418 virtual sal_Bool SAL_CALL
supportsService(const OUString
& ServiceName
) override
;
419 virtual css::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() override
;
423 /// UNO API wrapper for SwTableLines.
424 class SAL_DLLPUBLIC_RTTI SwXTableRows final
: public cppu::WeakImplHelper
426 css::table::XTableRows
,
427 css::lang::XServiceInfo
431 ::sw::UnoImplPtr
<Impl
> m_pImpl
;
432 SwFrameFormat
* GetFrameFormat();
433 const SwFrameFormat
* GetFrameFormat() const { return const_cast<SwXTableRows
*>(this)->GetFrameFormat(); }
434 virtual ~SwXTableRows() override
;
437 SwXTableRows(SwFrameFormat
& rFrameFormat
);
440 SW_DLLPUBLIC
virtual sal_Int32 SAL_CALL
getCount() override
;
441 virtual css::uno::Any SAL_CALL
getByIndex(sal_Int32 nIndex
) override
;
444 virtual css::uno::Type SAL_CALL
getElementType( ) override
;
445 virtual sal_Bool SAL_CALL
hasElements( ) override
;
448 virtual void SAL_CALL
insertByIndex(sal_Int32 nIndex
, sal_Int32 nCount
) override
;
449 virtual void SAL_CALL
removeByIndex(sal_Int32 nIndex
, sal_Int32 nCount
) override
;
452 virtual OUString SAL_CALL
getImplementationName() override
;
453 virtual sal_Bool SAL_CALL
supportsService(const OUString
& ServiceName
) override
;
454 virtual css::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() override
;
457 class SwXTableColumns final
: public cppu::WeakImplHelper
459 css::table::XTableColumns
,
460 css::lang::XServiceInfo
465 ::sw::UnoImplPtr
<Impl
> m_pImpl
;
466 SwFrameFormat
* GetFrameFormat() const;
468 virtual ~SwXTableColumns() override
;
470 SwXTableColumns(SwFrameFormat
& rFrameFormat
);
474 virtual sal_Int32 SAL_CALL
getCount() override
;
475 virtual css::uno::Any SAL_CALL
getByIndex(sal_Int32 nIndex
) override
;
478 virtual css::uno::Type SAL_CALL
getElementType( ) override
;
479 virtual sal_Bool SAL_CALL
hasElements( ) override
;
482 virtual void SAL_CALL
insertByIndex(sal_Int32 nIndex
, sal_Int32 nCount
) override
;
483 virtual void SAL_CALL
removeByIndex(sal_Int32 nIndex
, sal_Int32 nCount
) override
;
486 virtual OUString SAL_CALL
getImplementationName() override
;
487 virtual sal_Bool SAL_CALL
supportsService(const OUString
& ServiceName
) override
;
488 virtual css::uno::Sequence
< OUString
> SAL_CALL
getSupportedServiceNames() override
;
491 int sw_CompareCellRanges(
492 std::u16string_view aRange1StartCell
, std::u16string_view aRange1EndCell
,
493 std::u16string_view aRange2StartCell
, std::u16string_view aRange2EndCell
,
494 bool bCmpColsFirst
);
496 void sw_NormalizeRange( OUString
&rCell1
, OUString
&rCell2
);
498 OUString
sw_GetCellName( sal_Int32 nColumn
, sal_Int32 nRow
);
500 int sw_CompareCellsByColFirst( std::u16string_view aCellName1
, std::u16string_view aCellName2
);
502 int sw_CompareCellsByRowFirst( std::u16string_view aCellName1
, std::u16string_view aCellName2
);
506 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */