xref: /trunk/main/sc/source/ui/inc/uiitems.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #ifndef SC_UIITEMS_HXX
29 #define SC_UIITEMS_HXX
30 
31 #include "scdllapi.h"
32 #include "conditio.hxx"
33 #include "sortparam.hxx"
34 #include "queryparam.hxx"
35 #include "paramisc.hxx"
36 #include <svl/poolitem.hxx>
37 
38 class ScEditEngineDefaulter;
39 class EditTextObject;
40 class ScViewData;
41 class ScDPSaveData;
42 
43 // ---------------------------------------------------------------------------
44 
45 //  Items
46 
47 class ScInputStatusItem : public SfxPoolItem
48 {
49     ScAddress           aCursorPos;
50     ScAddress           aStartPos;
51     ScAddress           aEndPos;
52     String              aString;
53     EditTextObject*     pEditData;
54 
55 public:
56                             TYPEINFO();
57 //UNUSED2008-05             ScInputStatusItem( sal_uInt16 nWhich,
58 //UNUSED2008-05                                SCTAB nTab,
59 //UNUSED2008-05                                SCCOL nCol, SCROW nRow,
60 //UNUSED2008-05                                SCCOL nStartCol, SCROW nStartRow,
61 //UNUSED2008-05                                SCCOL nEndCol,   SCROW nSEndRow,
62 //UNUSED2008-05                                const String& rString,
63 //UNUSED2008-05                                const EditTextObject* pData );
64 
65                             ScInputStatusItem( sal_uInt16 nWhich,
66                                                const ScAddress& rCurPos,
67                                                const ScAddress& rStartPos,
68                                                const ScAddress& rEndPos,
69                                                const String& rString,
70                                                const EditTextObject* pData );
71                             ScInputStatusItem( const ScInputStatusItem& rItem );
72                             ~ScInputStatusItem();
73 
74     virtual String          GetValueText() const;
75 
76     virtual int             operator==( const SfxPoolItem& ) const;
77     virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
78 
79     const ScAddress&        GetPos() const      { return aCursorPos; }
80     const ScAddress&        GetStartPos() const { return aStartPos; }
81     const ScAddress&        GetEndPos() const   { return aEndPos; }
82     SCTAB                   GetTab() const      { return aCursorPos.Tab(); }
83     SCCOL                   GetCol() const      { return aCursorPos.Col(); }
84     SCROW                   GetRow() const      { return aCursorPos.Row(); }
85     SCCOL                   GetStartCol() const { return aStartPos.Col(); }
86     SCROW                   GetStartRow() const { return aStartPos.Row(); }
87     SCCOL                   GetEndCol() const   { return aEndPos.Col(); }
88     SCROW                   GetEndRow() const   { return aEndPos.Row(); }
89 
90     const String&           GetString() const   { return aString; }
91     const EditTextObject*   GetEditData() const { return pEditData; }
92 };
93 
94 
95 #define SC_TAB_INSERTED     1
96 #define SC_TAB_DELETED      2
97 #define SC_TAB_MOVED        3
98 #define SC_TAB_COPIED       4
99 #define SC_TAB_HIDDEN       5
100 
101 class ScTablesHint : public SfxHint
102 {
103     sal_uInt16 nId;
104     SCTAB nTab1;
105     SCTAB nTab2;
106 
107 public:
108                     TYPEINFO();
109                     ScTablesHint(sal_uInt16 nNewId, SCTAB nTable1, SCTAB nTable2=0);
110                     ~ScTablesHint();
111 
112     sal_uInt16          GetId() const           { return nId; }
113     SCTAB           GetTab1() const         { return nTab1; }
114     SCTAB           GetTab2() const         { return nTab2; }
115 };
116 
117 class ScEditViewHint : public SfxHint
118 {
119     ScEditEngineDefaulter*  pEditEngine;
120     ScAddress                   aCursorPos;
121 
122 public:
123                     TYPEINFO();
124                     ScEditViewHint( ScEditEngineDefaulter* pEngine, const ScAddress& rCurPos );
125                     ~ScEditViewHint();
126 
127     SCCOL           GetCol() const      { return aCursorPos.Col(); }
128     SCROW           GetRow() const      { return aCursorPos.Row(); }
129     SCTAB           GetTab() const      { return aCursorPos.Tab(); }
130     ScEditEngineDefaulter*  GetEngine() const   { return pEditEngine; }
131 
132 private:
133     ScEditViewHint(); // disabled
134 };
135 
136 class ScIndexHint : public SfxHint
137 {
138     sal_uInt16 nId;
139     sal_uInt16 nIndex;
140 
141 public:
142                     TYPEINFO();
143                     ScIndexHint(sal_uInt16 nNewId, sal_uInt16 nIdx);
144                     ~ScIndexHint();
145 
146     sal_uInt16          GetId() const           { return nId; }
147     sal_uInt16          GetIndex() const        { return nIndex; }
148 };
149 
150 //----------------------------------------------------------------------------
151 // Parameter-Item fuer den Sortierdialog:
152 
153 class SC_DLLPUBLIC ScSortItem : public SfxPoolItem
154 {
155 public:
156                             TYPEINFO();
157                             ScSortItem( sal_uInt16              nWhich,
158                                         ScViewData*         ptrViewData,
159                                         const ScSortParam*  pSortData );
160                             ScSortItem( sal_uInt16              nWhich,
161                                         const ScSortParam*  pSortData );
162                             ScSortItem( const ScSortItem& rItem );
163                             ~ScSortItem();
164 
165     virtual String          GetValueText() const;
166     virtual int             operator==( const SfxPoolItem& ) const;
167     virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
168     virtual sal_Bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberUd ) const;
169 
170     ScViewData*         GetViewData () const { return pViewData; }
171     const ScSortParam&  GetSortData () const { return theSortData; }
172 
173 private:
174     ScViewData*     pViewData;
175     ScSortParam     theSortData;
176 };
177 
178 //----------------------------------------------------------------------------
179 // Parameter-Item fuer den Filterdialog:
180 
181 class SC_DLLPUBLIC ScQueryItem : public SfxPoolItem
182 {
183 public:
184                             TYPEINFO();
185                             ScQueryItem( sal_uInt16                 nWhich,
186                                          ScViewData*            ptrViewData,
187                                          const ScQueryParam*    pQueryData );
188                             ScQueryItem( sal_uInt16                 nWhich,
189                                          const ScQueryParam*    pQueryData );
190                             ScQueryItem( const ScQueryItem& rItem );
191                             ~ScQueryItem();
192 
193     virtual String          GetValueText() const;
194     virtual int             operator==( const SfxPoolItem& ) const;
195     virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
196 
197     ScViewData*         GetViewData () const { return pViewData; }
198     const ScQueryParam& GetQueryData() const { return theQueryData; }
199 
200     sal_Bool        GetAdvancedQuerySource(ScRange& rSource) const;
201     void        SetAdvancedQuerySource(const ScRange* pSource);
202 
203 private:
204     ScViewData*     pViewData;
205     ScQueryParam    theQueryData;
206     sal_Bool            bIsAdvanced;
207     ScRange         aAdvSource;
208 };
209 
210 //----------------------------------------------------------------------------
211 // Parameter-Item fuer den Zwischenergebnisdialog:
212 
213 class SC_DLLPUBLIC ScSubTotalItem : public SfxPoolItem
214 {
215 public:
216                 TYPEINFO();
217                 ScSubTotalItem( sal_uInt16                  nWhich,
218                                 ScViewData*             ptrViewData,
219                                 const ScSubTotalParam*  pSubTotalData );
220                 ScSubTotalItem( sal_uInt16                  nWhich,
221                                 const ScSubTotalParam*  pSubTotalData );
222                 ScSubTotalItem( const ScSubTotalItem&   rItem );
223                 ~ScSubTotalItem();
224 
225     virtual String          GetValueText() const;
226     virtual int             operator==( const SfxPoolItem& ) const;
227     virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
228     virtual sal_Bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberUd ) const;
229 
230     ScViewData*             GetViewData () const { return pViewData; }
231     const ScSubTotalParam&  GetSubTotalData() const { return theSubTotalData; }
232 
233 private:
234     ScViewData*     pViewData;
235     ScSubTotalParam theSubTotalData;
236 };
237 
238 //----------------------------------------------------------------------------
239 // Parameter-Item fuer die Benutzerlisten-TabPage:
240 
241 class SC_DLLPUBLIC ScUserListItem : public SfxPoolItem
242 {
243 public:
244                 TYPEINFO();
245                 ScUserListItem( sal_uInt16 nWhich );
246                 ScUserListItem( const ScUserListItem& rItem );
247                 ~ScUserListItem();
248 
249     virtual String          GetValueText() const;
250     virtual int             operator==( const SfxPoolItem& ) const;
251     virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
252 
253     void        SetUserList ( const ScUserList& rUserList );
254     ScUserList* GetUserList () const { return pUserList; }
255 
256 private:
257     ScUserList* pUserList;
258 };
259 
260 //----------------------------------------------------------------------------
261 // Parameter-Item fuer die Konsolidieren-Dialog
262 
263 class ScConsolidateItem : public SfxPoolItem
264 {
265 public:
266                 TYPEINFO();
267                 ScConsolidateItem( sal_uInt16                    nWhich,
268                                    const ScConsolidateParam* pParam );
269                 ScConsolidateItem( const ScConsolidateItem& rItem );
270                 ~ScConsolidateItem();
271 
272     virtual String          GetValueText() const;
273     virtual int             operator==( const SfxPoolItem& ) const;
274     virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
275 
276     const ScConsolidateParam& GetData() const { return theConsData; }
277 
278 private:
279     ScConsolidateParam  theConsData;
280 };
281 
282 //----------------------------------------------------------------------------
283 // Parameter-Item fuer den Pivot-Dialog
284 
285 class ScPivotItem : public SfxPoolItem
286 {
287 public:
288                 TYPEINFO();
289                 ScPivotItem( sal_uInt16 nWhich, const ScDPSaveData* pData,
290                              const ScRange* pRange, sal_Bool bNew );
291                 ScPivotItem( const ScPivotItem& rItem );
292                 ~ScPivotItem();
293 
294     virtual String          GetValueText() const;
295     virtual int             operator==( const SfxPoolItem& ) const;
296     virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
297 
298     const ScDPSaveData& GetData() const         { return *pSaveData; }
299     const ScRange&      GetDestRange() const    { return aDestRange; }
300     sal_Bool                IsNewSheet() const      { return bNewSheet; }
301 
302 private:
303     ScDPSaveData*   pSaveData;
304     ScRange         aDestRange;
305     sal_Bool            bNewSheet;
306 };
307 
308 //----------------------------------------------------------------------------
309 // Parameter-Item fuer den Solver-Dialog
310 
311 class ScSolveItem : public SfxPoolItem
312 {
313 public:
314                 TYPEINFO();
315                 ScSolveItem( sal_uInt16              nWhich,
316                              const ScSolveParam* pParam );
317                 ScSolveItem( const ScSolveItem& rItem );
318                 ~ScSolveItem();
319 
320     virtual String          GetValueText() const;
321     virtual int             operator==( const SfxPoolItem& ) const;
322     virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
323 
324     const ScSolveParam& GetData() const { return theSolveData; }
325 
326 private:
327     ScSolveParam    theSolveData;
328 };
329 
330 //----------------------------------------------------------------------------
331 // Parameter-Item fuer den Mehrfachoperationen-Dialog
332 
333 class ScTabOpItem : public SfxPoolItem
334 {
335 public:
336                 TYPEINFO();
337                 ScTabOpItem( sal_uInt16              nWhich,
338                              const ScTabOpParam* pParam );
339                 ScTabOpItem( const ScTabOpItem& rItem );
340                 ~ScTabOpItem();
341 
342     virtual String          GetValueText() const;
343     virtual int             operator==( const SfxPoolItem& ) const;
344     virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
345 
346     const ScTabOpParam& GetData() const { return theTabOpData; }
347 
348 private:
349     ScTabOpParam    theTabOpData;
350 };
351 
352 //----------------------------------------------------------------------------
353 // Parameter-Item fuer den Dialog bedingte Formatierung
354 
355 class ScCondFrmtItem : public SfxPoolItem
356 {
357 public:
358                 TYPEINFO();
359                 ScCondFrmtItem( sal_uInt16 nWhich,
360 //!                             const ScConditionalFormat* pCondFrmt );
361                                 const ScConditionalFormat& rCondFrmt );
362                 ScCondFrmtItem( const ScCondFrmtItem& rItem );
363                 ~ScCondFrmtItem();
364 
365     virtual String          GetValueText() const;
366     virtual int             operator==( const SfxPoolItem& ) const;
367     virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
368 
369     const ScConditionalFormat&  GetData() const { return theCondFrmtData; }
370 
371 private:
372     ScConditionalFormat theCondFrmtData;
373 };
374 
375 
376 
377 #endif
378 
379