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 /** @#file 29 * XML export of all text fields 30 */ 31 32 #ifndef _XMLOFF_TXTFLDE_HXX 33 #define _XMLOFF_TXTFLDE_HXX 34 35 #include <com/sun/star/uno/Reference.h> 36 #include "xmloff/xmlnmspe.hxx" 37 38 #include <rtl/ustring.hxx> 39 #include <xmloff/xmltoken.hxx> 40 41 #include <map> 42 #include <set> 43 44 45 class SvXMLExport; 46 class SvXMLNumFmtExport; 47 struct XMLPropertyState; 48 49 namespace com { namespace sun { namespace star { 50 namespace util { struct DateTime; } 51 namespace util { struct Date; } 52 namespace text { class XTextField; } 53 namespace text { class XText; } 54 namespace beans { class XPropertySet; } 55 namespace beans { class XPropertySetInfo; } 56 namespace frame { class XModel; } 57 namespace uno { template<typename A> class Sequence; } 58 } } } 59 namespace rtl { class OUString; } 60 61 62 /// field IDs, 63 // including translation between UNO speak and XML speak if appropriate 64 65 enum FieldIdEnum { 66 FIELD_ID_SENDER, // sender == extended user 67 FIELD_ID_AUTHOR, 68 FIELD_ID_DATE, // current date 69 FIELD_ID_TIME, // current time (+date) 70 FIELD_ID_PAGENUMBER, // page number 71 FIELD_ID_PAGESTRING, // page contination string (page number string) 72 FIELD_ID_REFPAGE_SET, // set reference page 73 FIELD_ID_REFPAGE_GET, // get reference page number 74 75 FIELD_ID_PLACEHOLDER, // placeholder field == jump edit field 76 77 FIELD_ID_VARIABLE_DECL, // field type for set variable 78 FIELD_ID_VARIABLE_GET, // get variable == get expression 79 FIELD_ID_VARIABLE_SET, // set variable == set expression 80 FIELD_ID_VARIABLE_INPUT, // input field (variable) 81 FIELD_ID_USER_DECL, // field type for user field 82 FIELD_ID_USER_GET, // user field 83 FIELD_ID_USER_INPUT, // input field (user field) 84 FIELD_ID_TEXT_INPUT, // input field (text) 85 FIELD_ID_EXPRESSION, // expression field = formula field 86 FIELD_ID_SEQUENCE_DECL, // field type for sequence 87 FIELD_ID_SEQUENCE, // sequence field 88 89 FIELD_ID_DATABASE_NEXT, // select next row 90 FIELD_ID_DATABASE_SELECT, // select row # (NumSet) 91 FIELD_ID_DATABASE_DISPLAY, // display data (form letter field) 92 FIELD_ID_DATABASE_NAME, // display current db name (database name) 93 FIELD_ID_DATABASE_NUMBER, // display row # (SetNumber) 94 95 FIELD_ID_DOCINFO_CREATION_AUTHOR, // docinfo fields 96 FIELD_ID_DOCINFO_CREATION_TIME, 97 FIELD_ID_DOCINFO_CREATION_DATE, 98 FIELD_ID_DOCINFO_DESCRIPTION, 99 FIELD_ID_DOCINFO_CUSTOM, 100 FIELD_ID_DOCINFO_PRINT_TIME, 101 FIELD_ID_DOCINFO_PRINT_DATE, 102 FIELD_ID_DOCINFO_PRINT_AUTHOR, 103 FIELD_ID_DOCINFO_TITLE, 104 FIELD_ID_DOCINFO_SUBJECT, 105 FIELD_ID_DOCINFO_KEYWORDS, 106 FIELD_ID_DOCINFO_REVISION, 107 FIELD_ID_DOCINFO_EDIT_DURATION, 108 FIELD_ID_DOCINFO_SAVE_TIME, 109 FIELD_ID_DOCINFO_SAVE_DATE, 110 FIELD_ID_DOCINFO_SAVE_AUTHOR, 111 112 FIELD_ID_CONDITIONAL_TEXT, // conditionally choose between 2 texts 113 FIELD_ID_HIDDEN_TEXT, // conditionally hide a text 114 FIELD_ID_HIDDEN_PARAGRAPH, // conditionally hide a paragraph 115 116 FIELD_ID_TEMPLATE_NAME, // display name of template 117 FIELD_ID_CHAPTER, // display name/number of current chapter 118 FIELD_ID_FILE_NAME, // display name of current file 119 120 FIELD_ID_COUNT_PARAGRAPHS, // statistics fields: - paragraphs 121 FIELD_ID_COUNT_WORDS, // - words 122 FIELD_ID_COUNT_CHARACTERS, // - chars 123 FIELD_ID_COUNT_PAGES, // - pages 124 FIELD_ID_COUNT_TABLES, // - tables 125 FIELD_ID_COUNT_GRAPHICS, // - graphics 126 FIELD_ID_COUNT_OBJECTS, // - objects 127 128 FIELD_ID_MACRO, // macro fields 129 FIELD_ID_REF_REFERENCE, // get reference field (reference) 130 FIELD_ID_REF_SEQUENCE, // get reference field (sequence) 131 FIELD_ID_REF_BOOKMARK, // get reference field (bookmark) 132 FIELD_ID_REF_FOOTNOTE, // get reference field (footnote) 133 FIELD_ID_REF_ENDNOTE, // get reference field (endnote) 134 FIELD_ID_DDE, // DDE field 135 136 FIELD_ID_BIBLIOGRAPHY, // bibliography index entry 137 138 FIELD_ID_SHEET_NAME, // name of current (spread-)sheet 139 FIELD_ID_URL, // URL field (only Calc, Draw, Impress) 140 141 FIELD_ID_SCRIPT, // script fields (for HTML pages, mostly) 142 FIELD_ID_ANNOTATION, // annotation (notice) field 143 144 FIELD_ID_COMBINED_CHARACTERS, // combined characters (asian typography) 145 146 FIELD_ID_META, // text:meta-field (RDF metadata) 147 148 FIELD_ID_MEASURE, // for measure shapes 149 150 FIELD_ID_TABLE_FORMULA, // DEPRECATED: table formulas (Writer 2.0) 151 FIELD_ID_DROP_DOWN, // DEPRECATED: dropdown fields (WW8) 152 153 FIELD_ID_DRAW_HEADER, 154 FIELD_ID_DRAW_FOOTER, 155 FIELD_ID_DRAW_DATE_TIME, 156 157 FIELD_ID_UNKNOWN // invalid or unknown field type! 158 }; 159 160 161 162 class XMLTextFieldExport 163 { 164 SvXMLExport& rExport; 165 166 /// store used text field master names (NULL means: don't collect) 167 ::std::map< 168 ::com::sun::star::uno::Reference< ::com::sun::star::text::XText >, 169 ::std::set< ::rtl::OUString > > * 170 pUsedMasters; 171 172 public: 173 174 XMLTextFieldExport( SvXMLExport& rExp, 175 /// XMLPropertyState for the combined characters field 176 XMLPropertyState* pCombinedCharState = NULL ); 177 virtual ~XMLTextFieldExport(); 178 179 /// Export this field and the surrounding span element with the formatting. 180 /// To be called for every field in the document body. 181 void ExportField(const ::com::sun::star::uno::Reference < 182 ::com::sun::star::text::XTextField > & rTextField, 183 sal_Bool bProgress ); 184 185 /// collect styles (character styles, data styles, ...) for this field 186 /// (if appropriate). 187 /// Also collect used field masters (if pUsedMasters is set) 188 /// to be called for every field during style export. 189 void ExportFieldAutoStyle(const ::com::sun::star::uno::Reference < 190 ::com::sun::star::text::XTextField > & rTextField, 191 const sal_Bool bProgress, const sal_Bool bRecursive ); 192 193 /// export field declarations. 194 /// to be called once at beginning of document body. 195 void ExportFieldDeclarations(); 196 197 /// export field declarations for fields used in the the particular XText. 198 /// (Requires that a list of used field declarations has previously been 199 /// built-up in ExportFieldAutoStyle() ) 200 void ExportFieldDeclarations( 201 const ::com::sun::star::uno::Reference < 202 ::com::sun::star::text::XText > & rText); 203 204 /// export all field declarations, or only those that have been used? 205 /// Calling this method will reset the list of used field declataions. 206 void SetExportOnlyUsedFieldDeclarations( 207 sal_Bool bExportOnlyUsed = sal_True); 208 209 // determine element or attribute names 210 // (public, because they may be useful in related XML export classes) 211 static enum ::xmloff::token::XMLTokenEnum MapPlaceholderType(sal_uInt16 nType); 212 static enum ::xmloff::token::XMLTokenEnum MapTemplateDisplayFormat(sal_Int16 nType); 213 static enum ::xmloff::token::XMLTokenEnum MapChapterDisplayFormat(sal_Int16 nType); 214 static enum ::xmloff::token::XMLTokenEnum MapFilenameDisplayFormat(sal_Int16 nType); 215 static enum ::xmloff::token::XMLTokenEnum MapDocInfoFieldName(enum FieldIdEnum nToken); 216 static enum ::xmloff::token::XMLTokenEnum MapReferenceSource(sal_Int16 nType); 217 static enum ::xmloff::token::XMLTokenEnum MapReferenceType(sal_Int16 nType); 218 static enum ::xmloff::token::XMLTokenEnum MapCountFieldName(FieldIdEnum nToken); 219 static enum ::xmloff::token::XMLTokenEnum MapBibliographyFieldName(::rtl::OUString sName); 220 static enum ::xmloff::token::XMLTokenEnum MapMeasureKind(sal_Int16 nKind); 221 enum ::xmloff::token::XMLTokenEnum MapPageNumberName(const ::com::sun::star::uno::Reference< 222 ::com::sun::star::beans::XPropertySet> & xPropSet, 223 sal_Int32& nOffset); /// also adjust page offset 224 enum ::xmloff::token::XMLTokenEnum MapAuthorFieldName(const ::com::sun::star::uno::Reference < 225 ::com::sun::star::beans::XPropertySet > & xPropSet); 226 enum ::xmloff::token::XMLTokenEnum MapSenderFieldName(const ::com::sun::star::uno::Reference < 227 ::com::sun::star::beans::XPropertySet > & xPropSet); 228 229 protected: 230 231 SvXMLExport& GetExport() { return rExport; } 232 233 /// export a field after <text:span> is already written 234 void ExportFieldHelper( 235 const ::com::sun::star::uno::Reference< 236 ::com::sun::star::text::XTextField> & rTextField, 237 const ::com::sun::star::uno::Reference< 238 ::com::sun::star::beans::XPropertySet> & rPropSet, 239 const ::com::sun::star::uno::Reference< 240 ::com::sun::star::beans::XPropertySet> & rRangePropSet, 241 enum FieldIdEnum nToken, 242 sal_Bool bProgress ); 243 244 /// export an empty element 245 void ExportElement(enum ::xmloff::token::XMLTokenEnum eElement, /// element token 246 sal_Bool bAddSpace = sal_False); /// add blanks around 247 /// element? 248 249 /// export an element with string content 250 void ExportElement(enum ::xmloff::token::XMLTokenEnum eElement, /// element token 251 const ::rtl::OUString& sContent, /// element content 252 sal_Bool bAddSpace = sal_False); /// add blanks around 253 /// element? 254 255 /// export a macro (as used in the macro field) 256 void ExportMacro( const ::com::sun::star::uno::Reference< 257 ::com::sun::star::beans::XPropertySet> & rPropSet, 258 const ::rtl::OUString& rContent); 259 260 /// export text:meta-field (RDF metadata) 261 void ExportMetaField( const ::com::sun::star::uno::Reference< 262 ::com::sun::star::beans::XPropertySet> & i_xMeta, 263 bool i_bAutoStyles, sal_Bool i_bProgress ); 264 265 /// export a boolean attribute 266 void ProcessBoolean( 267 enum ::xmloff::token::XMLTokenEnum eXmlName, /// attribute token (namespace text) 268 sal_Bool bBool, /// attribute value 269 sal_Bool bDefault); /// attribute default; omit, if attribute differs 270 271 /// export an integer attribute 272 void ProcessInteger( 273 enum ::xmloff::token::XMLTokenEnum eXmlName, /// attribute token (namespace text) 274 sal_Int32 nNum); /// attribute value 275 276 /// export an integer attribute, omit if default 277 void ProcessIntegerDef( 278 enum ::xmloff::token::XMLTokenEnum eXmlName, /// attribute token (namespace text) 279 sal_Int32 nNum, /// attribute value 280 sal_Int32 nDefault); /// default value 281 282 /// export a string attribute 283 void ProcessString( 284 enum ::xmloff::token::XMLTokenEnum eXmlName, /// attribute token (namespace text) 285 const ::rtl::OUString& sValue, /// attribute value 286 sal_Bool bOmitEmpty = sal_False, /// omit attribute, if value is empty 287 sal_uInt16 nPrefix = XML_NAMESPACE_TEXT); /// attribute name prefix 288 289 /// export a string attribute taht gets a QName value 290 void ProcessString( 291 enum ::xmloff::token::XMLTokenEnum eXmlName, /// attribute token (namespace text) 292 sal_uInt16 nValuePrefix, 293 const ::rtl::OUString& sValue, /// attribute value 294 sal_Bool bOmitEmpty = sal_False, /// omit attribute, if value is empty 295 sal_uInt16 nPrefix = XML_NAMESPACE_TEXT); /// attribute name prefix 296 297 298 /// export a string attribute, omit if default 299 void ProcessString( 300 enum ::xmloff::token::XMLTokenEnum eXmlName, /// attribute token (namespace text) 301 const ::rtl::OUString& sValue, /// attribute value 302 const ::rtl::OUString& sDefault, /// default value; omit if equal 303 sal_uInt16 nPrefix = XML_NAMESPACE_TEXT); /// attribute name prefix 304 305 /// export a string attribute, omit if default 306 void ProcessString( 307 enum ::xmloff::token::XMLTokenEnum eXmlName, /// attribute token (namespace text) 308 sal_uInt16 nValuePrefix, 309 const ::rtl::OUString& sValue, /// attribute value 310 const ::rtl::OUString& sDefault, /// default value; omit if equal 311 sal_uInt16 nPrefix = XML_NAMESPACE_TEXT); /// attribute name prefix 312 313 /// export a string attribute 314 void ProcessString( 315 enum ::xmloff::token::XMLTokenEnum eXmlName, /// attribute token (namespace text) 316 enum ::xmloff::token::XMLTokenEnum eValue, /// attribute token 317 sal_Bool bOmitEmpty = sal_False, /// omit attribute, if value is empty 318 sal_uInt16 nPrefix = XML_NAMESPACE_TEXT); /// attribute name prefix 319 320 /// export a string attribute, omit if default 321 void ProcessString( 322 enum ::xmloff::token::XMLTokenEnum eXmlName, /// attribute token (namespace text) 323 enum ::xmloff::token::XMLTokenEnum eValue, /// attribute value token 324 enum ::xmloff::token::XMLTokenEnum eDefault, /// default value token 325 sal_uInt16 nPrefix = XML_NAMESPACE_TEXT); /// attribute name prefix 326 327 /// export a string as a sequence of paragraphs 328 void ProcessParagraphSequence( 329 /// string containing the paragraphs 330 const ::rtl::OUString& sParagraphSequence); 331 332 /// export a numbering format (numeric, roman, alphabetic, etc.) 333 void ProcessNumberingType( 334 sal_Int16 nNumberingType); /// numbering type key 335 336 /// export display attribute (value, formula, none) 337 void ProcessDisplay(sal_Bool bIsVisible, /// is visible? 338 sal_Bool bIsCommand, /// is show command/show name? 339 sal_Bool bDefault = sal_True); /// omit, if default 340 341 /// export all data-style related attributes 342 void ProcessValueAndType( 343 sal_Bool bIsString, /// do we process a string or a number? 344 sal_Int32 nFormatKey, /// format key for NumberFormatter; possibly -1 345 const ::rtl::OUString& sContent, /// string content; possibly invalid 346 const ::rtl::OUString& sDefault, /// default string 347 double fValue, /// float content; possibly invalid 348 sal_Bool bExportValue, /// export value attribute? 349 sal_Bool bExportValueType, /// export value-type attribute? 350 sal_Bool bExportStyle, /// export style-sttribute? 351 sal_Bool bForceSystemLanguage, /// no style language export 352 sal_Bool bTimeStyle = sal_False); /// exporting a time style? 353 354 /// export times, dates and durations according to ISO 8601 355 void ProcessDateTime( 356 enum ::xmloff::token::XMLTokenEnum eXMLName, /// attribute token 357 double dValue, /// date/time value 358 sal_Bool bIsDate, /// export as date (rather than date/time)? 359 sal_Bool bIsDuration = sal_False, /// export as duration 360 sal_Bool bOmitDurationIfZero = sal_True, /// omit zero-length durat. 361 sal_uInt16 nPrefix = XML_NAMESPACE_TEXT); /// attribute name prefix 362 363 /// export a date, time, or duration 364 void ProcessDateTime( 365 enum ::xmloff::token::XMLTokenEnum eXMLName, /// attribute token 366 sal_Int32 nMinutes, /// date/time value in minutes 367 sal_Bool bIsDate, /// export as date? 368 sal_Bool bIsDuration, /// export as duration? 369 sal_Bool bOmitDurationIfZero, /// omit zero-length durations 370 sal_uInt16 nPrefix = XML_NAMESPACE_TEXT); /// attribute name prefix 371 372 /// export times, dates and durations according to ISO 8601 373 void ProcessDateTime( 374 enum ::xmloff::token::XMLTokenEnum eXMLName, /// attribute token 375 const ::com::sun::star::util::DateTime& rTime, /// date/time value 376 sal_Bool bIsDate, /// export as date (rather than date/time)? 377 sal_uInt16 nPrefix = XML_NAMESPACE_TEXT); /// attribute name prefix 378 379 /// export date according to ISO 8601 380 void ProcessDate( 381 enum ::xmloff::token::XMLTokenEnum eXMLName, /// attribute token 382 const ::com::sun::star::util::Date& rTime, /// date value 383 sal_uInt16 nPrefix = XML_NAMESPACE_TEXT); /// attribute name prefix 384 385 /// export all attributes for bibliography data fields 386 void ProcessBibliographyData( 387 const ::com::sun::star::uno::Reference < 388 ::com::sun::star::beans::XPropertySet > & rPropertySet); 389 390 /// export CommandTypeAttribute 391 void ProcessCommandType( 392 sal_Int32 nCommandType); /// com::sun::star::sdb::CommandType 393 394 void ProcessStringSequence( 395 const ::com::sun::star::uno::Sequence<rtl::OUString>& rSequence, 396 const rtl::OUString sSelected ); 397 398 void ProcessStringSequence( 399 const ::com::sun::star::uno::Sequence<rtl::OUString>& rSequence, 400 sal_Int32 nSelected ); 401 402 /// export attributes that describe a data source 403 void ExportDataBaseElement( 404 enum ::xmloff::token::XMLTokenEnum eElement, 405 const ::rtl::OUString& sContent, 406 const ::com::sun::star::uno::Reference < 407 ::com::sun::star::beans::XPropertySet > & rPropertySet, 408 const ::com::sun::star::uno::Reference < 409 ::com::sun::star::beans::XPropertySetInfo > & rPropertySetInfo ); 410 411 /// for XDependentTextFields, get PropertySet of FieldMaster 412 ::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySet > 413 GetMasterPropertySet(const ::com::sun::star::uno::Reference < 414 ::com::sun::star::text::XTextField > & rTextField); 415 416 /// get PropertySet of (any) DependentTextField for this FieldMaster 417 sal_Bool GetDependentFieldPropertySet( 418 const ::com::sun::star::uno::Reference< 419 ::com::sun::star::beans::XPropertySet> & xmaster, 420 ::com::sun::star::uno::Reference< 421 ::com::sun::star::beans::XPropertySet> & xField); 422 423 424 /// get field ID from XTextField (and it's Property-Set) 425 enum FieldIdEnum GetFieldID(const ::com::sun::star::uno::Reference < 426 ::com::sun::star::text::XTextField > & rTextField, 427 const ::com::sun::star::uno::Reference < 428 ::com::sun::star::beans::XPropertySet > & xPropSet); 429 430 /// get field ID from XTextField service name (and it's PropertySet) 431 enum FieldIdEnum MapFieldName(const ::rtl::OUString& sFieldName, 432 const ::com::sun::star::uno::Reference < 433 ::com::sun::star::beans::XPropertySet> & xPropSet); 434 435 /// determine, whether field has string or numeric content 436 sal_Bool IsStringField(FieldIdEnum nFieldType, /// field ID 437 const ::com::sun::star::uno::Reference < 438 ::com::sun::star::beans::XPropertySet > & xPropSet); 439 440 441 /// explode a field master name into field type and field name 442 sal_Bool ExplodeFieldMasterName( 443 const ::rtl::OUString& sMasterName, /// name as returned by SO API 444 ::rtl::OUString& sFieldType, /// out: field type 445 ::rtl::OUString& sVarName); /// out: variable name 446 447 /// make reference name for a foot- or endnote 448 static ::rtl::OUString MakeFootnoteRefName(sal_Int16 nSeqNo); 449 450 /// make reference name for a sequence field 451 static ::rtl::OUString MakeSequenceRefName(sal_Int16 nSeqNo, 452 const ::rtl::OUString& rSeqName); 453 454 private: 455 // constants 456 457 // service names 458 const ::rtl::OUString sServicePrefix; 459 const ::rtl::OUString sFieldMasterPrefix; 460 const ::rtl::OUString sPresentationServicePrefix; 461 462 // property names 463 const ::rtl::OUString sPropertyAdjust; 464 const ::rtl::OUString sPropertyAuthor; 465 const ::rtl::OUString sPropertyChapterFormat; 466 const ::rtl::OUString sPropertyChapterNumberingLevel; 467 const ::rtl::OUString sPropertyCharStyleNames; 468 const ::rtl::OUString sPropertyCondition; 469 const ::rtl::OUString sPropertyContent; 470 const ::rtl::OUString sPropertyDataBaseName; 471 const ::rtl::OUString sPropertyDataBaseURL; 472 const ::rtl::OUString sPropertyDataColumnName; 473 const ::rtl::OUString sPropertyDataCommandType; 474 const ::rtl::OUString sPropertyDataTableName; 475 const ::rtl::OUString sPropertyDate; 476 const ::rtl::OUString sPropertyDateTime; 477 const ::rtl::OUString sPropertyDateTimeValue; 478 const ::rtl::OUString sPropertyDDECommandElement; 479 const ::rtl::OUString sPropertyDDECommandFile; 480 const ::rtl::OUString sPropertyDDECommandType; 481 const ::rtl::OUString sPropertyDependentTextFields; 482 const ::rtl::OUString sPropertyFalseContent; 483 const ::rtl::OUString sPropertyFields; 484 const ::rtl::OUString sPropertyFieldSubType; 485 const ::rtl::OUString sPropertyFileFormat; 486 const ::rtl::OUString sPropertyFullName; 487 const ::rtl::OUString sPropertyHint; 488 const ::rtl::OUString sPropertyInstanceName; 489 const ::rtl::OUString sPropertyIsAutomaticUpdate; 490 const ::rtl::OUString sPropertyIsConditionTrue; 491 const ::rtl::OUString sPropertyIsDataBaseFormat; 492 const ::rtl::OUString sPropertyIsDate; 493 const ::rtl::OUString sPropertyIsExpression; 494 const ::rtl::OUString sPropertyIsFixed; 495 const ::rtl::OUString sPropertyIsFixedLanguage; 496 const ::rtl::OUString sPropertyIsHidden; 497 const ::rtl::OUString sPropertyIsInput; 498 const ::rtl::OUString sPropertyIsShowFormula; 499 const ::rtl::OUString sPropertyIsVisible; 500 const ::rtl::OUString sPropertyItems; 501 const ::rtl::OUString sPropertyLevel; 502 const ::rtl::OUString sPropertyMacro; 503 const ::rtl::OUString sPropertyMeasureKind; 504 const ::rtl::OUString sPropertyName; 505 const ::rtl::OUString sPropertyNumberFormat; 506 const ::rtl::OUString sPropertyNumberingSeparator; 507 const ::rtl::OUString sPropertyNumberingType; 508 const ::rtl::OUString sPropertyOffset; 509 const ::rtl::OUString sPropertyOn; 510 const ::rtl::OUString sPropertyPlaceholder; 511 const ::rtl::OUString sPropertyPlaceholderType; 512 const ::rtl::OUString sPropertyReferenceFieldPart; 513 const ::rtl::OUString sPropertyReferenceFieldSource; 514 const ::rtl::OUString sPropertyReferenceFieldType; 515 const ::rtl::OUString sPropertyRevision; 516 const ::rtl::OUString sPropertyScriptType; 517 const ::rtl::OUString sPropertySelectedItem; 518 const ::rtl::OUString sPropertySequenceNumber; 519 const ::rtl::OUString sPropertySequenceValue; 520 const ::rtl::OUString sPropertySetNumber; 521 const ::rtl::OUString sPropertySourceName; 522 const ::rtl::OUString sPropertySubType; 523 const ::rtl::OUString sPropertyTargetFrame; 524 const ::rtl::OUString sPropertyTrueContent; 525 const ::rtl::OUString sPropertyURL; 526 const ::rtl::OUString sPropertyURLContent; 527 const ::rtl::OUString sPropertyUserText; 528 const ::rtl::OUString sPropertyValue; 529 const ::rtl::OUString sPropertyVariableName; 530 const ::rtl::OUString sPropertyVariableSubType; 531 const ::rtl::OUString sPropertyHelp; 532 const ::rtl::OUString sPropertyTooltip; 533 const ::rtl::OUString sPropertyTextRange; 534 535 const ::rtl::OUString sEmpty; 536 537 XMLPropertyState* pCombinedCharactersPropertyState; 538 539 }; 540 541 542 543 544 545 546 #endif 547