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 SW_DOCUFLD_HXX 24 #define SW_DOCUFLD_HXX 25 26 27 #include <tools/date.hxx> 28 #include <tools/datetime.hxx> 29 30 31 #include <svl/macitem.hxx> 32 33 #include "fldbas.hxx" 34 #include "numrule.hxx" 35 36 class _SetGetExpFlds; 37 class SwTxtFld; 38 class SwFrm; 39 class OutlinerParaObject; 40 class SwTextAPIObject; 41 42 enum SwAuthorFormat 43 { 44 AF_BEGIN, 45 AF_NAME = AF_BEGIN, 46 AF_SHORTCUT, 47 AF_END, 48 AF_FIXED = 0x8000 49 }; 50 51 /*-------------------------------------------------------------------- 52 Beschreibung: Untertyp der Dokumentstatistik 53 --------------------------------------------------------------------*/ 54 55 enum SwDocStatSubType 56 { 57 DS_BEGIN, 58 DS_PAGE = DS_BEGIN, 59 DS_PARA, 60 DS_WORD, 61 DS_CHAR, 62 DS_TBL, 63 DS_GRF, 64 DS_OLE, 65 DS_END 66 }; 67 68 typedef sal_uInt16 SwDocInfoSubType; 69 namespace nsSwDocInfoSubType 70 { 71 // NB: these must denote consecutive integers! 72 // NB2: these are extended by 4 DI_INFO values for backward compatibility 73 // in filter/html/htmlfld.cxx, so make sure that DI_SUBTYPE_END 74 // really is the end, and is at least 4 less than DI_SUB_*! 75 const SwDocInfoSubType DI_SUBTYPE_BEGIN = 0; 76 const SwDocInfoSubType DI_TITEL = DI_SUBTYPE_BEGIN; 77 const SwDocInfoSubType DI_THEMA = 1; 78 const SwDocInfoSubType DI_KEYS = 2; 79 const SwDocInfoSubType DI_COMMENT = 3; 80 const SwDocInfoSubType DI_CREATE = 4; 81 const SwDocInfoSubType DI_CHANGE = 5; 82 const SwDocInfoSubType DI_PRINT = 6; 83 const SwDocInfoSubType DI_DOCNO = 7; 84 const SwDocInfoSubType DI_EDIT = 8; 85 const SwDocInfoSubType DI_CUSTOM = 9; 86 const SwDocInfoSubType DI_SUBTYPE_END = 10; 87 88 89 const SwDocInfoSubType DI_SUB_AUTHOR = 0x0100; 90 const SwDocInfoSubType DI_SUB_TIME = 0x0200; 91 const SwDocInfoSubType DI_SUB_DATE = 0x0300; 92 const SwDocInfoSubType DI_SUB_FIXED = 0x1000; 93 const SwDocInfoSubType DI_SUB_MASK = 0xff00; 94 } 95 96 97 enum RegInfoFormat // Nur noch zum laden alter Dokumente!!! 98 { 99 RF_AUTHOR, 100 RF_TIME, 101 RF_DATE, 102 RF_ALL 103 }; 104 105 enum SwPageNumSubType 106 { 107 PG_RANDOM, 108 PG_NEXT, 109 PG_PREV 110 }; 111 112 enum SwExtUserSubType 113 { 114 EU_COMPANY /*EU_FIRMA*/, 115 EU_FIRSTNAME /*EU_VORNAME*/, 116 EU_NAME /*EU_NAME*/, 117 EU_SHORTCUT /*EU_ABK*/, 118 EU_STREET /*EU_STRASSE*/, 119 EU_COUNTRY /*EU_LAND*/, 120 EU_ZIP /*EU_PLZ*/, 121 EU_CITY /*EU_ORT*/, 122 EU_TITLE /*EU_TITEL*/, 123 EU_POSITION /*EU_POS*/, 124 EU_PHONE_PRIVATE /*EU_TELPRIV*/, 125 EU_PHONE_COMPANY /*EU_TELFIRMA*/, 126 EU_FAX, 127 EU_EMAIL, 128 EU_STATE, 129 EU_FATHERSNAME, 130 EU_APARTMENT 131 }; 132 133 enum SwJumpEditFormat 134 { 135 JE_FMT_TEXT, 136 JE_FMT_TABLE, 137 JE_FMT_FRAME, 138 JE_FMT_GRAPHIC, 139 JE_FMT_OLE 140 }; 141 142 /*-------------------------------------------------------------------- 143 Beschreibung: Seitennummer 144 --------------------------------------------------------------------*/ 145 146 class SwPageNumberFieldType : public SwFieldType 147 { 148 sal_Int16 nNumberingType; 149 sal_uInt16 nNum, nMax; 150 sal_Bool bVirtuell; 151 152 public: 153 SwPageNumberFieldType(); 154 155 String& Expand( sal_uInt32 nFmt, short nOff, const String&, String& rRet ) const; 156 void ChangeExpansion( SwDoc* pDoc, sal_uInt16 nNum, sal_uInt16 nMax, 157 sal_Bool bVirtPageNum, const sal_Int16* pNumFmt = 0 ); 158 virtual SwFieldType* Copy() const; 159 }; 160 161 /*-------------------------------------------------------------------- 162 Beschreibung: Seitennummerierung 163 --------------------------------------------------------------------*/ 164 165 class SW_DLLPUBLIC SwPageNumberField : public SwField 166 { 167 String sUserStr; 168 sal_uInt16 nSubType; 169 short nOffset; 170 171 public: 172 SwPageNumberField(SwPageNumberFieldType*, sal_uInt16 nSub = PG_RANDOM, 173 sal_uInt32 nFmt = 0, short nOff = 0); 174 175 virtual String Expand() const; 176 virtual SwField* Copy() const; 177 178 virtual String GetPar2() const; 179 virtual void SetPar2(const String& rStr); 180 181 virtual sal_uInt16 GetSubType() const; 182 // virtual void SetSubType(sal_uInt16 nSub); // OM: entfernt, da unbenoetigt und gefaehrlich 183 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 184 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 185 GetUserString() const186 const String& GetUserString() const { return sUserStr; } SetUserString(const String & rS)187 void SetUserString( const String& rS ) { sUserStr = rS; } 188 }; 189 190 /*-------------------------------------------------------------------- 191 Beschreibung: Autoren 192 --------------------------------------------------------------------*/ 193 194 class SwAuthorFieldType : public SwFieldType 195 { 196 public: 197 SwAuthorFieldType(); 198 199 String Expand(sal_uLong) const; 200 virtual SwFieldType* Copy() const; 201 }; 202 203 /*-------------------------------------------------------------------- 204 Beschreibung: AutorenFeld 205 --------------------------------------------------------------------*/ 206 207 class SwAuthorField : public SwField 208 { 209 String aContent; 210 211 public: 212 SwAuthorField(SwAuthorFieldType*, sal_uInt32 nFmt = 0); 213 214 virtual String Expand() const; 215 virtual SwField* Copy() const; 216 SetExpansion(const String & rStr)217 inline void SetExpansion(const String& rStr) { aContent = rStr; } GetContent() const218 inline const String& GetContent() const { return aContent; } 219 220 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 221 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 222 }; 223 224 /*-------------------------------------------------------------------- 225 Beschreibung: Filename 226 --------------------------------------------------------------------*/ 227 228 class SwFileNameFieldType : public SwFieldType 229 { 230 SwDoc *pDoc; 231 public: 232 SwFileNameFieldType(SwDoc*); 233 234 String Expand(sal_uLong) const; 235 virtual SwFieldType* Copy() const; 236 }; 237 238 /*-------------------------------------------------------------------- 239 Beschreibung: FileName 240 --------------------------------------------------------------------*/ 241 242 class SW_DLLPUBLIC SwFileNameField : public SwField 243 { 244 String aContent; 245 246 public: 247 SwFileNameField(SwFileNameFieldType*, sal_uInt32 nFmt = 0); 248 249 virtual String Expand() const; 250 virtual SwField* Copy() const; 251 SetExpansion(const String & rStr)252 inline void SetExpansion(const String& rStr) { aContent = rStr; } GetContent() const253 inline const String& GetContent() const { return aContent; } 254 255 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 256 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 257 }; 258 259 /*-------------------------------------------------------------------- 260 Beschreibung: TemplName 261 --------------------------------------------------------------------*/ 262 263 class SwTemplNameFieldType : public SwFieldType 264 { 265 SwDoc *pDoc; 266 public: 267 SwTemplNameFieldType(SwDoc*); 268 269 String Expand(sal_uLong) const; 270 virtual SwFieldType* Copy() const; 271 }; 272 273 /*-------------------------------------------------------------------- 274 Beschreibung: TemplName 275 --------------------------------------------------------------------*/ 276 277 class SW_DLLPUBLIC SwTemplNameField : public SwField 278 { 279 public: 280 SwTemplNameField(SwTemplNameFieldType*, sal_uInt32 nFmt = 0); 281 282 virtual String Expand() const; 283 virtual SwField* Copy() const; 284 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 285 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 286 }; 287 288 289 /*-------------------------------------------------------------------- 290 Beschreibung: Docstatistik 291 --------------------------------------------------------------------*/ 292 293 class SwDocStatFieldType : public SwFieldType 294 { 295 SwDoc* pDoc; 296 sal_Int16 nNumberingType;//com::sun::star::style::NumberingType 297 298 public: 299 SwDocStatFieldType(SwDoc*); 300 String Expand(sal_uInt16 nSubType, sal_uInt32 nFmt) const; 301 virtual SwFieldType* Copy() const; 302 SetNumFormat(sal_Int16 eFmt)303 inline void SetNumFormat( sal_Int16 eFmt ) { nNumberingType = eFmt; } 304 }; 305 306 /*-------------------------------------------------------------------- 307 Beschreibung: Dokumentstatistik 308 --------------------------------------------------------------------*/ 309 310 class SW_DLLPUBLIC SwDocStatField : public SwField 311 { 312 sal_uInt16 nSubType; 313 314 public: 315 SwDocStatField( SwDocStatFieldType*, 316 sal_uInt16 nSubType = 0, sal_uInt32 nFmt = 0); 317 318 void ChangeExpansion( const SwFrm* pFrm ); 319 320 virtual String Expand() const; 321 virtual SwField* Copy() const; 322 323 virtual sal_uInt16 GetSubType() const; 324 virtual void SetSubType(sal_uInt16 nSub); 325 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 326 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 327 }; 328 329 /*-------------------------------------------------------------------- 330 Beschreibung: versteckter Text 331 --------------------------------------------------------------------*/ 332 333 class SwHiddenTxtFieldType : public SwFieldType 334 { 335 sal_Bool bHidden; 336 public: 337 SwHiddenTxtFieldType(sal_Bool bSetHidden = sal_True); 338 339 virtual SwFieldType* Copy() const; 340 341 void SetHiddenFlag( sal_Bool bSetHidden = sal_True ); GetHiddenFlag() const342 inline sal_Bool GetHiddenFlag() const { return bHidden; } 343 }; 344 345 /*-------------------------------------------------------------------- 346 Beschreibung: Versteckter Text 347 --------------------------------------------------------------------*/ 348 349 class SwHiddenTxtField : public SwField 350 { 351 String aTRUETxt; // Text wenn Bedingung sal_True 352 String aFALSETxt; // Wenn Bedingung falsch 353 String aContent; // Ausgewerteter DB-Text 354 355 String aCond; // Bedingung 356 sal_uInt16 nSubType; 357 358 sal_Bool bCanToggle : 1; // kann das Feld einzeln getoggelt werden? 359 sal_Bool bIsHidden : 1; // ist es nicht sichtbar? 360 sal_Bool bValid : 1; // DB-Feld evaluiert? 361 362 virtual String Expand() const; 363 virtual SwField* Copy() const; 364 365 public: 366 SwHiddenTxtField( SwHiddenTxtFieldType*, 367 sal_Bool bConditional, 368 const String& rCond, 369 const String& rTxt, 370 sal_Bool bHidden = sal_False, 371 sal_uInt16 nSubType = TYP_HIDDENTXTFLD); 372 373 SwHiddenTxtField( SwHiddenTxtFieldType*, 374 const String& rCond, 375 const String& rTrue, 376 const String& rFalse, 377 sal_uInt16 nSubType = TYP_HIDDENTXTFLD); 378 379 virtual String GetFieldName() const; 380 381 void Evaluate(SwDoc*); 382 SetValue(sal_Bool bHidden)383 inline void SetValue(sal_Bool bHidden) { bIsHidden = bHidden; } 384 String GetColumnName(const String& rName); 385 String GetDBName(const String& rName, SwDoc *pDoc); 386 387 // Condition 388 virtual void SetPar1(const String& rStr); 389 virtual const String& GetPar1() const; 390 391 // True/False - String 392 virtual void SetPar2(const String& rStr); 393 virtual String GetPar2() const; 394 395 396 virtual sal_uInt16 GetSubType() const; 397 // virtual void SetSubType(sal_uInt16 nSub); // OM: entfernt, da unbenoetigt und gefaehrlich 398 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 399 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 400 }; 401 402 /*-------------------------------------------------------------------- 403 Beschreibung: Feld das zu einer Leerzeile (ohne Hoehe) expandiert 404 --------------------------------------------------------------------*/ 405 406 class SwHiddenParaFieldType : public SwFieldType 407 { 408 public: 409 SwHiddenParaFieldType(); 410 411 virtual SwFieldType* Copy() const; 412 }; 413 414 /*-------------------------------------------------------------------- 415 Beschreibung: Versteckter Absatz 416 --------------------------------------------------------------------*/ 417 418 class SwHiddenParaField : public SwField 419 { 420 String aCond; 421 sal_Bool bIsHidden:1; 422 public: 423 // Direkte Eingabe alten Wert loeschen 424 SwHiddenParaField(SwHiddenParaFieldType*, const String& rCond); 425 426 virtual String Expand() const; 427 virtual SwField* Copy() const; 428 SetHidden(sal_Bool bHidden)429 void SetHidden(sal_Bool bHidden) { bIsHidden = bHidden; } IsHidden() const430 sal_Bool IsHidden() const { return bIsHidden; } 431 432 // Bedingung erfragen/setzen 433 virtual const String& GetPar1() const; 434 virtual void SetPar1(const String& rStr); 435 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 436 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 437 }; 438 439 /*-------------------------------------------------------------------- 440 Beschreibung: Macro ausfuehren 441 --------------------------------------------------------------------*/ 442 443 class SwMacroFieldType : public SwFieldType 444 { 445 SwDoc* pDoc; 446 447 public: 448 SwMacroFieldType(SwDoc*); 449 450 virtual SwFieldType* Copy() const; 451 }; 452 453 /*-------------------------------------------------------------------- 454 Beschreibung: Macrofeld 455 --------------------------------------------------------------------*/ 456 457 class SW_DLLPUBLIC SwMacroField : public SwField 458 { 459 String aMacro; 460 String aText; 461 sal_Bool bIsScriptURL; 462 463 virtual String Expand() const; 464 virtual SwField* Copy() const; 465 466 public: 467 // Direkte Eingabe alten Wert loeschen 468 SwMacroField( SwMacroFieldType*, const String& rLibAndName, 469 const String& rTxt); 470 GetMacro() const471 inline const String& GetMacro() const { return aMacro; } 472 String GetLibName() const; 473 String GetMacroName() const; 474 SvxMacro GetSvxMacro() const; 475 476 virtual String GetFieldName() const; 477 478 // Library und FileName 479 virtual const String& GetPar1() const; 480 virtual void SetPar1(const String& rStr); 481 482 // Macrotext 483 virtual String GetPar2() const; 484 virtual void SetPar2(const String& rStr); 485 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 486 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 487 488 static void CreateMacroString( String& rMacro, 489 const String& rMacroName, 490 const String& rLibraryName ); 491 492 static sal_Bool isScriptURL( const String& str ); 493 }; 494 495 496 /*-------------------------------------------------------------------- 497 Beschreibung: PostIts 498 --------------------------------------------------------------------*/ 499 500 class SwPostItFieldType : public SwFieldType 501 { 502 private: 503 SwDoc* mpDoc; 504 public: 505 SwPostItFieldType(SwDoc* pDoc); 506 507 virtual SwFieldType* Copy() const; 508 GetDoc() const509 SwDoc* GetDoc() const 510 { 511 return mpDoc; 512 }; 513 }; 514 515 516 // representation for a comment/an annotation 517 class SW_DLLPUBLIC SwPostItField : public SwField 518 { 519 String msCommentContent; // content of the comment/annotation 520 String msAuthor; // author 521 String msAuthorInitials; // author's initials 522 String msName; // name (identifier) of the comment/annotation 523 DateTime maDateTime; // creation date and time 524 525 OutlinerParaObject* mpText; 526 SwTextAPIObject* m_pTextObject; 527 528 public: 529 SwPostItField( 530 SwPostItFieldType*, 531 const String& rCommentContent, 532 const String& rAuthor, 533 const String& rAuthorInitials, 534 const String& rName, 535 const DateTime& rDate); 536 ~SwPostItField(); 537 538 virtual String Expand() const; 539 virtual SwField* Copy() const; 540 GetDate() const541 inline const Date GetDate() const 542 { 543 return maDateTime.GetDate(); 544 } GetTime() const545 inline const Time GetTime() const 546 { 547 return maDateTime.GetTime(); 548 } 549 550 // Author 551 virtual const String& GetPar1() const; 552 virtual void SetPar1(const String& rStr); 553 554 // Text 555 virtual String GetPar2() const; 556 virtual void SetPar2(const String& rStr); GetContent() const557 inline const String& GetContent() const 558 { 559 return msCommentContent; 560 } 561 562 // Name 563 void SetName(const String& rStr); 564 const String& GetName() const; 565 566 const OutlinerParaObject* GetTextObject() const; 567 void SetTextObject( OutlinerParaObject* pText ); 568 569 sal_uInt32 GetNumberOfParagraphs() const; 570 571 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 572 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 573 virtual String GetDescription() const; 574 }; 575 576 /*-------------------------------------------------------------------- 577 Beschreibung: DokumentInfo 578 --------------------------------------------------------------------*/ 579 580 class SwDocInfoFieldType : public SwValueFieldType 581 { 582 public: 583 SwDocInfoFieldType(SwDoc* pDc); 584 585 String Expand(sal_uInt16 nSubType, sal_uInt32 nFormat, sal_uInt16 nLang, const String& rName) const; 586 virtual SwFieldType* Copy() const; 587 }; 588 589 class SW_DLLPUBLIC SwDocInfoField : public SwValueField 590 { 591 sal_uInt16 nSubType; 592 String aContent; 593 String aName; 594 595 virtual String Expand() const; 596 virtual SwField* Copy() const; 597 598 public: 599 SwDocInfoField(SwDocInfoFieldType*, sal_uInt16 nSub, const String& rName, sal_uInt32 nFmt=0); 600 SwDocInfoField(SwDocInfoFieldType*, sal_uInt16 nSub, const String& rName, const String& rValue, sal_uInt32 nFmt=0); 601 602 virtual void SetSubType(sal_uInt16); 603 virtual sal_uInt16 GetSubType() const; 604 virtual void SetLanguage(sal_uInt16 nLng); 605 virtual String GetFieldName() const; GetName() const606 String GetName() const { return aName; } SetName(const String & rName)607 void SetName( const String& rName ) { aName = rName; } SetExpansion(const String & rStr)608 inline void SetExpansion(const String& rStr) { aContent = rStr; } 609 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 610 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 611 }; 612 613 /*-------------------------------------------------------------------- 614 Beschreibung: erweiterte Benutzereinstellung 615 --------------------------------------------------------------------*/ 616 617 618 class SwExtUserFieldType : public SwFieldType 619 { 620 String aData; 621 public: 622 SwExtUserFieldType(); 623 SetData(const String & rStr)624 inline void SetData(const String& rStr) { aData = rStr; } 625 626 String Expand(sal_uInt16 nSubType, sal_uInt32 nFormat) const; 627 virtual SwFieldType* Copy() const; 628 }; 629 630 class SwExtUserField : public SwField 631 { 632 String aContent; 633 sal_uInt16 nType; 634 635 public: 636 SwExtUserField(SwExtUserFieldType*, sal_uInt16 nSub, sal_uInt32 nFmt=0); 637 638 virtual String Expand() const; 639 virtual SwField* Copy() const; 640 641 virtual sal_uInt16 GetSubType() const; 642 virtual void SetSubType(sal_uInt16 nSub); 643 SetExpansion(const String & rStr)644 inline void SetExpansion(const String& rStr) { aContent = rStr; } 645 646 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 647 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 648 }; 649 650 651 /*-------------------------------------------------------------------- 652 Beschreibung: Relatives Seitennummern - Feld 653 --------------------------------------------------------------------*/ 654 655 class SwRefPageSetFieldType : public SwFieldType 656 { 657 public: 658 SwRefPageSetFieldType(); 659 660 virtual SwFieldType* Copy() const; 661 662 protected: 663 // ueberlagert, weil es nichts zum Updaten gibt! 664 virtual void Modify( const SfxPoolItem*, const SfxPoolItem * ); 665 }; 666 667 /*-------------------------------------------------------------------- 668 Beschreibung: Relative Seitennummerierung 669 --------------------------------------------------------------------*/ 670 671 class SwRefPageSetField : public SwField 672 { 673 short nOffset; 674 sal_Bool bOn; 675 676 public: 677 SwRefPageSetField( SwRefPageSetFieldType*, short nOff = 0, 678 sal_Bool bOn = sal_True ); 679 680 virtual String Expand() const; 681 virtual SwField* Copy() const; 682 683 virtual String GetPar2() const; 684 virtual void SetPar2(const String& rStr); 685 IsOn() const686 sal_Bool IsOn() const { return bOn; } 687 GetOffset() const688 short GetOffset() const { return nOffset; } SetOffset(short nOff)689 void SetOffset( short nOff ) { nOffset = nOff; } 690 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 691 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 692 }; 693 694 /*-------------------------------------------------------------------- 695 Beschreibung: relatives Seitennummern - Abfrage Feld 696 --------------------------------------------------------------------*/ 697 698 class SwRefPageGetFieldType : public SwFieldType 699 { 700 SwDoc* pDoc; 701 sal_Int16 nNumberingType; 702 703 void UpdateField( SwTxtFld* pTxtFld, _SetGetExpFlds& rSetList ); 704 protected: 705 // ueberlagert, um alle RefPageGet-Felder zu updaten 706 virtual void Modify( const SfxPoolItem*, const SfxPoolItem * ); 707 public: 708 SwRefPageGetFieldType( SwDoc* pDoc ); 709 virtual SwFieldType* Copy() const; 710 sal_uInt16 MakeSetList( _SetGetExpFlds& rTmpLst ); GetDoc() const711 SwDoc* GetDoc() const { return pDoc; } 712 }; 713 714 /*-------------------------------------------------------------------- 715 Beschreibung: Relative Seitennummerierung Abfragen 716 --------------------------------------------------------------------*/ 717 718 class SwRefPageGetField : public SwField 719 { 720 String sTxt; 721 public: 722 SwRefPageGetField( SwRefPageGetFieldType*, sal_uInt32 nFmt ); 723 724 virtual String Expand() const; 725 virtual SwField* Copy() const; 726 SetText(const String & rTxt)727 void SetText( const String& rTxt ) { sTxt = rTxt; } 728 729 void ChangeExpansion( const SwFrm* pFrm, const SwTxtFld* pFld ); 730 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 731 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 732 }; 733 734 /*-------------------------------------------------------------------- 735 Beschreibung: Feld zum Anspringen und Editieren 736 --------------------------------------------------------------------*/ 737 738 class SwJumpEditFieldType : public SwFieldType 739 { 740 SwDoc* pDoc; 741 SwDepend aDep; 742 743 public: 744 SwJumpEditFieldType( SwDoc* pDoc ); 745 virtual SwFieldType* Copy() const; 746 747 SwCharFmt* GetCharFmt(); 748 }; 749 750 class SwJumpEditField : public SwField 751 { 752 String sTxt, sHelp; 753 public: 754 SwJumpEditField( SwJumpEditFieldType*, sal_uInt32 nFormat, 755 const String& sText, const String& sHelp ); 756 757 virtual String Expand() const; 758 virtual SwField* Copy() const; 759 760 // Platzhalter-Text 761 virtual const String& GetPar1() const; 762 virtual void SetPar1(const String& rStr); 763 764 // HinweisText 765 virtual String GetPar2() const; 766 virtual void SetPar2(const String& rStr); 767 GetCharFmt() const768 SwCharFmt* GetCharFmt() const 769 { return ((SwJumpEditFieldType*)GetTyp())->GetCharFmt(); } 770 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 771 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 772 }; 773 774 /*-------------------------------------------------------------------- 775 Beschreibung: Script Fieldtype 776 --------------------------------------------------------------------*/ 777 778 class SwScriptFieldType : public SwFieldType 779 { 780 SwDoc* pDoc; 781 public: 782 SwScriptFieldType( SwDoc* pDoc ); 783 784 virtual SwFieldType* Copy() const; 785 }; 786 787 /*-------------------------------------------------------------------- 788 Beschreibung: Script Field 789 --------------------------------------------------------------------*/ 790 791 class SwScriptField : public SwField 792 { 793 String sType; // Type von Code (Java/VBScript/...) 794 String sCode; // der Code als Text 795 // der Code als JavaCode ? 796 797 sal_Bool bCodeURL; // Code enthaelt URL eines Scripts 798 799 public: 800 SwScriptField( SwScriptFieldType*, const String& rType, 801 const String& rCode, sal_Bool bURL=sal_False ); 802 803 virtual String GetDescription() const; 804 805 virtual String Expand() const; 806 virtual SwField* Copy() const; 807 808 // Type 809 virtual const String& GetPar1() const; 810 virtual void SetPar1(const String& rStr); 811 // Text 812 virtual String GetPar2() const; 813 virtual void SetPar2(const String& rStr); 814 IsCodeURL() const815 sal_Bool IsCodeURL() const { return bCodeURL; } SetCodeURL(sal_Bool bURL)816 void SetCodeURL( sal_Bool bURL ) { bCodeURL = bURL; } 817 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 818 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 819 }; 820 821 /*-------------------------------------------------------------------- 822 Beschreibung: Combined Character Fieldtype 823 --------------------------------------------------------------------*/ 824 825 class SwCombinedCharFieldType : public SwFieldType 826 { 827 public: 828 SwCombinedCharFieldType(); 829 830 virtual SwFieldType* Copy() const; 831 }; 832 833 /*-------------------------------------------------------------------- 834 Beschreibung: Script Field 835 --------------------------------------------------------------------*/ 836 837 #define MAX_COMBINED_CHARACTERS 6 838 839 class SW_DLLPUBLIC SwCombinedCharField : public SwField 840 { 841 String sCharacters; // combine these characters 842 843 public: 844 SwCombinedCharField( SwCombinedCharFieldType*, const String& rChars ); 845 846 virtual String Expand() const; 847 virtual SwField* Copy() const; 848 849 // Characters 850 virtual const String& GetPar1() const; 851 virtual void SetPar1(const String& rStr); 852 853 virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; 854 virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); 855 }; 856 857 858 #endif // SW_DOCUFLD_HXX 859