LibreOffice Module sw (master) 1
unotbl.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
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/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
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 .
18 */
19
20#ifndef INCLUDED_SW_INC_UNOTBL_HXX
21#define INCLUDED_SW_INC_UNOTBL_HXX
22
23#include <com/sun/star/container/XNamed.hpp>
24#include <com/sun/star/container/XEnumerationAccess.hpp>
25#include <com/sun/star/util/XSortable.hpp>
26#include <com/sun/star/chart/XChartDataArray.hpp>
27#include <com/sun/star/text/XTextTableCursor.hpp>
28#include <com/sun/star/text/XTextTable.hpp>
29#include <com/sun/star/table/XCellRange.hpp>
30#include <com/sun/star/sheet/XCellRangeData.hpp>
31#include <com/sun/star/table/XAutoFormattable.hpp>
32
34
35#include <comphelper/uno3.hxx>
36
37#include <svl/listener.hxx>
38
39#include "TextCursorHelper.hxx"
40#include "unotext.hxx"
41#include "frmfmt.hxx"
42#include "unocrsr.hxx"
43
44class SwTable;
45class SwTableBox;
46class SwTableLine;
47class SwTableCursor;
49
50typedef
51cppu::WeakImplHelper
52<
53 css::table::XCell,
54 css::lang::XServiceInfo,
55 css::beans::XPropertySet,
56 css::container::XEnumerationAccess
57>
59class SwXCell final : public SwXCellBaseClass,
60 public SwXText,
61 public SvtListener
62{
63 friend void sw_setString( SwXCell &rCell, const OUString &rText,
64 bool bKeepNumberFormat );
65 friend void sw_setValue( SwXCell &rCell, double nVal );
66
68 SwTableBox* m_pBox; // only set in non-XML import
69 const SwStartNode* m_pStartNode; // only set in XML import
71
72 // table position where pBox was found last
73 size_t m_nFndPos;
74 css::uno::Reference<css::text::XText> m_xParentText;
75 static size_t const NOTFOUND = SAL_MAX_SIZE;
76
77 virtual const SwStartNode *GetStartNode() const override;
78
79 virtual css::uno::Reference< css::text::XTextCursor >
80 CreateCursor() override;
81
82 bool IsValid() const;
83
84 virtual ~SwXCell() override;
85
86 virtual void Notify(const SfxHint&) override;
87
88public:
89 SwXCell(SwFrameFormat* pTableFormat, SwTableBox* pBox, size_t nPos);
90 SwXCell(SwFrameFormat* pTableFormat, const SwStartNode& rStartNode); // XML import interface
91
92
93 static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId();
94
95 //XUnoTunnel
96 virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) override;
97
98 virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) override;
99 virtual void SAL_CALL acquire( ) noexcept override;
100 virtual void SAL_CALL release( ) noexcept override;
101
102 //XTypeProvider
103 virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override;
104 virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) override;
105
106 //XCell
107 virtual OUString SAL_CALL getFormula( ) override;
108 virtual void SAL_CALL setFormula( const OUString& aFormula ) override;
109 virtual double SAL_CALL getValue( ) override;
111 double getValue( ) const
112 { return const_cast<SwXCell*>(this)->getValue(); };
113 virtual void SAL_CALL setValue( double nValue ) override;
114 virtual css::table::CellContentType SAL_CALL getType( ) override;
115 virtual sal_Int32 SAL_CALL getError( ) override;
116
117 //XText
118 virtual css::uno::Reference< css::text::XTextCursor > SAL_CALL createTextCursor() override;
119 virtual css::uno::Reference< css::text::XTextCursor > SAL_CALL createTextCursorByRange(const css::uno::Reference< css::text::XTextRange > & aTextPosition) override;
120 virtual void SAL_CALL setString(const OUString& aString) override;
121
122 //XPropertySet
123 virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override;
124 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) override;
125 virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override;
126 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
127 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
128 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
129 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
130
131 //XServiceInfo
132 virtual OUString SAL_CALL getImplementationName() override;
133 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
134 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
135
136 //XEnumerationAccess - was: XParagraphEnumerationAccess
137 virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override;
138
139 //XElementAccess
140 virtual css::uno::Type SAL_CALL getElementType( ) override;
141 virtual sal_Bool SAL_CALL hasElements( ) override;
142
143 SwTableBox* GetTableBox() const { return m_pBox; }
144 static rtl::Reference<SwXCell> CreateXCell(SwFrameFormat* pTableFormat, SwTableBox* pBox, SwTable *pTable = nullptr );
145 SwTableBox* FindBox(SwTable* pTable, SwTableBox* pBox);
147 double GetForcedNumericalValue() const;
148 css::uno::Any GetAny() const;
149};
150
152 : public cppu::WeakImplHelper<css::beans::XPropertySet, css::lang::XServiceInfo>
153 , public SvtListener
154{
158
160 const SwFrameFormat* GetFrameFormat() const { return m_pFormat; }
161 virtual ~SwXTextTableRow() override;
162
163public:
164 SwXTextTableRow(SwFrameFormat* pFormat, SwTableLine* pLine);
165
166
167 //XPropertySet
168 virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override;
169 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) override;
170 virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override;
171 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
172 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
173 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
174 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
175
176 //XServiceInfo
177 virtual OUString SAL_CALL getImplementationName() override;
178 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
179 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
180
181 static SwTableLine* FindLine(SwTable* pTable, SwTableLine const * pLine);
182
183 void Notify(const SfxHint&) override;
184};
185
186typedef cppu::WeakImplHelper<
187 css::text::XTextTableCursor,
188 css::lang::XServiceInfo,
189 css::beans::XPropertySet> SwXTextTableCursor_Base;
192 , public SvtListener
193 , public OTextCursorHelper
194{
197
198public:
199 SwXTextTableCursor(SwFrameFormat* pFormat, SwTableBox const* pBox);
200 SwXTextTableCursor(SwFrameFormat& rTableFormat, const SwTableCursor* pTableSelection);
202
203 //XTextTableCursor
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;
214
215 //XPropertySet
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;
223
224 //XServiceInfo
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;
228
229
230 // ITextCursorHelper
231 virtual const SwPaM* GetPaM() const override;
232 virtual SwPaM* GetPaM() override;
233 virtual const SwDoc* GetDoc() const override;
234 virtual SwDoc* GetDoc() override;
235
236 virtual void Notify( const SfxHint& ) override;
237
238 const SwUnoCursor& GetCursor() const;
239 SwUnoCursor& GetCursor();
240 sw::UnoCursorPointer m_pUnoCursor;
241 SwFrameFormat* GetFrameFormat() const { return m_pFrameFormat; }
242};
243
245{
246 sal_Int32 nTop;
247 sal_Int32 nLeft;
248 sal_Int32 nBottom;
249 sal_Int32 nRight;
250
251 void Normalize();
252};
253
254class SAL_DLLPUBLIC_RTTI SwXTextTable final : public cppu::WeakImplHelper
255<
256 css::text::XTextTable,
257 css::lang::XServiceInfo,
258 css::table::XCellRange,
259 css::chart::XChartDataArray,
260 css::beans::XPropertySet,
261 css::container::XNamed,
262 css::table::XAutoFormattable,
263 css::util::XSortable,
264 css::lang::XUnoTunnel,
265 css::sheet::XCellRangeData
266>
267{
268private:
269 class Impl;
271
272 SwXTextTable();
273 SwXTextTable(SwFrameFormat& rFrameFormat);
274 virtual ~SwXTextTable() override;
275
276public:
277 static css::uno::Reference<css::text::XTextTable>
278 CreateXTextTable(SwFrameFormat * pFrameFormat);
279
280 SW_DLLPUBLIC static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId();
281
282 SW_DLLPUBLIC static void GetCellPosition(const OUString& rCellName, sal_Int32& o_rColumn, sal_Int32& o_rRow);
283
284 SW_DLLPUBLIC SwFrameFormat* GetFrameFormat();
285
286 //XUnoTunnel
287 virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) override;
288
289
290 //XTextTable
291 virtual void SAL_CALL initialize( sal_Int32 nRows, sal_Int32 nColumns ) override;
292 virtual css::uno::Reference< css::table::XTableRows > SAL_CALL getRows( ) override;
293 virtual css::uno::Reference< css::table::XTableColumns > SAL_CALL getColumns( ) override;
294 virtual css::uno::Reference< css::table::XCell > SAL_CALL getCellByName( const OUString& aCellName ) override;
295 virtual css::uno::Sequence< OUString > SAL_CALL getCellNames( ) override;
296 virtual css::uno::Reference< css::text::XTextTableCursor > SAL_CALL createCursorByCellName( const OUString& aCellName ) override;
297
298 //XTextContent
299 virtual void SAL_CALL attach(const css::uno::Reference< css::text::XTextRange > & xTextRange) override;
300 virtual css::uno::Reference< css::text::XTextRange > SAL_CALL getAnchor( ) override;
301
302 //XComponent
303 virtual void SAL_CALL dispose() override;
304 virtual void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener > & aListener) override;
305 virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::lang::XEventListener > & aListener) override;
306
307 //XCellRange
308 virtual css::uno::Reference< css::table::XCell > SAL_CALL getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow ) override;
309 virtual css::uno::Reference< css::table::XCellRange > SAL_CALL getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom ) override;
310 virtual css::uno::Reference< css::table::XCellRange > SAL_CALL getCellRangeByName( const OUString& aRange ) override;
311
312 //XChartDataArray
313 virtual css::uno::Sequence< css::uno::Sequence< double > > SAL_CALL getData( ) override;
314 virtual void SAL_CALL setData( const css::uno::Sequence< css::uno::Sequence< double > >& aData ) override;
315 virtual css::uno::Sequence< OUString > SAL_CALL getRowDescriptions( ) override;
316 virtual void SAL_CALL setRowDescriptions( const css::uno::Sequence< OUString >& aRowDescriptions ) override;
317 virtual css::uno::Sequence< OUString > SAL_CALL getColumnDescriptions( ) override;
318 virtual void SAL_CALL setColumnDescriptions( const css::uno::Sequence< OUString >& aColumnDescriptions ) override;
319
320 //XChartData
321 virtual void SAL_CALL addChartDataChangeEventListener( const css::uno::Reference< css::chart::XChartDataChangeEventListener >& aListener ) override;
322 virtual void SAL_CALL removeChartDataChangeEventListener( const css::uno::Reference< css::chart::XChartDataChangeEventListener >& aListener ) override;
323 virtual double SAL_CALL getNotANumber( ) override;
324 virtual sal_Bool SAL_CALL isNotANumber( double nNumber ) override;
325
326 //XSortable
327 virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL createSortDescriptor() override;
328 virtual void SAL_CALL sort(const css::uno::Sequence< css::beans::PropertyValue >& xDescriptor) override;
329
330 //XAutoFormattable
331 virtual void SAL_CALL autoFormat(const OUString& aName) override;
332
333 //XPropertySet
334 virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override;
335 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) override;
336 virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override;
337 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
338 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
339 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
340 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
341
342 //XNamed
343 virtual OUString SAL_CALL getName() override;
344 virtual void SAL_CALL setName(const OUString& Name_) override;
345
346 //XCellRangeData
347 virtual css::uno::Sequence< css::uno::Sequence< css::uno::Any > > SAL_CALL getDataArray( ) override;
348 virtual void SAL_CALL setDataArray( const css::uno::Sequence< css::uno::Sequence< css::uno::Any > >& aArray ) override;
349
350 //XServiceInfo
351 virtual OUString SAL_CALL getImplementationName() override;
352 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
353 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
354
355};
356
357class SwXCellRange final : public cppu::WeakImplHelper
358<
359 css::table::XCellRange,
360 css::lang::XServiceInfo,
361 css::lang::XUnoTunnel,
362 css::beans::XPropertySet,
363 css::chart::XChartDataArray,
364 css::util::XSortable,
365 css::sheet::XCellRangeData
366>
367{
368private:
369 class Impl;
371
372 SwXCellRange(const sw::UnoCursorPointer& pCursor, SwFrameFormat& rFrameFormat, SwRangeDescriptor const & rDesc);
373 virtual ~SwXCellRange() override;
374
375public:
376 static ::rtl::Reference<SwXCellRange> CreateXCellRange(
377 const sw::UnoCursorPointer& pCursor, SwFrameFormat& rFrameFormat,
378 SwRangeDescriptor const & rDesc);
379
380 static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId();
381
382 void SetLabels(bool bFirstRowAsLabel, bool bFirstColumnAsLabel);
383
384 std::vector<css::uno::Reference<css::table::XCell>> GetCells();
385
386 const SwUnoCursor* GetTableCursor() const;
387
388 //XUnoTunnel
389 virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) override;
390
391 //XCellRange
392 virtual css::uno::Reference< css::table::XCell > SAL_CALL getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow ) override;
393 virtual css::uno::Reference< css::table::XCellRange > SAL_CALL getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom ) override;
394 virtual css::uno::Reference< css::table::XCellRange > SAL_CALL getCellRangeByName( const OUString& aRange ) override;
395
396 //XPropertySet
397 virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override;
398 virtual void SAL_CALL setPropertyValue(const OUString& aPropertyName, const css::uno::Any& aValue) override;
399 virtual css::uno::Any SAL_CALL getPropertyValue(const OUString& PropertyName) override;
400 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
401 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
402 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
403 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
404
405 //XChartData
406 virtual void SAL_CALL addChartDataChangeEventListener( const css::uno::Reference< css::chart::XChartDataChangeEventListener >& aListener ) override;
407 virtual void SAL_CALL removeChartDataChangeEventListener( const css::uno::Reference< css::chart::XChartDataChangeEventListener >& aListener ) override;
408 virtual double SAL_CALL getNotANumber( ) override;
409 virtual sal_Bool SAL_CALL isNotANumber( double nNumber ) override;
410
411 //XChartDataArray
412 virtual css::uno::Sequence< css::uno::Sequence< double > > SAL_CALL getData( ) override;
413 virtual void SAL_CALL setData( const css::uno::Sequence< css::uno::Sequence< double > >& aData ) override;
414 virtual css::uno::Sequence< OUString > SAL_CALL getRowDescriptions( ) override;
415 virtual void SAL_CALL setRowDescriptions( const css::uno::Sequence< OUString >& aRowDescriptions ) override;
416 virtual css::uno::Sequence< OUString > SAL_CALL getColumnDescriptions( ) override;
417 virtual void SAL_CALL setColumnDescriptions( const css::uno::Sequence< OUString >& aColumnDescriptions ) override;
418
419 //XSortable
420 virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL createSortDescriptor() override;
421 virtual void SAL_CALL sort(const css::uno::Sequence< css::beans::PropertyValue >& xDescriptor) override;
422
423 //XCellRangeData
424 virtual css::uno::Sequence< css::uno::Sequence< css::uno::Any > > SAL_CALL getDataArray( ) override;
425 virtual void SAL_CALL setDataArray( const css::uno::Sequence< css::uno::Sequence< css::uno::Any > >& aArray ) override;
426
427 //XServiceInfo
428 virtual OUString SAL_CALL getImplementationName() override;
429 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
430 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
431
432};
433
435class SwXTableRows final : public cppu::WeakImplHelper
436<
437 css::table::XTableRows,
438 css::lang::XServiceInfo
439>
440{
441 class Impl;
444 const SwFrameFormat* GetFrameFormat() const { return const_cast<SwXTableRows*>(this)->GetFrameFormat(); }
445 virtual ~SwXTableRows() override;
446
447public:
448 SwXTableRows(SwFrameFormat& rFrameFormat);
449
450 //XIndexAccess
451 virtual sal_Int32 SAL_CALL getCount() override;
452 virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override;
453
454 //XElementAccess
455 virtual css::uno::Type SAL_CALL getElementType( ) override;
456 virtual sal_Bool SAL_CALL hasElements( ) override;
457
458 //XTableRows
459 virtual void SAL_CALL insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) override;
460 virtual void SAL_CALL removeByIndex(sal_Int32 nIndex, sal_Int32 nCount) override;
461
462 //XServiceInfo
463 virtual OUString SAL_CALL getImplementationName() override;
464 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
465 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
466};
467
468class SwXTableColumns final : public cppu::WeakImplHelper
469<
470 css::table::XTableColumns,
471 css::lang::XServiceInfo
472>
473{
474private:
475 class Impl;
478
479 virtual ~SwXTableColumns() override;
480public:
481 SwXTableColumns(SwFrameFormat& rFrameFormat);
482
483
484 //XIndexAccess
485 virtual sal_Int32 SAL_CALL getCount() override;
486 virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override;
487
488 //XElementAccess
489 virtual css::uno::Type SAL_CALL getElementType( ) override;
490 virtual sal_Bool SAL_CALL hasElements( ) override;
491
492 //XTableColumns
493 virtual void SAL_CALL insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) override;
494 virtual void SAL_CALL removeByIndex(sal_Int32 nIndex, sal_Int32 nCount) override;
495
496 //XServiceInfo
497 virtual OUString SAL_CALL getImplementationName() override;
498 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
499 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
500};
501
503 const OUString &rRange1StartCell, const OUString &rRange1EndCell,
504 const OUString &rRange2StartCell, const OUString &rRange2EndCell,
505 bool bCmpColsFirst );
506
507void sw_NormalizeRange( OUString &rCell1, OUString &rCell2 );
508
509OUString sw_GetCellName( sal_Int32 nColumn, sal_Int32 nRow );
510
511int sw_CompareCellsByColFirst( const OUString &rCellName1, const OUString &rCellName2 );
512
513int sw_CompareCellsByRowFirst( const OUString &rCellName1, const OUString &rCellName2 );
514
515#endif
516
517/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition: doc.hxx:188
Style of a layout element.
Definition: frmfmt.hxx:61
PaM is Point and Mark: a selection of the document model.
Definition: pam.hxx:138
Starts a section of nodes in the document model.
Definition: node.hxx:314
SwTableBox is one table cell in the document model.
Definition: swtable.hxx:419
SwTableLine is one table row in the document model.
Definition: swtable.hxx:358
SwTable is one table in the document model, containing rows (which contain cells).
Definition: swtable.hxx:113
virtual void SAL_CALL sort(const css::uno::Sequence< css::beans::PropertyValue > &xDescriptor) override
Definition: unotbl.cxx:3786
::sw::UnoImplPtr< Impl > m_pImpl
Definition: unotbl.hxx:369
virtual OUString SAL_CALL getImplementationName() override
Definition: unotbl.cxx:3174
virtual sal_Int64 SAL_CALL getSomething(const css::uno::Sequence< sal_Int8 > &aIdentifier) override
Definition: unotbl.cxx:3168
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Definition: unotbl.cxx:3180
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Definition: unotbl.cxx:3177
virtual css::uno::Sequence< OUString > SAL_CALL getColumnDescriptions() override
Definition: unotbl.cxx:3719
virtual void SAL_CALL setRowDescriptions(const css::uno::Sequence< OUString > &aRowDescriptions) override
Definition: unotbl.cxx:3746
virtual css::uno::Sequence< css::uno::Sequence< double > > SAL_CALL getData() override
Definition: unotbl.cxx:3612
virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL createSortDescriptor() override
Definition: unotbl.cxx:3780
virtual void SAL_CALL setColumnDescriptions(const css::uno::Sequence< OUString > &aColumnDescriptions) override
Definition: unotbl.cxx:3752
virtual css::uno::Reference< css::table::XCell > SAL_CALL getCellByPosition(sal_Int32 nColumn, sal_Int32 nRow) override
Definition: unotbl.cxx:3232
virtual double SAL_CALL getNotANumber() override
Definition: unotbl.cxx:3777
std::vector< css::uno::Reference< css::table::XCell > > GetCells()
Definition: unotbl.cxx:3218
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
Definition: unotbl.cxx:3540
static ::rtl::Reference< SwXCellRange > CreateXCellRange(const sw::UnoCursorPointer &pCursor, SwFrameFormat &rFrameFormat, SwRangeDescriptor const &rDesc)
Definition: unotbl.cxx:3202
virtual ~SwXCellRange() override
Definition: unotbl.cxx:3198
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: unotbl.cxx:3328
virtual css::uno::Reference< css::table::XCellRange > SAL_CALL getCellRangeByPosition(sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom) override
Definition: unotbl.cxx:3255
void SetLabels(bool bFirstRowAsLabel, bool bFirstColumnAsLabel)
Definition: unotbl.cxx:3212
virtual sal_Bool SAL_CALL isNotANumber(double nNumber) override
Definition: unotbl.cxx:3774
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
Definition: unotbl.cxx:3537
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
Definition: unotbl.cxx:3335
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
Definition: unotbl.cxx:3455
const SwUnoCursor * GetTableCursor() const
Definition: unotbl.cxx:3810
SwXCellRange(const sw::UnoCursorPointer &pCursor, SwFrameFormat &rFrameFormat, SwRangeDescriptor const &rDesc)
Definition: unotbl.cxx:3192
virtual css::uno::Reference< css::table::XCellRange > SAL_CALL getCellRangeByName(const OUString &aRange) override
Definition: unotbl.cxx:3308
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
Definition: unotbl.cxx:3543
virtual void SAL_CALL setDataArray(const css::uno::Sequence< css::uno::Sequence< css::uno::Any > > &aArray) override
Definition: unotbl.cxx:3577
virtual void SAL_CALL removeChartDataChangeEventListener(const css::uno::Reference< css::chart::XChartDataChangeEventListener > &aListener) override
Definition: unotbl.cxx:3766
static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId()
Definition: unotbl.cxx:3162
virtual void SAL_CALL addChartDataChangeEventListener(const css::uno::Reference< css::chart::XChartDataChangeEventListener > &aListener) override
Definition: unotbl.cxx:3758
virtual void SAL_CALL setData(const css::uno::Sequence< css::uno::Sequence< double > > &aData) override
Definition: unotbl.cxx:3645
virtual css::uno::Sequence< css::uno::Sequence< css::uno::Any > > SAL_CALL getDataArray() override
Definition: unotbl.cxx:3550
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
Definition: unotbl.cxx:3546
virtual css::uno::Sequence< OUString > SAL_CALL getRowDescriptions() override
Definition: unotbl.cxx:3714
virtual sal_Int64 SAL_CALL getSomething(const css::uno::Sequence< sal_Int8 > &aIdentifier) override
Definition: unotbl.cxx:751
virtual double SAL_CALL getValue() override
Definition: unotbl.cxx:870
virtual sal_Int32 SAL_CALL getError() override
Definition: unotbl.cxx:909
virtual const SwStartNode * GetStartNode() const override
Definition: unotbl.cxx:789
css::uno::Reference< css::text::XText > m_xParentText
Definition: unotbl.hxx:74
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: unotbl.cxx:948
virtual void SAL_CALL acquire() noexcept override
Definition: unotbl.cxx:769
double GetForcedNumericalValue() const
Definition: unotbl.cxx:1160
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
Definition: unotbl.cxx:756
virtual css::uno::Reference< css::text::XTextCursor > CreateCursor() override
Definition: unotbl.cxx:800
virtual OUString SAL_CALL getImplementationName() override
Definition: unotbl.cxx:1211
css::uno::Any GetAny() const
Definition: unotbl.cxx:1201
virtual css::uno::Type SAL_CALL getElementType() override
Definition: unotbl.cxx:1096
static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId()
Definition: unotbl.cxx:745
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
Definition: unotbl.cxx:764
SwTableBox * FindBox(SwTable *pTable, SwTableBox *pBox)
search if a box exists in a table
Definition: unotbl.cxx:1140
virtual void SAL_CALL setString(const OUString &aString) override
Definition: unotbl.cxx:903
friend void sw_setValue(SwXCell &rCell, double nVal)
Definition: unotbl.cxx:685
bool IsValid() const
Definition: unotbl.cxx:805
virtual ~SwXCell() override
Definition: unotbl.cxx:739
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
Definition: unotbl.cxx:1070
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
Definition: unotbl.cxx:954
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
Definition: unotbl.cxx:1079
virtual css::uno::Reference< css::text::XTextCursor > SAL_CALL createTextCursor() override
Definition: unotbl.cxx:916
SwTableBox * GetTableBox() const
Definition: unotbl.hxx:143
virtual void Notify(const SfxHint &) override
Definition: unotbl.cxx:1106
size_t m_nFndPos
Definition: unotbl.hxx:73
virtual void SAL_CALL setValue(double nValue) override
Definition: unotbl.cxx:879
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
Definition: unotbl.cxx:1073
virtual OUString SAL_CALL getFormula() override
Definition: unotbl.cxx:827
const SwStartNode * m_pStartNode
Definition: unotbl.hxx:69
SwFrameFormat * m_pTableFormat
Definition: unotbl.hxx:70
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Definition: unotbl.cxx:1217
virtual void SAL_CALL setFormula(const OUString &aFormula) override
Definition: unotbl.cxx:839
friend void sw_setString(SwXCell &rCell, const OUString &rText, bool bKeepNumberFormat)
Definition: unotbl.cxx:667
virtual sal_Bool SAL_CALL hasElements() override
Definition: unotbl.cxx:1101
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
Definition: unotbl.cxx:1007
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override
Definition: unotbl.cxx:1082
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
Definition: unotbl.cxx:1076
SwFrameFormat * GetFrameFormat() const
Definition: unotbl.hxx:146
static rtl::Reference< SwXCell > CreateXCell(SwFrameFormat *pTableFormat, SwTableBox *pBox, SwTable *pTable=nullptr)
Definition: unotbl.cxx:1119
virtual void SAL_CALL release() noexcept override
Definition: unotbl.cxx:774
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &aType) override
Definition: unotbl.cxx:781
static size_t const NOTFOUND
Definition: unotbl.hxx:75
const SfxItemPropertySet * m_pPropSet
Definition: unotbl.hxx:67
virtual css::uno::Reference< css::text::XTextCursor > SAL_CALL createTextCursorByRange(const css::uno::Reference< css::text::XTextRange > &aTextPosition) override
Definition: unotbl.cxx:930
SwTableBox * m_pBox
Definition: unotbl.hxx:68
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Definition: unotbl.cxx:1214
SwXCell(SwFrameFormat *pTableFormat, SwTableBox *pBox, size_t nPos)
Definition: unotbl.cxx:717
virtual css::table::CellContentType SAL_CALL getType() override
Definition: unotbl.cxx:885
virtual ~SwXTableColumns() override
Definition: unotbl.cxx:4037
virtual OUString SAL_CALL getImplementationName() override
Definition: unotbl.cxx:4023
virtual sal_Bool SAL_CALL hasElements() override
Definition: unotbl.cxx:4070
virtual sal_Int32 SAL_CALL getCount() override
Definition: unotbl.cxx:4045
SwXTableColumns(SwFrameFormat &rFrameFormat)
Definition: unotbl.cxx:4033
virtual void SAL_CALL insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) override
Definition: unotbl.cxx:4078
::sw::UnoImplPtr< Impl > m_pImpl
Definition: unotbl.hxx:475
SwFrameFormat * GetFrameFormat() const
Definition: unotbl.cxx:4040
virtual void SAL_CALL removeByIndex(sal_Int32 nIndex, sal_Int32 nCount) override
Definition: unotbl.cxx:4117
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Definition: unotbl.cxx:4026
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Definition: unotbl.cxx:4029
virtual css::uno::Type SAL_CALL getElementType() override
Definition: unotbl.cxx:4065
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override
Definition: unotbl.cxx:4057
UNO API wrapper for SwTableLines.
Definition: unotbl.hxx:440
SwXTableRows(SwFrameFormat &rFrameFormat)
Definition: unotbl.cxx:3865
SwFrameFormat * GetFrameFormat()
Definition: unotbl.cxx:3872
virtual ~SwXTableRows() override
Definition: unotbl.cxx:3869
virtual void SAL_CALL removeByIndex(sal_Int32 nIndex, sal_Int32 nCount) override
Definition: unotbl.cxx:3960
virtual css::uno::Type SAL_CALL getElementType() override
Definition: unotbl.cxx:3906
const SwFrameFormat * GetFrameFormat() const
Definition: unotbl.hxx:444
virtual sal_Int32 SAL_CALL getCount() override
Definition: unotbl.cxx:3877
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Definition: unotbl.cxx:3861
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override
Definition: unotbl.cxx:3888
virtual OUString SAL_CALL getImplementationName() override
Definition: unotbl.cxx:3855
virtual void SAL_CALL insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) override
Definition: unotbl.cxx:3921
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Definition: unotbl.cxx:3858
virtual sal_Bool SAL_CALL hasElements() override
Definition: unotbl.cxx:3911
::sw::UnoImplPtr< Impl > m_pImpl
Definition: unotbl.hxx:441
const SfxItemPropertySet * m_pPropSet
Definition: unotbl.hxx:196
SwFrameFormat * m_pFrameFormat
Definition: unotbl.hxx:195
SwXTextTableRow(SwFrameFormat *pFormat, SwTableLine *pLine)
Definition: unotbl.cxx:1230
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: unotbl.cxx:1244
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
Definition: unotbl.cxx:1378
SwTableLine * m_pLine
Definition: unotbl.hxx:156
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Definition: unotbl.cxx:1223
SwFrameFormat * m_pFormat
Definition: unotbl.hxx:155
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Definition: unotbl.cxx:1226
virtual OUString SAL_CALL getImplementationName() override
Definition: unotbl.cxx:1220
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
Definition: unotbl.cxx:1327
virtual ~SwXTextTableRow() override
Definition: unotbl.cxx:1238
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
Definition: unotbl.cxx:1250
const SwFrameFormat * GetFrameFormat() const
Definition: unotbl.hxx:160
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
Definition: unotbl.cxx:1372
void Notify(const SfxHint &) override
Definition: unotbl.cxx:1384
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
Definition: unotbl.cxx:1381
const SfxItemPropertySet * m_pPropSet
Definition: unotbl.hxx:157
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
Definition: unotbl.cxx:1375
SwFrameFormat * GetFrameFormat()
Definition: unotbl.hxx:159
static SwTableLine * FindLine(SwTable *pTable, SwTableLine const *pLine)
Definition: unotbl.cxx:1396
::sw::UnoImplPtr< Impl > m_pImpl
Definition: unotbl.hxx:269
void Notify(SwFlyFrame *pFly, SwPageFrame *pOld, const SwRect &rOld, const SwRect *pOldRect=nullptr)
Notify the background based on the difference between old and new rectangle.
Definition: frmtool.cxx:3242
constexpr OUStringLiteral aData
Definition: ww8scan.hxx:48
css::uno::Sequence< OUString > getSupportedServiceNames()
OUString getImplementationName()
Type
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
VBAHELPER_DLLPUBLIC bool setPropertyValue(css::uno::Sequence< css::beans::PropertyValue > &aProp, const OUString &aName, const css::uno::Any &aValue)
bool getPropertyValue(ValueType &rValue, css::uno::Reference< css::beans::XPropertySet > const &xPropSet, OUString const &propName)
Dialog to specify the properties of date form field.
std::unique_ptr< T, UnoImplPtrDeleter< T > > UnoImplPtr
Smart pointer class ensuring that the pointed object is deleted with a locked SolarMutex.
sal_Int32 nLeft
Definition: unotbl.hxx:247
sal_Int32 nBottom
Definition: unotbl.hxx:248
void Normalize()
Definition: unotbl.cxx:536
sal_Int32 nTop
Definition: unotbl.hxx:246
sal_Int32 nRight
Definition: unotbl.hxx:249
#define SW_DLLPUBLIC
Definition: swdllapi.h:28
unsigned char sal_Bool
signed char sal_Int8
#define DECLARE_XINTERFACE()
int sw_CompareCellRanges(const OUString &rRange1StartCell, const OUString &rRange1EndCell, const OUString &rRange2StartCell, const OUString &rRange2EndCell, bool bCmpColsFirst)
compare position of two cell ranges
Definition: unotbl.cxx:453
int sw_CompareCellsByColFirst(const OUString &rCellName1, const OUString &rCellName2)
compare position of two cells (check columns first)
Definition: unotbl.cxx:426
cppu::WeakImplHelper< css::text::XTextTableCursor, css::lang::XServiceInfo, css::beans::XPropertySet > SwXTextTableCursor_Base
Definition: unotbl.hxx:189
void sw_NormalizeRange(OUString &rCell1, OUString &rCell2)
cleanup order in a range
Definition: unotbl.cxx:524
int sw_CompareCellsByRowFirst(const OUString &rCellName1, const OUString &rCellName2)
compare position of two cells (check rows first)
Definition: unotbl.cxx:403
cppu::WeakImplHelper< css::table::XCell, css::lang::XServiceInfo, css::beans::XPropertySet, css::container::XEnumerationAccess > SwXCellBaseClass
Definition: unotbl.hxx:48
OUString sw_GetCellName(sal_Int32 nColumn, sal_Int32 nRow)
get cell name at a specified coordinate
Definition: unotbl.cxx:479