Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : : #ifndef SW_DOCUFLD_HXX
29 : : #define SW_DOCUFLD_HXX
30 : :
31 : :
32 : : #include <tools/date.hxx>
33 : : #include <tools/datetime.hxx>
34 : :
35 : :
36 : : #include <svl/macitem.hxx>
37 : :
38 : : #include "fldbas.hxx"
39 : : #include "numrule.hxx"
40 : :
41 : : class _SetGetExpFlds;
42 : : class SwTxtFld;
43 : : class SwFrm;
44 : : class OutlinerParaObject;
45 : : class SwTextAPIObject;
46 : :
47 : : enum SwAuthorFormat
48 : : {
49 : : AF_BEGIN,
50 : : AF_NAME = AF_BEGIN,
51 : : AF_SHORTCUT,
52 : : AF_END,
53 : : AF_FIXED = 0x8000
54 : : };
55 : :
56 : : /*--------------------------------------------------------------------
57 : : Subtype of document statistics.
58 : : --------------------------------------------------------------------*/
59 : :
60 : : enum SwDocStatSubType
61 : : {
62 : : DS_BEGIN,
63 : : DS_PAGE = DS_BEGIN,
64 : : DS_PARA,
65 : : DS_WORD,
66 : : DS_CHAR,
67 : : DS_TBL,
68 : : DS_GRF,
69 : : DS_OLE,
70 : : DS_END
71 : : };
72 : :
73 : : typedef sal_uInt16 SwDocInfoSubType;
74 : : namespace nsSwDocInfoSubType
75 : : {
76 : : // NB: these must denote consecutive integers!
77 : : // NB2: these are extended by 4 DI_INFO values for backward compatibility
78 : : // in filter/html/htmlfld.cxx, so make sure that DI_SUBTYPE_END
79 : : // really is the end, and is at least 4 less than DI_SUB_*!
80 : : const SwDocInfoSubType DI_SUBTYPE_BEGIN = 0;
81 : : const SwDocInfoSubType DI_TITEL = DI_SUBTYPE_BEGIN;
82 : : const SwDocInfoSubType DI_THEMA = 1;
83 : : const SwDocInfoSubType DI_KEYS = 2;
84 : : const SwDocInfoSubType DI_COMMENT = 3;
85 : : const SwDocInfoSubType DI_CREATE = 4;
86 : : const SwDocInfoSubType DI_CHANGE = 5;
87 : : const SwDocInfoSubType DI_PRINT = 6;
88 : : const SwDocInfoSubType DI_DOCNO = 7;
89 : : const SwDocInfoSubType DI_EDIT = 8;
90 : : const SwDocInfoSubType DI_CUSTOM = 9;
91 : : const SwDocInfoSubType DI_SUBTYPE_END = 10;
92 : :
93 : :
94 : : const SwDocInfoSubType DI_SUB_AUTHOR = 0x0100;
95 : : const SwDocInfoSubType DI_SUB_TIME = 0x0200;
96 : : const SwDocInfoSubType DI_SUB_DATE = 0x0300;
97 : : const SwDocInfoSubType DI_SUB_FIXED = 0x1000;
98 : : const SwDocInfoSubType DI_SUB_MASK = 0xff00;
99 : : }
100 : :
101 : :
102 : : enum RegInfoFormat // Only for loading of old documents!!!
103 : : {
104 : : RF_AUTHOR,
105 : : RF_TIME,
106 : : RF_DATE,
107 : : RF_ALL
108 : : };
109 : :
110 : : enum SwPageNumSubType
111 : : {
112 : : PG_RANDOM,
113 : : PG_NEXT,
114 : : PG_PREV
115 : : };
116 : :
117 : : enum SwExtUserSubType
118 : : {
119 : : EU_COMPANY,
120 : : EU_FIRSTNAME,
121 : : EU_NAME,
122 : : EU_SHORTCUT,
123 : : EU_STREET,
124 : : EU_COUNTRY,
125 : : EU_ZIP,
126 : : EU_CITY,
127 : : EU_TITLE,
128 : : EU_POSITION,
129 : : EU_PHONE_PRIVATE,
130 : : EU_PHONE_COMPANY,
131 : : EU_FAX,
132 : : EU_EMAIL,
133 : : EU_STATE,
134 : : EU_FATHERSNAME,
135 : : EU_APARTMENT
136 : : };
137 : :
138 : : enum SwJumpEditFormat
139 : : {
140 : : JE_FMT_TEXT,
141 : : JE_FMT_TABLE,
142 : : JE_FMT_FRAME,
143 : : JE_FMT_GRAPHIC,
144 : : JE_FMT_OLE
145 : : };
146 : :
147 : : /*--------------------------------------------------------------------
148 : : Page number.
149 : : --------------------------------------------------------------------*/
150 : :
151 [ - + ]: 2916 : class SwPageNumberFieldType : public SwFieldType
152 : : {
153 : : sal_Int16 nNumberingType;
154 : : sal_uInt16 nNum, nMax;
155 : : sal_Bool bVirtuell;
156 : :
157 : : public:
158 : : SwPageNumberFieldType();
159 : :
160 : : String& Expand( sal_uInt32 nFmt, short nOff, const String&, String& rRet ) const;
161 : : void ChangeExpansion( SwDoc* pDoc, sal_uInt16 nNum, sal_uInt16 nMax,
162 : : sal_Bool bVirtPageNum, const sal_Int16* pNumFmt = 0 );
163 : : virtual SwFieldType* Copy() const;
164 : : };
165 : :
166 : : /*--------------------------------------------------------------------
167 : : Page numbering.
168 : : --------------------------------------------------------------------*/
169 : :
170 [ + - ][ - + ]: 12921 : class SW_DLLPUBLIC SwPageNumberField : public SwField
171 : : {
172 : : String sUserStr;
173 : : sal_uInt16 nSubType;
174 : : short nOffset;
175 : :
176 : : public:
177 : : SwPageNumberField(SwPageNumberFieldType*, sal_uInt16 nSub = PG_RANDOM,
178 : : sal_uInt32 nFmt = 0, short nOff = 0);
179 : :
180 : : virtual String Expand() const;
181 : : virtual SwField* Copy() const;
182 : :
183 : : virtual rtl::OUString GetPar2() const;
184 : : virtual void SetPar2(const rtl::OUString& rStr);
185 : :
186 : : virtual sal_uInt16 GetSubType() const;
187 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
188 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
189 : :
190 : 0 : const String& GetUserString() const { return sUserStr; }
191 : 5751 : void SetUserString( const String& rS ) { sUserStr = rS; }
192 : : };
193 : :
194 : : /*--------------------------------------------------------------------
195 : : Authors.
196 : : --------------------------------------------------------------------*/
197 : :
198 [ - + ]: 2916 : class SwAuthorFieldType : public SwFieldType
199 : : {
200 : : public:
201 : : SwAuthorFieldType();
202 : :
203 : : String Expand(sal_uLong) const;
204 : : virtual SwFieldType* Copy() const;
205 : : };
206 : :
207 : : /*--------------------------------------------------------------------
208 : : Author field.
209 : : --------------------------------------------------------------------*/
210 : :
211 [ + - ][ - + ]: 536 : class SwAuthorField : public SwField
212 : : {
213 : : String aContent;
214 : :
215 : : public:
216 : : SwAuthorField(SwAuthorFieldType*, sal_uInt32 nFmt = 0);
217 : :
218 : : virtual String Expand() const;
219 : : virtual SwField* Copy() const;
220 : :
221 : 268 : inline void SetExpansion(const String& rStr) { aContent = rStr; }
222 : 40 : inline const String& GetContent() const { return aContent; }
223 : :
224 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
225 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
226 : : };
227 : :
228 : : /*--------------------------------------------------------------------
229 : : Filename
230 : : --------------------------------------------------------------------*/
231 : :
232 [ - + ]: 2919 : class SwFileNameFieldType : public SwFieldType
233 : : {
234 : : SwDoc *pDoc;
235 : : public:
236 : : SwFileNameFieldType(SwDoc*);
237 : :
238 : : String Expand(sal_uLong) const;
239 : : virtual SwFieldType* Copy() const;
240 : : };
241 : :
242 : : /*--------------------------------------------------------------------
243 : : FileNameField
244 : : --------------------------------------------------------------------*/
245 : :
246 [ # # ][ # # ]: 0 : class SW_DLLPUBLIC SwFileNameField : public SwField
247 : : {
248 : : String aContent;
249 : :
250 : : public:
251 : : SwFileNameField(SwFileNameFieldType*, sal_uInt32 nFmt = 0);
252 : :
253 : : virtual String Expand() const;
254 : : virtual SwField* Copy() const;
255 : :
256 : 0 : inline void SetExpansion(const String& rStr) { aContent = rStr; }
257 : 0 : inline const String& GetContent() const { return aContent; }
258 : :
259 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
260 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
261 : : };
262 : :
263 : : /*--------------------------------------------------------------------
264 : : TemplName
265 : : --------------------------------------------------------------------*/
266 : :
267 [ - + ]: 5832 : class SwTemplNameFieldType : public SwFieldType
268 : : {
269 : : SwDoc *pDoc;
270 : : public:
271 : : SwTemplNameFieldType(SwDoc*);
272 : :
273 : : String Expand(sal_uLong) const;
274 : : virtual SwFieldType* Copy() const;
275 : : };
276 : :
277 : : /*--------------------------------------------------------------------
278 : : TemplNameField
279 : : --------------------------------------------------------------------*/
280 : :
281 [ # # ]: 0 : class SW_DLLPUBLIC SwTemplNameField : public SwField
282 : : {
283 : : public:
284 : : SwTemplNameField(SwTemplNameFieldType*, sal_uInt32 nFmt = 0);
285 : :
286 : : virtual String Expand() const;
287 : : virtual SwField* Copy() const;
288 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
289 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
290 : : };
291 : :
292 : :
293 : : /*--------------------------------------------------------------------
294 : : Document statistics
295 : : --------------------------------------------------------------------*/
296 : :
297 [ - + ]: 2916 : class SwDocStatFieldType : public SwFieldType
298 : : {
299 : : SwDoc* pDoc;
300 : : sal_Int16 nNumberingType;//com::sun::star::style::NumberingType
301 : :
302 : : public:
303 : : SwDocStatFieldType(SwDoc*);
304 : : String Expand(sal_uInt16 nSubType, sal_uInt32 nFmt) const;
305 : : virtual SwFieldType* Copy() const;
306 : :
307 : 0 : inline void SetNumFormat( sal_Int16 eFmt ) { nNumberingType = eFmt; }
308 : : };
309 : :
310 : : /*--------------------------------------------------------------------
311 : : DocStatField
312 : : --------------------------------------------------------------------*/
313 : :
314 [ # # ]: 0 : class SW_DLLPUBLIC SwDocStatField : public SwField
315 : : {
316 : : sal_uInt16 nSubType;
317 : :
318 : : public:
319 : : SwDocStatField( SwDocStatFieldType*,
320 : : sal_uInt16 nSubType = 0, sal_uInt32 nFmt = 0);
321 : :
322 : : void ChangeExpansion( const SwFrm* pFrm );
323 : :
324 : : virtual String Expand() const;
325 : : virtual SwField* Copy() const;
326 : :
327 : : virtual sal_uInt16 GetSubType() const;
328 : : virtual void SetSubType(sal_uInt16 nSub);
329 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
330 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
331 : : };
332 : :
333 : : /*--------------------------------------------------------------------
334 : : Hidden text.
335 : : --------------------------------------------------------------------*/
336 : :
337 [ - + ]: 2916 : class SwHiddenTxtFieldType : public SwFieldType
338 : : {
339 : : sal_Bool bHidden;
340 : : public:
341 : : SwHiddenTxtFieldType(sal_Bool bSetHidden = sal_True);
342 : :
343 : : virtual SwFieldType* Copy() const;
344 : :
345 : : void SetHiddenFlag( sal_Bool bSetHidden = sal_True );
346 : 0 : inline sal_Bool GetHiddenFlag() const { return bHidden; }
347 : : };
348 : :
349 : : /*--------------------------------------------------------------------
350 : : HiddenTxtField
351 : : --------------------------------------------------------------------*/
352 : :
353 [ # # ]: 0 : class SwHiddenTxtField : public SwField
354 : : {
355 : : rtl::OUString aTRUETxt; // Text if condition sal_True.
356 : : rtl::OUString aFALSETxt; // If condition false.
357 : : rtl::OUString aContent; // Evaluated DB-text.
358 : :
359 : : rtl::OUString aCond; // Condition.
360 : : sal_uInt16 nSubType;
361 : :
362 : : sal_Bool bCanToggle : 1; // Can field be toggled alone?
363 : : sal_Bool bIsHidden : 1; // Is it not visible?
364 : : sal_Bool bValid : 1; // Is DB-field evaluated?
365 : :
366 : : virtual String Expand() const;
367 : : virtual SwField* Copy() const;
368 : :
369 : : public:
370 : : SwHiddenTxtField( SwHiddenTxtFieldType*,
371 : : sal_Bool bConditional,
372 : : const String& rCond,
373 : : const String& rTxt,
374 : : sal_Bool bHidden = sal_False,
375 : : sal_uInt16 nSubType = TYP_HIDDENTXTFLD);
376 : :
377 : : SwHiddenTxtField( SwHiddenTxtFieldType*,
378 : : const String& rCond,
379 : : const String& rTrue,
380 : : const String& rFalse,
381 : : sal_uInt16 nSubType = TYP_HIDDENTXTFLD);
382 : :
383 : : virtual String GetFieldName() const;
384 : :
385 : : void Evaluate(SwDoc*);
386 : :
387 : 0 : inline void SetValue(sal_Bool bHidden) { bIsHidden = bHidden; }
388 : : String GetColumnName(const String& rName);
389 : : String GetDBName(const String& rName, SwDoc *pDoc);
390 : :
391 : : // Condition
392 : : virtual void SetPar1(const rtl::OUString& rStr);
393 : : virtual const rtl::OUString& GetPar1() const;
394 : :
395 : : // True/False - String
396 : : virtual void SetPar2(const rtl::OUString& rStr);
397 : : virtual rtl::OUString GetPar2() const;
398 : :
399 : :
400 : : virtual sal_uInt16 GetSubType() const;
401 : :
402 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
403 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
404 : : };
405 : :
406 : : /*--------------------------------------------------------------------
407 : : Field that expands to an empty line (without height).
408 : : --------------------------------------------------------------------*/
409 : :
410 [ - + ]: 2916 : class SwHiddenParaFieldType : public SwFieldType
411 : : {
412 : : public:
413 : : SwHiddenParaFieldType();
414 : :
415 : : virtual SwFieldType* Copy() const;
416 : : };
417 : :
418 : : /*--------------------------------------------------------------------
419 : : Hidded paragraph.
420 : : --------------------------------------------------------------------*/
421 : :
422 [ # # ]: 0 : class SwHiddenParaField : public SwField
423 : : {
424 : : rtl::OUString aCond;
425 : : sal_Bool bIsHidden:1;
426 : : public:
427 : : // Direct input, delete old value.
428 : : SwHiddenParaField(SwHiddenParaFieldType*, const String& rCond);
429 : :
430 : : virtual String Expand() const;
431 : : virtual SwField* Copy() const;
432 : :
433 : 0 : void SetHidden(sal_Bool bHidden) { bIsHidden = bHidden; }
434 : 0 : sal_Bool IsHidden() const { return bIsHidden; }
435 : :
436 : : //Query, set condition.
437 : : virtual const rtl::OUString& GetPar1() const;
438 : : virtual void SetPar1(const rtl::OUString& rStr);
439 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
440 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
441 : : };
442 : :
443 : : /*--------------------------------------------------------------------
444 : : Run Macro.
445 : : --------------------------------------------------------------------*/
446 : :
447 [ - + ]: 2916 : class SwMacroFieldType : public SwFieldType
448 : : {
449 : : SwDoc* pDoc;
450 : :
451 : : public:
452 : : SwMacroFieldType(SwDoc*);
453 : :
454 : : virtual SwFieldType* Copy() const;
455 : : };
456 : :
457 : : /*--------------------------------------------------------------------
458 : : MacroField.
459 : : --------------------------------------------------------------------*/
460 : :
461 [ # # ]: 0 : class SW_DLLPUBLIC SwMacroField : public SwField
462 : : {
463 : : rtl::OUString aMacro;
464 : : rtl::OUString aText;
465 : : sal_Bool bIsScriptURL;
466 : :
467 : : virtual String Expand() const;
468 : : virtual SwField* Copy() const;
469 : :
470 : : public:
471 : : // Direct input, delete old value.
472 : : SwMacroField( SwMacroFieldType*, const String& rLibAndName,
473 : : const String& rTxt);
474 : :
475 : 0 : inline const rtl::OUString& GetMacro() const { return aMacro; }
476 : : String GetLibName() const;
477 : : String GetMacroName() const;
478 : : SvxMacro GetSvxMacro() const;
479 : :
480 : : virtual String GetFieldName() const;
481 : :
482 : : // Library and FileName
483 : : virtual const rtl::OUString& GetPar1() const;
484 : : virtual void SetPar1(const rtl::OUString& rStr);
485 : :
486 : : // Macrotext
487 : : virtual rtl::OUString GetPar2() const;
488 : : virtual void SetPar2(const rtl::OUString& rStr);
489 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
490 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
491 : :
492 : : static void CreateMacroString( rtl::OUString& rMacro,
493 : : const String& rMacroName,
494 : : const String& rLibraryName );
495 : :
496 : : static sal_Bool isScriptURL( const String& str );
497 : : };
498 : :
499 : :
500 : : /*--------------------------------------------------------------------
501 : : PostIts
502 : : --------------------------------------------------------------------*/
503 : :
504 [ - + ]: 2916 : class SwPostItFieldType : public SwFieldType
505 : : {
506 : : private:
507 : : SwDoc* mpDoc;
508 : : public:
509 : : SwPostItFieldType(SwDoc* pDoc);
510 : :
511 : : virtual SwFieldType* Copy() const;
512 : 6 : SwDoc* GetDoc() {return mpDoc;};
513 : : };
514 : :
515 : : /*--------------------------------------------------------------------
516 : : PostItField
517 : : --------------------------------------------------------------------*/
518 : :
519 : : class SW_DLLPUBLIC SwPostItField : public SwField
520 : : {
521 : : rtl::OUString sTxt;
522 : : rtl::OUString sAuthor;
523 : : rtl::OUString sInitials; ///< Initials of the author.
524 : : rtl::OUString sName; ///< Name of the comment.
525 : : DateTime aDateTime;
526 : : OutlinerParaObject* mpText;
527 : : SwTextAPIObject* m_pTextObject;
528 : :
529 : : public:
530 : : SwPostItField( SwPostItFieldType*,
531 : : const String& rAuthor, const String& rTxt, const String& rInitials, const String& rName, const DateTime& rDate);
532 : : ~SwPostItField();
533 : :
534 : : virtual String Expand() const;
535 : : virtual SwField* Copy() const;
536 : :
537 : 6 : inline const DateTime GetDateTime() const { return aDateTime; }
538 : 18 : inline const Date GetDate() const { return aDateTime.GetDate(); }
539 : 30 : inline const Time GetTime() const { return aDateTime.GetTime(); }
540 : :
541 : : // Author
542 : : virtual const rtl::OUString& GetPar1() const;
543 : : virtual void SetPar1(const rtl::OUString& rStr);
544 : :
545 : : // Text
546 : : virtual rtl::OUString GetPar2() const;
547 : : virtual void SetPar2(const rtl::OUString& rStr);
548 : 3 : const rtl::OUString& GetTxt() const { return sTxt; }
549 : : const rtl::OUString& GetInitials() const;
550 : : void SetName(const rtl::OUString& rStr);
551 : : const OUString& GetName() const;
552 : :
553 : : const OutlinerParaObject* GetTextObject() const;
554 : : void SetTextObject( OutlinerParaObject* pText );
555 : :
556 : : sal_uInt32 GetNumberOfParagraphs() const;
557 : :
558 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
559 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
560 : : virtual String GetDescription() const;
561 : : };
562 : :
563 : : /*--------------------------------------------------------------------
564 : : DocumentInfo
565 : : --------------------------------------------------------------------*/
566 : :
567 [ - + ]: 2916 : class SwDocInfoFieldType : public SwValueFieldType
568 : : {
569 : : public:
570 : : SwDocInfoFieldType(SwDoc* pDc);
571 : :
572 : : String Expand(sal_uInt16 nSubType, sal_uInt32 nFormat, sal_uInt16 nLang, const String& rName) const;
573 : : virtual SwFieldType* Copy() const;
574 : : };
575 : :
576 [ # # ][ # # ]: 0 : class SW_DLLPUBLIC SwDocInfoField : public SwValueField
[ # # ]
577 : : {
578 : : sal_uInt16 nSubType;
579 : : String aContent;
580 : : String aName;
581 : :
582 : : virtual String Expand() const;
583 : : virtual SwField* Copy() const;
584 : :
585 : : public:
586 : : SwDocInfoField(SwDocInfoFieldType*, sal_uInt16 nSub, const String& rName, sal_uInt32 nFmt=0);
587 : : SwDocInfoField(SwDocInfoFieldType*, sal_uInt16 nSub, const String& rName, const String& rValue, sal_uInt32 nFmt=0);
588 : :
589 : : virtual void SetSubType(sal_uInt16);
590 : : virtual sal_uInt16 GetSubType() const;
591 : : virtual void SetLanguage(sal_uInt16 nLng);
592 : : virtual String GetFieldName() const;
593 : 0 : String GetName() const { return aName; }
594 : 0 : void SetName( const String& rName ) { aName = rName; }
595 : 0 : inline void SetExpansion(const String& rStr) { aContent = rStr; }
596 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
597 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
598 : : };
599 : :
600 : : /*--------------------------------------------------------------------
601 : : Extended User settings.
602 : : --------------------------------------------------------------------*/
603 : :
604 : :
605 [ + - ][ - + ]: 2916 : class SwExtUserFieldType : public SwFieldType
606 : : {
607 : : String aData;
608 : : public:
609 : : SwExtUserFieldType();
610 : :
611 : : inline void SetData(const String& rStr) { aData = rStr; }
612 : :
613 : : String Expand(sal_uInt16 nSubType, sal_uInt32 nFormat) const;
614 : : virtual SwFieldType* Copy() const;
615 : : };
616 : :
617 [ # # ][ # # ]: 0 : class SwExtUserField : public SwField
618 : : {
619 : : String aContent;
620 : : sal_uInt16 nType;
621 : :
622 : : public:
623 : : SwExtUserField(SwExtUserFieldType*, sal_uInt16 nSub, sal_uInt32 nFmt=0);
624 : :
625 : : virtual String Expand() const;
626 : : virtual SwField* Copy() const;
627 : :
628 : : virtual sal_uInt16 GetSubType() const;
629 : : virtual void SetSubType(sal_uInt16 nSub);
630 : :
631 : 0 : inline void SetExpansion(const String& rStr) { aContent = rStr; }
632 : :
633 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
634 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
635 : : };
636 : :
637 : :
638 : : /*--------------------------------------------------------------------
639 : : Relative page numbers - field.
640 : : --------------------------------------------------------------------*/
641 : :
642 [ - + ]: 2916 : class SwRefPageSetFieldType : public SwFieldType
643 : : {
644 : : public:
645 : : SwRefPageSetFieldType();
646 : :
647 : : virtual SwFieldType* Copy() const;
648 : :
649 : : protected:
650 : : // Overlay, because there is nothing to update!
651 : : virtual void Modify( const SfxPoolItem*, const SfxPoolItem * );
652 : : };
653 : :
654 : : /*--------------------------------------------------------------------
655 : : Relative page numbering.
656 : : --------------------------------------------------------------------*/
657 : :
658 [ # # ]: 0 : class SwRefPageSetField : public SwField
659 : : {
660 : : short nOffset;
661 : : sal_Bool bOn;
662 : :
663 : : public:
664 : : SwRefPageSetField( SwRefPageSetFieldType*, short nOff = 0,
665 : : sal_Bool bOn = sal_True );
666 : :
667 : : virtual String Expand() const;
668 : : virtual SwField* Copy() const;
669 : :
670 : : virtual rtl::OUString GetPar2() const;
671 : : virtual void SetPar2(const rtl::OUString& rStr);
672 : :
673 : 0 : sal_Bool IsOn() const { return bOn; }
674 : :
675 : 0 : short GetOffset() const { return nOffset; }
676 : 0 : void SetOffset( short nOff ) { nOffset = nOff; }
677 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
678 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
679 : : };
680 : :
681 : : /*--------------------------------------------------------------------
682 : : Relative page numbers - query field.
683 : : --------------------------------------------------------------------*/
684 : :
685 [ - + ]: 2916 : class SwRefPageGetFieldType : public SwFieldType
686 : : {
687 : : SwDoc* pDoc;
688 : : sal_Int16 nNumberingType;
689 : :
690 : : void UpdateField( SwTxtFld* pTxtFld, _SetGetExpFlds& rSetList );
691 : : protected:
692 : : // overwritten to update all RefPageGet fields
693 : : virtual void Modify( const SfxPoolItem*, const SfxPoolItem * );
694 : : public:
695 : : SwRefPageGetFieldType( SwDoc* pDoc );
696 : : virtual SwFieldType* Copy() const;
697 : : sal_uInt16 MakeSetList( _SetGetExpFlds& rTmpLst );
698 : 0 : SwDoc* GetDoc() const { return pDoc; }
699 : : };
700 : :
701 : : /*--------------------------------------------------------------------
702 : : Query relative page numbering.
703 : : --------------------------------------------------------------------*/
704 : :
705 [ # # ][ # # ]: 0 : class SwRefPageGetField : public SwField
706 : : {
707 : : String sTxt;
708 : : public:
709 : : SwRefPageGetField( SwRefPageGetFieldType*, sal_uInt32 nFmt );
710 : :
711 : : virtual String Expand() const;
712 : : virtual SwField* Copy() const;
713 : :
714 : 0 : void SetText( const String& rTxt ) { sTxt = rTxt; }
715 : :
716 : : void ChangeExpansion( const SwFrm* pFrm, const SwTxtFld* pFld );
717 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
718 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
719 : : };
720 : :
721 : : /*--------------------------------------------------------------------
722 : : Field to jump to and edit.
723 : : --------------------------------------------------------------------*/
724 : :
725 [ + - ][ - + ]: 2916 : class SwJumpEditFieldType : public SwFieldType
726 : : {
727 : : SwDoc* pDoc;
728 : : SwDepend aDep;
729 : :
730 : : public:
731 : : SwJumpEditFieldType( SwDoc* pDoc );
732 : : virtual SwFieldType* Copy() const;
733 : :
734 : : SwCharFmt* GetCharFmt();
735 : : };
736 : :
737 [ - + ]: 156 : class SwJumpEditField : public SwField
738 : : {
739 : : rtl::OUString sTxt, sHelp;
740 : : public:
741 : : SwJumpEditField( SwJumpEditFieldType*, sal_uInt32 nFormat,
742 : : const String& sText, const String& sHelp );
743 : :
744 : : virtual String Expand() const;
745 : : virtual SwField* Copy() const;
746 : :
747 : : // Placeholder-Text
748 : : virtual const rtl::OUString& GetPar1() const;
749 : : virtual void SetPar1(const rtl::OUString& rStr);
750 : :
751 : : // Hint-Text
752 : : virtual rtl::OUString GetPar2() const;
753 : : virtual void SetPar2(const rtl::OUString& rStr);
754 : :
755 : 7 : SwCharFmt* GetCharFmt() const
756 : 7 : { return ((SwJumpEditFieldType*)GetTyp())->GetCharFmt(); }
757 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
758 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
759 : : };
760 : :
761 : : /*--------------------------------------------------------------------
762 : : Script Fieldtype.
763 : : --------------------------------------------------------------------*/
764 : :
765 [ - + ]: 3544 : class SwScriptFieldType : public SwFieldType
766 : : {
767 : : SwDoc* pDoc;
768 : : public:
769 : : SwScriptFieldType( SwDoc* pDoc );
770 : :
771 : : virtual SwFieldType* Copy() const;
772 : : };
773 : :
774 : : /*--------------------------------------------------------------------
775 : : ScriptField.
776 : : --------------------------------------------------------------------*/
777 : :
778 [ # # ]: 0 : class SwScriptField : public SwField
779 : : {
780 : : rtl::OUString sType; // Type of Code (Java/VBScript/...)
781 : : rtl::OUString sCode; // Code as text.
782 : : // Code as JavaCode ?
783 : :
784 : : sal_Bool bCodeURL;// Code contains URL of a script.
785 : :
786 : : public:
787 : : SwScriptField( SwScriptFieldType*, const String& rType,
788 : : const String& rCode, sal_Bool bURL=sal_False );
789 : :
790 : : virtual String GetDescription() const;
791 : :
792 : : virtual String Expand() const;
793 : : virtual SwField* Copy() const;
794 : :
795 : : // Type
796 : : virtual const rtl::OUString& GetPar1() const;
797 : : virtual void SetPar1(const rtl::OUString& rStr);
798 : : // Text
799 : : virtual rtl::OUString GetPar2() const;
800 : : virtual void SetPar2(const rtl::OUString& rStr);
801 : :
802 : 0 : sal_Bool IsCodeURL() const { return bCodeURL; }
803 : 0 : void SetCodeURL( sal_Bool bURL ) { bCodeURL = bURL; }
804 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
805 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
806 : : };
807 : :
808 : : /*--------------------------------------------------------------------
809 : : Combined Character Fieldtype
810 : : --------------------------------------------------------------------*/
811 : :
812 [ - + ]: 2916 : class SwCombinedCharFieldType : public SwFieldType
813 : : {
814 : : public:
815 : : SwCombinedCharFieldType();
816 : :
817 : : virtual SwFieldType* Copy() const;
818 : : };
819 : :
820 : : /*--------------------------------------------------------------------
821 : : ScriptField
822 : : --------------------------------------------------------------------*/
823 : :
824 : : #define MAX_COMBINED_CHARACTERS 6
825 : :
826 [ # # ]: 0 : class SW_DLLPUBLIC SwCombinedCharField : public SwField
827 : : {
828 : : rtl::OUString sCharacters; // combine these characters
829 : :
830 : : public:
831 : : SwCombinedCharField( SwCombinedCharFieldType*, const String& rChars );
832 : :
833 : : virtual String Expand() const;
834 : : virtual SwField* Copy() const;
835 : :
836 : : // Characters
837 : : virtual const rtl::OUString& GetPar1() const;
838 : : virtual void SetPar1(const rtl::OUString& rStr);
839 : :
840 : : virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const;
841 : : virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich );
842 : : };
843 : :
844 : :
845 : : #endif // SW_DOCUFLD_HXX
846 : :
847 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|