xref: /trunk/main/sw/inc/unotbl.hxx (revision 91144cd0085a7583d2099b982122deb2184ab956)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 #ifndef _UNOTBL_HXX
24 #define _UNOTBL_HXX
25 
26 #include <com/sun/star/container/XNamed.hpp>
27 #include <com/sun/star/container/XEnumerationAccess.hpp>
28 #include <com/sun/star/util/XSortable.hpp>
29 #include <com/sun/star/chart/XChartData.hpp>
30 #include <com/sun/star/chart/XChartDataArray.hpp>
31 #include <com/sun/star/chart2/data/XLabeledDataSequence.hpp>
32 #include <com/sun/star/text/XTextTableCursor.hpp>
33 #include <com/sun/star/text/XTextTable.hpp>
34 #include <com/sun/star/table/XCellRange.hpp>
35 #include <com/sun/star/sheet/XCellRangeData.hpp>
36 #include <com/sun/star/table/XAutoFormattable.hpp>
37 
38 #include <cppuhelper/implbase3.hxx>
39 #include <cppuhelper/implbase4.hxx>
40 #include <cppuhelper/implbase5.hxx>
41 #include <cppuhelper/implbase7.hxx>
42 #include <cppuhelper/implbase10.hxx>
43 
44 #include <comphelper/uno3.hxx>
45 #include <tools/string.hxx>
46 
47 #include <calbck.hxx>
48 #include <TextCursorHelper.hxx>
49 #include <unoevtlstnr.hxx>
50 #include <unotext.hxx>
51 
52 
53 class SwUnoCrsr;
54 class SwTable;
55 class SwTableBox;
56 class SwTableLine;
57 class SwTableCursor;
58 class SwTableBoxFmt;
59 class SwChartDataProvider;
60 class SwFrmFmt;
61 class SwXCell;
62 
63 void lcl_setString( SwXCell&, const rtl::OUString &rTxt, sal_Bool bKeepNumberFmt = sal_True );
64 
65 // ---------------------------------------------------------------------------
66 
67 class SwChartEventListenerContainer : public SwEventListenerContainer
68 {
69     public:
SwChartEventListenerContainer(::com::sun::star::uno::XInterface * pxParentL)70         SwChartEventListenerContainer( ::com::sun::star::uno::XInterface* pxParentL) :
71             SwEventListenerContainer(pxParentL){}
72         void ChartDataChanged();
73 };
74 /* ---------------------------------------------------------------------------
75 
76  ---------------------------------------------------------------------------*/
77 typedef
78 cppu::WeakImplHelper4
79 <
80     ::com::sun::star::table::XCell,
81     ::com::sun::star::lang::XServiceInfo,
82     ::com::sun::star::beans::XPropertySet,
83     ::com::sun::star::container::XEnumerationAccess
84 >
85 SwXCellBaseClass;
86 class SwXCell : public SwXCellBaseClass,
87     public SwXText,
88     public SwClient
89 {
90     friend void   lcl_setString( SwXCell &rCell, const rtl::OUString &rTxt,
91                                  sal_Bool bKeepNumberFmt );
92     friend double lcl_getValue( SwXCell &rCell );
93     friend void   lcl_setValue( SwXCell &rCell, double nVal );
94 
95 
96     const SfxItemPropertySet*   m_pPropSet;
97     SwTableBox*                 pBox;       // only set in non-XML import
98     const SwStartNode*      pStartNode; // only set in XML import
99 
100     // table position where pBox was found last
101     sal_uInt16              nFndPos;
102 
103 protected:
104     virtual const SwStartNode *GetStartNode() const;
105 
106     virtual ::com::sun::star::uno::Reference<
107                 ::com::sun::star::text::XTextCursor >
108         CreateCursor();
109 
110     bool IsValid() const;
111 
112     virtual ~SwXCell();
113 
114     //SwClient
115    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
116 
117 public:
118     SwXCell(SwFrmFmt* pTblFmt, SwTableBox* pBox, sal_uInt16 nPos=USHRT_MAX );
119     SwXCell(SwFrmFmt* pTblFmt, const SwStartNode& rStartNode); // XML import interface
120 
121 
122     TYPEINFO();
123 
124     static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId();
125 
126     //XUnoTunnel
127     virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier );
128 
129     virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType );
130     virtual void SAL_CALL acquire(  ) throw();
131     virtual void SAL_CALL release(  ) throw();
132 
133     //XTypeProvider
134     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes(  );
135     virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId(  );
136 
137     //XCell
138     virtual ::rtl::OUString SAL_CALL getFormula(  );
139     virtual void SAL_CALL setFormula( const ::rtl::OUString& aFormula );
140     virtual double SAL_CALL getValue(  );
141     virtual void SAL_CALL setValue( double nValue );
142     virtual ::com::sun::star::table::CellContentType SAL_CALL getType(  );
143     virtual sal_Int32 SAL_CALL getError(  );
144 
145     //XText
146     virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor >  SAL_CALL createTextCursor(void);
147     virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor >  SAL_CALL createTextCursorByRange(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & aTextPosition);
148     virtual void SAL_CALL  setString(const rtl::OUString& aString);
149 
150     //XPropertySet
151     virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  );
152     virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue );
153     virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName );
154     virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener );
155     virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener );
156     virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener );
157     virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener );
158 
159     //XServiceInfo
160     virtual rtl::OUString SAL_CALL getImplementationName(void);
161     virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName);
162     virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void);
163 
164     //XEnumerationAccess - frueher XParagraphEnumerationAccess
165     virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration >  SAL_CALL createEnumeration(void);
166 
167     //XElementAccess
168     virtual ::com::sun::star::uno::Type SAL_CALL getElementType(  );
169     virtual sal_Bool SAL_CALL hasElements(  );
170 
GetTblBox() const171     SwTableBox*   GetTblBox()const {return pBox;}
172     static SwXCell*     CreateXCell(SwFrmFmt* pTblFmt, SwTableBox* pBox, SwTable *pTbl = 0 );
173     SwTableBox*     FindBox(SwTable* pTable, SwTableBox* pBox);
174 
GetFrmFmt() const175     SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
176 };
177 /* -----------------27.06.98 15:40-------------------
178  *
179  * --------------------------------------------------*/
180 class SwXTextTableRow : public cppu::WeakImplHelper2
181 <
182     ::com::sun::star::beans::XPropertySet,
183     ::com::sun::star::lang::XServiceInfo
184 >,
185     public SwClient
186 {
187     const SfxItemPropertySet*   m_pPropSet;
188     SwTableLine*            pLine;
189 
GetFrmFmt() const190     SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
191 protected:
192     virtual ~SwXTextTableRow();
193     //SwClient
194    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
195 
196 public:
197     SwXTextTableRow(SwFrmFmt* pFmt, SwTableLine* pLine);
198 
199 
200     TYPEINFO();
201 
202     //XPropertySet
203     virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  );
204     virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue );
205     virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName );
206     virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener );
207     virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener );
208     virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener );
209     virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener );
210 
211     //XServiceInfo
212     virtual rtl::OUString SAL_CALL getImplementationName(void);
213     virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName);
214     virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void);
215 
GetTblRow() const216     const SwTableLine*  GetTblRow() const {return pLine;}
217     static SwTableLine* FindLine(SwTable* pTable, SwTableLine* pLine);
218 };
219 /* -----------------20.07.98 13:03-------------------
220  *
221  * --------------------------------------------------*/
222 typedef cppu::WeakImplHelper3<
223                                 ::com::sun::star::text::XTextTableCursor,
224                                 ::com::sun::star::lang::XServiceInfo,
225                                 ::com::sun::star::beans::XPropertySet
226                             > SwXTextTableCursor_Base;
227 class SW_DLLPUBLIC SwXTextTableCursor : public SwXTextTableCursor_Base
228     ,public SwClient
229     ,public OTextCursorHelper
230 {
231     SwDepend                aCrsrDepend;
232     const SfxItemPropertySet*   m_pPropSet;
233 
234     //  SwUnoCrsr*      GetCrsr() const { return (SwUnoCrsr*)aCrsrDepend.GetRegisteredIn(); }
235 
236 protected:
237     virtual ~SwXTextTableCursor();
238 public:
239     SwXTextTableCursor(SwFrmFmt* pFmt, SwTableBox* pBox);
240     SwXTextTableCursor(SwFrmFmt& rTableFmt,
241                         const SwTableCursor* pTableSelection);
242 
243 
244     DECLARE_XINTERFACE()
245 
246     //XTextTableCursor
247     virtual ::rtl::OUString SAL_CALL getRangeName(  );
248     virtual sal_Bool SAL_CALL gotoCellByName( const ::rtl::OUString& aCellName, sal_Bool bExpand );
249     virtual sal_Bool SAL_CALL goLeft( sal_Int16 nCount, sal_Bool bExpand );
250     virtual sal_Bool SAL_CALL goRight( sal_Int16 nCount, sal_Bool bExpand );
251     virtual sal_Bool SAL_CALL goUp( sal_Int16 nCount, sal_Bool bExpand );
252     virtual sal_Bool SAL_CALL goDown( sal_Int16 nCount, sal_Bool bExpand );
253     virtual void SAL_CALL gotoStart( sal_Bool bExpand );
254     virtual void SAL_CALL gotoEnd( sal_Bool bExpand );
255     virtual sal_Bool SAL_CALL mergeRange(  );
256     virtual sal_Bool SAL_CALL splitRange( sal_Int16 Count, sal_Bool Horizontal );
257 
258     //XPropertySet
259     virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  );
260     virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue );
261     virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName );
262     virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener );
263     virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener );
264     virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener );
265     virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener );
266 
267     //XServiceInfo
268     virtual rtl::OUString SAL_CALL getImplementationName(void);
269     virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName);
270     virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void);
271 
272     //SwClient
273    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
274 
275     // ITextCursorHelper
276     virtual const SwPaM*        GetPaM() const;
277     virtual SwPaM*              GetPaM();
278     virtual const SwDoc*        GetDoc() const;
279     virtual SwDoc*              GetDoc();
280 
281     const SwUnoCrsr*            GetCrsr() const;
282     SwUnoCrsr*                  GetCrsr();
GetFrmFmt() const283     SwFrmFmt*       GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
284 };
285 
286 /*-----------------11.12.97 09:38-------------------
287 
288 --------------------------------------------------*/
289 struct SwRangeDescriptor
290 {
291     sal_Int32 nTop;
292     sal_Int32 nLeft;
293     sal_Int32 nBottom;
294     sal_Int32 nRight;
295 
296     void Normalize();
297 };
298 
299 class SwTableProperties_Impl;
300 class SwXTextTable : public cppu::WeakImplHelper10
301 <
302     ::com::sun::star::text::XTextTable,
303     ::com::sun::star::lang::XServiceInfo,
304     ::com::sun::star::table::XCellRange,
305     ::com::sun::star::chart::XChartDataArray,
306     ::com::sun::star::beans::XPropertySet,
307     ::com::sun::star::container::XNamed,
308     ::com::sun::star::table::XAutoFormattable,
309     ::com::sun::star::util::XSortable,
310     ::com::sun::star::lang::XUnoTunnel,
311     ::com::sun::star::sheet::XCellRangeData
312 >,
313     public SwClient
314 {
315     SwEventListenerContainer        aLstnrCntnr;
316     SwChartEventListenerContainer   aChartLstnrCntnr;
317     const SfxItemPropertySet*       m_pPropSet;
318 
319     // Descriptor-interface
320     SwTableProperties_Impl*     pTableProps;
321     String                      m_sTableName;
322     sal_Bool                        bIsDescriptor;
323     unsigned short              nRows;
324     unsigned short              nColumns;
325 
326 
327     sal_Bool                        bFirstRowAsLabel    :1;
328     sal_Bool                        bFirstColumnAsLabel :1;
329 protected:
330     virtual ~SwXTextTable();
331 public:
332     SwXTextTable();
333     SwXTextTable(SwFrmFmt& rFrmFmt);
334 
335 
336     static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId();
337 
338     //XUnoTunnel
339     virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier );
340 
341     TYPEINFO();
342 
343     //XTextTable
344     virtual void SAL_CALL initialize( sal_Int32 nRows, sal_Int32 nColumns );
345     virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XTableRows > SAL_CALL getRows(  );
346     virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XTableColumns > SAL_CALL getColumns(  );
347     virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCell > SAL_CALL getCellByName( const ::rtl::OUString& aCellName );
348     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getCellNames(  );
349     virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextTableCursor > SAL_CALL createCursorByCellName( const ::rtl::OUString& aCellName );
350 
351     //XTextContent
352     virtual void SAL_CALL attach(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & xTextRange);
353     virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > SAL_CALL getAnchor(  );
354 
355     //XComponent
356     virtual void SAL_CALL dispose(void);
357     virtual void SAL_CALL addEventListener(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener > & aListener);
358     virtual void SAL_CALL removeEventListener(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener > & aListener);
359 
360     //XCellRange
361     virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCell > SAL_CALL getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow );
362     virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom );
363     virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL getCellRangeByName( const ::rtl::OUString& aRange );
364 
365     //XChartDataArray
366     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > > SAL_CALL getData(  );
367     virtual void SAL_CALL setData( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& aData );
368     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getRowDescriptions(  );
369     virtual void SAL_CALL setRowDescriptions( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRowDescriptions );
370     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getColumnDescriptions(  );
371     virtual void SAL_CALL setColumnDescriptions( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aColumnDescriptions );
372 
373     //XChartData
374     virtual void SAL_CALL addChartDataChangeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XChartDataChangeEventListener >& aListener );
375     virtual void SAL_CALL removeChartDataChangeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XChartDataChangeEventListener >& aListener );
376     virtual double SAL_CALL getNotANumber(  );
377     virtual sal_Bool SAL_CALL isNotANumber( double nNumber );
378 
379     //XSortable
380     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL createSortDescriptor(void);
381     virtual void SAL_CALL sort(const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& xDescriptor);
382 
383     //XAutoFormattable
384     virtual void SAL_CALL autoFormat(const rtl::OUString& aName);
385 
386     //XPropertySet
387     virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  );
388     virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue );
389     virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName );
390     virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener );
391     virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener );
392     virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener );
393     virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener );
394 
395     //XNamed
396     virtual rtl::OUString SAL_CALL getName(void);
397     virtual void SAL_CALL setName(const rtl::OUString& Name_);
398 
399     //XCellRangeData
400     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > > SAL_CALL getDataArray(  );
401     virtual void SAL_CALL setDataArray( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > >& aArray );
402 
403     //XServiceInfo
404     virtual rtl::OUString SAL_CALL getImplementationName(void);
405     virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName);
406     virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void);
407 
408     void attachToRange(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & xTextRange);
409 
410     sal_uInt16          getRowCount(void);
411     sal_uInt16          getColumnCount(void);
412     ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange >     GetRangeByName(SwFrmFmt* pFmt, SwTable* pTable,
413                         const String& sTLName, const String& sBRName,
414                         SwRangeDescriptor& rDesc);
415 
416     //SwClient
417    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
418 
GetFrmFmt() const419     SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
420 };
421 
422 /* -----------------27.04.98 16:41-------------------
423  *
424  * --------------------------------------------------*/
425 class SwXCellRange : public cppu::WeakImplHelper7
426 <
427     ::com::sun::star::table::XCellRange,
428     ::com::sun::star::lang::XServiceInfo,
429     ::com::sun::star::lang::XUnoTunnel,
430     ::com::sun::star::beans::XPropertySet,
431     ::com::sun::star::chart::XChartDataArray,
432     ::com::sun::star::util::XSortable,
433     ::com::sun::star::sheet::XCellRangeData
434 >,
435     public SwClient
436 {
437     SwDepend                        aCursorDepend; //the cursor is removed after the doc has been removed
438     SwChartEventListenerContainer   aChartLstnrCntnr;
439 
440     SwRangeDescriptor           aRgDesc;
441     const SfxItemPropertySet*   m_pPropSet;
442 
443     SwUnoCrsr*                  pTblCrsr;
444 
445     sal_Bool                        bFirstRowAsLabel    :1;
446     sal_Bool                        bFirstColumnAsLabel :1;
447 
448 public:
449     SwXCellRange(SwUnoCrsr* pCrsr, SwFrmFmt& rFrmFmt, SwRangeDescriptor& rDesc);
450     ~SwXCellRange();
451 
452     TYPEINFO();
453 
454     static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId();
455 
456     //XUnoTunnel
457     virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier );
458 
459 
460     //XCellRange
461     virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCell > SAL_CALL getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow );
462     virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom );
463     virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL getCellRangeByName( const ::rtl::OUString& aRange );
464 
465     //XPropertySet
466     virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  );
467     virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue );
468     virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName );
469     virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener );
470     virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener );
471     virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener );
472     virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener );
473 
474     //XChartData
475     virtual void SAL_CALL addChartDataChangeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XChartDataChangeEventListener >& aListener );
476     virtual void SAL_CALL removeChartDataChangeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XChartDataChangeEventListener >& aListener );
477     virtual double SAL_CALL getNotANumber(  );
478     virtual sal_Bool SAL_CALL isNotANumber( double nNumber );
479 
480     //XChartDataArray
481     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > > SAL_CALL getData(  );
482     virtual void SAL_CALL setData( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& aData );
483     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getRowDescriptions(  );
484     virtual void SAL_CALL setRowDescriptions( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRowDescriptions );
485     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getColumnDescriptions(  );
486     virtual void SAL_CALL setColumnDescriptions( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aColumnDescriptions );
487 
488     //XSortable
489     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL createSortDescriptor(void);
490     virtual void SAL_CALL sort(const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& xDescriptor);
491 
492     //XCellRangeData
493     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > > SAL_CALL getDataArray(  );
494     virtual void SAL_CALL setDataArray( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > >& aArray );
495 
496     //XServiceInfo
497     virtual rtl::OUString SAL_CALL getImplementationName(void);
498     virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName);
499     virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void);
500 
501     //SwClient
502    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
503 
GetFrmFmt() const504     SwFrmFmt*   GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
505     sal_uInt16      getRowCount(void);
506     sal_uInt16      getColumnCount(void);
507 
508     const SwUnoCrsr* GetTblCrsr() const;
509 
510     // for SwChartDataSequence
511     void GetDataSequence(
512             ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > *pAnySeq,
513             ::com::sun::star::uno::Sequence< ::rtl::OUString > *pTxtSeq,
514             ::com::sun::star::uno::Sequence< double > *pDblSeq,
515             sal_Bool bForceNumberResults = sal_False );
516 
517 };
518 /* -----------------03.02.99 07:31-------------------
519  *
520  * --------------------------------------------------*/
521 class SwXTableRows : public cppu::WeakImplHelper2
522 <
523     ::com::sun::star::table::XTableRows,
524     ::com::sun::star::lang::XServiceInfo
525 >,
526     public SwClient
527 
528 {
GetFrmFmt() const529     SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
530 protected:
531     virtual ~SwXTableRows();
532 public:
533     SwXTableRows(SwFrmFmt& rFrmFmt);
534 
535 
536     TYPEINFO();
537 
538 // automatisch auskommentiert - [getIdlClass or queryInterface] - Bitte XTypeProvider benutzen!
539 //  virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlClass >  > getIdlClasses(void) throw( ::com::sun::star::uno::RuntimeException );
540 
541 // automatisch auskommentiert - [getIdlClass or queryInterface] - Bitte XTypeProvider benutzen!
542 //  virtual sal_Bool        queryInterface( ::com::sun::star::uno::Uik aUik, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >  & rOut );
543 
544 //  SMART_UNO_DECLARATION( SwXTableRows, UsrObject );
545 
546     //XIndexAccess
547     virtual sal_Int32 SAL_CALL getCount(void);
548     virtual ::com::sun::star::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex);
549 
550     //XElementAccess
551     virtual ::com::sun::star::uno::Type SAL_CALL getElementType(  );
552     virtual sal_Bool SAL_CALL hasElements(  );
553 
554     //XTableRows
555     virtual void SAL_CALL insertByIndex(sal_Int32 nIndex, sal_Int32 nCount);
556     virtual void SAL_CALL removeByIndex(sal_Int32 nIndex, sal_Int32 nCount);
557 
558     //XServiceInfo
559     virtual rtl::OUString SAL_CALL getImplementationName(void);
560     virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName);
561     virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void);
562 
563     //SwClient
564    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
565 };
566 
567 /* -----------------03.02.99 07:31-------------------
568  *
569  * --------------------------------------------------*/
570 class SwXTableColumns : public cppu::WeakImplHelper2
571 <
572     ::com::sun::star::table::XTableColumns,
573     ::com::sun::star::lang::XServiceInfo
574 >,
575     public SwClient
576 
577 {
GetFrmFmt() const578     SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
579 protected:
580     virtual ~SwXTableColumns();
581 public:
582     SwXTableColumns(SwFrmFmt& rFrmFmt);
583 
584 
585     TYPEINFO();
586 // automatisch auskommentiert - [getIdlClass or queryInterface] - Bitte XTypeProvider benutzen!
587 //  virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlClass >  > getIdlClasses(void) throw( ::com::sun::star::uno::RuntimeException );
588 
589 // automatisch auskommentiert - [getIdlClass or queryInterface] - Bitte XTypeProvider benutzen!
590 //  virtual sal_Bool        queryInterface( ::com::sun::star::uno::Uik aUik, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >  & rOut );
591 
592 //  SMART_UNO_DECLARATION( SwXTableColumns, UsrObject );
593 
594     //XIndexAccess
595     virtual sal_Int32 SAL_CALL getCount(void);
596     virtual ::com::sun::star::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex);
597 
598     //XElementAccess
599     virtual ::com::sun::star::uno::Type SAL_CALL getElementType(  );
600     virtual sal_Bool SAL_CALL hasElements(  );
601 
602     //XTableColumns
603     virtual void SAL_CALL insertByIndex(sal_Int32 nIndex, sal_Int32 nCount);
604     virtual void SAL_CALL removeByIndex(sal_Int32 nIndex, sal_Int32 nCount);
605 
606     //XServiceInfo
607     virtual rtl::OUString SAL_CALL getImplementationName(void);
608     virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName);
609     virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void);
610 
611     //SwClient
612    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
613 };
614 
615 #endif
616