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 24 #ifndef _ATTRIBUTEOUTPUTBASE_HXX_ 25 #define _ATTRIBUTEOUTPUTBASE_HXX_ 26 27 #include "fields.hxx" 28 #include "WW8TableInfo.hxx" 29 30 #include <rtl/textenc.h> 31 #include <editeng/svxenum.hxx> 32 #include <tools/solar.h> 33 34 #include <swtypes.hxx> 35 #include <wrtswtbl.hxx> 36 #include <fldbas.hxx> 37 38 #include <vector> 39 40 class Point; 41 class SvxCaseMapItem; 42 class SvxColorItem; 43 class SvxContourItem; 44 class SvxCrossedOutItem; 45 class SvxEscapementItem; 46 class SvxFontItem; 47 class SvxFontHeightItem; 48 class SvxKerningItem; 49 class SvxLanguageItem; 50 class SvxPostureItem; 51 class SvxShadowedItem; 52 class SvxUnderlineItem; 53 class SvxWeightItem; 54 class SvxAutoKernItem; 55 class SvxBlinkItem; 56 class SvxBrushItem; 57 class SvxFontItem; 58 class SvxFontHeightItem; 59 class SvxLanguageItem; 60 class SvxPostureItem; 61 class SvxWeightItem; 62 class SvxFontItem; 63 class SvxFontHeightItem; 64 class SvxLanguageItem; 65 class SvxPostureItem; 66 class SvxWeightItem; 67 class SvxCharRotateItem; 68 class SvxEmphasisMarkItem; 69 class SvxTwoLinesItem; 70 class SvxCharScaleWidthItem; 71 class SvxCharReliefItem; 72 class SvxCharHiddenItem; 73 class SwFmtINetFmt; 74 class SwFmtCharFmt; 75 class SwFmtFld; 76 class SwFmtFlyCnt; 77 class SwFmtFtn; 78 class SwFmtHardBlank; 79 class SvxLineSpacingItem; 80 class SvxAdjustItem; 81 class SvxFmtSplitItem; 82 class SvxWidowsItem; 83 class SvxTabStopItem; 84 class SvxHyphenZoneItem; 85 class SwNumRuleItem; 86 class SfxBoolItem; 87 class SfxPoolItem; 88 class SfxItemSet; 89 class SvxParaVertAlignItem; 90 class SvxParaGridItem; 91 class SwFmtFrmSize; 92 class SvxPaperBinItem; 93 class SvxLRSpaceItem; 94 class SvxULSpaceItem; 95 class SwFmtPageDesc; 96 class SvxFmtBreakItem; 97 class SwFmtSurround; 98 class SwFmtVertOrient; 99 class SwFmtHoriOrient; 100 class SwFmtAnchor; 101 class SvxBrushItem; 102 class SvxBoxItem; 103 class SwFmtCol; 104 class SvxFmtKeepItem; 105 class SwTextGridItem; 106 class SwFmtLineNumber; 107 class SvxFrameDirectionItem; 108 class SwFmtRuby; 109 class SwTxtNode; 110 class SwTOXMark; 111 class SwRedlineData; 112 class SwSection; 113 class SwFmtDrop; 114 class SwFrmFmt; 115 class SwNumFmt; 116 class SwFmt; 117 class SwTableNode; 118 struct WW8_SepInfo; 119 struct WW8_PdAttrDesc; 120 class SwLineNumberInfo; 121 class SwNumRule; 122 class wwFont; 123 124 class String; 125 126 class MSWordExportBase; 127 128 namespace sw { class Frame; } 129 130 namespace msword { 131 const sal_uInt8 ColumnBreak = 0xE; 132 const sal_uInt8 PageBreak = 0xC; 133 } 134 135 class AttributeOutputBase 136 { 137 public: 138 /// Export the state of RTL/CJK. 139 virtual void RTLAndCJKState( bool bIsRTL, sal_uInt16 nScript ) = 0; 140 141 /// Start of the paragraph. 142 virtual void StartParagraph( ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo ) = 0; 143 144 /// End of the paragraph. 145 virtual void EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner ) = 0; 146 147 /// Called before we start outputting the attributes. 148 virtual void StartParagraphProperties( const SwTxtNode& rNode ) = 0; 149 150 /// Called after we end outputting the attributes. 151 virtual void EndParagraphProperties() = 0; 152 153 /// Empty paragraph. 154 virtual void EmptyParagraph() = 0; 155 156 /// Start of the text run. 157 virtual void StartRun( const SwRedlineData* pRedlineData ) = 0; 158 159 /// End of the text run. 160 virtual void EndRun() = 0; 161 162 /// Called before we start outputting the attributes. 163 virtual void StartRunProperties() = 0; 164 165 /// Called after we end outputting the attributes. 166 virtual void EndRunProperties( const SwRedlineData* pRedlineData ) = 0; 167 168 /// for docx w:commentRangeStart WritePostitFieldStart()169 virtual void WritePostitFieldStart() {}; 170 171 /// for docx w:commentRangeEnd WritePostitFieldEnd()172 virtual void WritePostitFieldEnd() {}; 173 174 /// Output text (inside a run). 175 virtual void RunText( const String& rText, rtl_TextEncoding eCharSet ) = 0; 176 177 /// Output text (without markup). 178 virtual void RawText( const String& rText, bool bForceUnicode, rtl_TextEncoding eCharSet ) = 0; 179 180 /// Output ruby start. 181 virtual void StartRuby( const SwTxtNode& rNode, const SwFmtRuby& rRuby ) = 0; 182 183 /// Output ruby end. 184 virtual void EndRuby() = 0; 185 186 /// Output URL start. 187 virtual bool StartURL( const String& rUrl, const String& rTarget ) = 0; 188 189 /// Output URL end. 190 virtual bool EndURL() = 0; 191 192 virtual void FieldVanish( const String& rTxt, ww::eField eType ) = 0; 193 194 void StartTOX( const SwSection& rSect ); 195 196 void EndTOX( const SwSection& rSect,bool bCareEnd=true ); 197 OnTOXEnding()198 virtual void OnTOXEnding() {} 199 200 virtual void TOXMark( const SwTxtNode& rNode, const SwTOXMark& rAttr ); 201 202 /// Output redlining. 203 virtual void Redline( const SwRedlineData* pRedline ) = 0; 204 205 virtual void FormatDrop( const SwTxtNode& rNode, const SwFmtDrop& rSwFmtDrop, sal_uInt16 nStyle, ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo, ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner ) = 0; 206 207 /// Output FKP (Formatted disK Page) - necessary for binary formats only. 208 /// FIXME having it in AttributeOutputBase is probably a hack, it 209 /// should be in WW8AttributeOutput only... OutputFKP()210 virtual void OutputFKP() {} 211 212 /// Output style. 213 virtual void ParagraphStyle( sal_uInt16 nStyle ) = 0; 214 215 virtual void TableInfoCell( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0; 216 217 virtual void TableInfoRow( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0; 218 219 virtual void TableDefinition( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0; 220 221 virtual void TableDefaultBorders( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0; 222 223 virtual void TableBackgrounds( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0; 224 225 virtual void TableHeight( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0; 226 227 virtual void TableCanSplit( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0; 228 229 virtual void TableBidi( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0; 230 231 virtual void TableVerticalCell( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0; 232 233 virtual void TableNodeInfo( ww8::WW8TableNodeInfo::Pointer_t pNodeInfo ) = 0; 234 235 virtual void TableNodeInfoInner( ww8::WW8TableNodeInfoInner::Pointer_t pNodeInfoInner ) = 0; 236 237 virtual void TableOrientation( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) = 0; 238 239 virtual void TableSpacing( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) = 0; 240 241 virtual void TableRowEnd( sal_uInt32 nDepth ) = 0; 242 243 /// Start of the styles table. 244 virtual void StartStyles() = 0; 245 246 /// End of the styles table. 247 virtual void EndStyles( sal_uInt16 nNumberOfStyles ) = 0; 248 249 /// Write default style. 250 virtual void DefaultStyle( sal_uInt16 nStyle ) = 0; 251 252 /// Start of a style in the styles table. 253 virtual void StartStyle( const String& rName, bool bPapFmt, 254 sal_uInt16 nBase, sal_uInt16 nNext, sal_uInt16 nWwId, sal_uInt16 nId ) = 0; 255 256 /// End of a style in the styles table. 257 virtual void EndStyle() = 0; 258 259 /// Start of (paragraph or run) properties of a style. 260 virtual void StartStyleProperties( bool bParProp, sal_uInt16 nStyle ) = 0; 261 262 /// End of (paragraph or run) properties of a style. 263 virtual void EndStyleProperties( bool bParProp ) = 0; 264 265 /// Numbering rule and Id. 266 virtual void OutlineNumbering( sal_uInt8 nLvl, const SwNumFmt& rNFmt, const SwFmt& rFmt ) = 0; 267 268 /// Page break 269 /// As a paragraph property - the paragraph should be on the next page. 270 virtual void PageBreakBefore( bool bBreak ) = 0; 271 272 /// Write a section break 273 /// msword::ColumnBreak or msword::PageBreak 274 virtual void SectionBreak( sal_uInt8 nC, const WW8_SepInfo* pSectionInfo = NULL ) = 0; 275 276 /// Start of the section properties. 277 virtual void StartSection() = 0; 278 279 /// End of the section properties. 280 virtual void EndSection() = 0; 281 282 /// Protection of forms. 283 virtual void SectionFormProtection( bool bProtected ) = 0; 284 285 /// Numbering of the lines in the document. 286 virtual void SectionLineNumbering( sal_uLong nRestartNo, const SwLineNumberInfo& rLnNumInfo ) = 0; 287 288 /// Has different headers/footers for the title page. 289 virtual void SectionTitlePage() = 0; 290 291 /// Description of the page borders. 292 virtual void SectionPageBorders( const SwFrmFmt* pFmt, const SwFrmFmt* pFirstPageFmt ) = 0; 293 294 /// Columns populated from right/numbers on the right side? 295 virtual void SectionBiDi( bool bBiDi ) = 0; 296 297 /// The style of the page numbers. 298 /// 299 /// nPageRestartNumberr being 0 means no restart. 300 virtual void SectionPageNumbering( sal_uInt16 nNumType, sal_uInt16 nPageRestartNumber ) = 0; 301 302 /// The type of breaking. 303 virtual void SectionType( sal_uInt8 nBreakCode ) = 0; 304 305 /// Special header/footer flags, needed for old versions only. SectionWW6HeaderFooterFlags(sal_uInt8)306 virtual void SectionWW6HeaderFooterFlags( sal_uInt8 /*nHeadFootFlags*/ ) {} 307 308 /// Definition of a numbering instance. 309 virtual void NumberingDefinition( sal_uInt16 nId, const SwNumRule &rRule ) = 0; 310 311 /// Start of the abstract numbering definition instance. StartAbstractNumbering(sal_uInt16)312 virtual void StartAbstractNumbering( sal_uInt16 /*nId*/ ) {} 313 314 /// End of the abstract numbering definition instance. EndAbstractNumbering()315 virtual void EndAbstractNumbering() {} 316 317 /// All the numbering level information. 318 virtual void NumberingLevel( sal_uInt8 nLevel, 319 sal_uInt16 nStart, 320 sal_uInt16 nNumberingType, 321 SvxAdjust eAdjust, 322 const sal_uInt8 *pNumLvlPos, 323 sal_uInt8 nFollow, 324 const wwFont *pFont, 325 const SfxItemSet *pOutSet, 326 sal_Int16 nIndentAt, 327 sal_Int16 nFirstLineIndex, 328 sal_Int16 nListTabPos, 329 const String &rNumberingString , 330 const SvxBrushItem* pBrush = 0) = 0;//For i120928,to export graphic of bullet 331 332 protected: 333 334 void GetNumberPara( String& rStr, const SwField& rFld ); 335 336 /// Output frames - the implementation. 337 virtual void OutputFlyFrame_Impl( const sw::Frame& rFmt, const Point& rNdTopLeft ) = 0; 338 339 /// Sfx item Sfx item RES_CHRATR_CASEMAP 340 virtual void CharCaseMap( const SvxCaseMapItem& ) = 0; 341 342 /// Sfx item Sfx item RES_CHRATR_COLOR 343 virtual void CharColor( const SvxColorItem& ) = 0; 344 345 /// Sfx item Sfx item RES_CHRATR_CONTOUR 346 virtual void CharContour( const SvxContourItem& ) = 0; 347 348 /// Sfx item RES_CHRATR_CROSSEDOUT 349 virtual void CharCrossedOut( const SvxCrossedOutItem& ) = 0; 350 351 /// Sfx item RES_CHRATR_ESCAPEMENT 352 virtual void CharEscapement( const SvxEscapementItem& ) = 0; 353 354 /// Sfx item RES_CHRATR_FONT 355 virtual void CharFont( const SvxFontItem& ) = 0; 356 357 /// Sfx item RES_CHRATR_FONTSIZE 358 virtual void CharFontSize( const SvxFontHeightItem& ) = 0; 359 360 /// Sfx item RES_CHRATR_KERNING 361 virtual void CharKerning( const SvxKerningItem& ) = 0; 362 363 /// Sfx item RES_CHRATR_LANGUAGE 364 virtual void CharLanguage( const SvxLanguageItem& ) = 0; 365 366 /// Sfx item RES_CHRATR_POSTURE 367 virtual void CharPosture( const SvxPostureItem& ) = 0; 368 369 /// Sfx item RES_CHRATR_SHADOWED 370 virtual void CharShadow( const SvxShadowedItem& ) = 0; 371 372 /// Sfx item RES_CHRATR_UNDERLINE 373 virtual void CharUnderline( const SvxUnderlineItem& ) = 0; 374 375 /// Sfx item RES_CHRATR_WEIGHT 376 virtual void CharWeight( const SvxWeightItem& ) = 0; 377 378 /// Sfx item RES_CHRATR_AUTOKERN 379 virtual void CharAutoKern( const SvxAutoKernItem& ) = 0; 380 381 /// Sfx item RES_CHRATR_BLINK 382 virtual void CharAnimatedText( const SvxBlinkItem& ) = 0; 383 384 /// Sfx item RES_CHRATR_BACKGROUND 385 virtual void CharBackground( const SvxBrushItem& ) = 0; 386 387 /// Sfx item RES_CHRATR_CJK_FONT 388 virtual void CharFontCJK( const SvxFontItem& ) = 0; 389 390 /// Sfx item RES_CHRATR_CJK_FONTSIZE 391 virtual void CharFontSizeCJK( const SvxFontHeightItem& ) = 0; 392 393 /// Sfx item RES_CHRATR_CJK_LANGUAGE 394 virtual void CharLanguageCJK( const SvxLanguageItem& ) = 0; 395 396 /// Sfx item RES_CHRATR_CJK_POSTURE 397 virtual void CharPostureCJK( const SvxPostureItem& ) = 0; 398 399 /// Sfx item RES_CHRATR_CJK_WEIGHT 400 virtual void CharWeightCJK( const SvxWeightItem& ) = 0; 401 402 /// Sfx item RES_CHRATR_CTL_FONT 403 virtual void CharFontCTL( const SvxFontItem& ) = 0; 404 405 /// Sfx item RES_CHRATR_CTL_FONTSIZE 406 virtual void CharFontSizeCTL( const SvxFontHeightItem& ) = 0; 407 408 /// Sfx item RES_CHRATR_CTL_LANGUAGE 409 virtual void CharLanguageCTL( const SvxLanguageItem& ) = 0; 410 411 /// Sfx item RES_CHRATR_CTL_POSTURE 412 virtual void CharPostureCTL( const SvxPostureItem& ) = 0; 413 414 /// Sfx item RES_CHRATR_CTL_WEIGHT 415 virtual void CharWeightCTL( const SvxWeightItem& ) = 0; 416 417 /// Sfx item RES_CHRATR_BidiRTL 418 virtual void CharBidiRTL( const SfxPoolItem& ) = 0; 419 420 /// Sfx item RES_CHRATR_IdctHint 421 virtual void CharIdctHint( const SfxPoolItem& ) = 0; 422 /// Sfx item RES_CHRATR_ROTATE 423 virtual void CharRotate( const SvxCharRotateItem& ) = 0; 424 425 /// Sfx item RES_CHRATR_EMPHASIS_MARK 426 virtual void CharEmphasisMark( const SvxEmphasisMarkItem& ) = 0; 427 428 /// Sfx item RES_CHRATR_TWO_LINES 429 virtual void CharTwoLines( const SvxTwoLinesItem& ) = 0; 430 431 /// Sfx item RES_CHRATR_SCALEW 432 virtual void CharScaleWidth( const SvxCharScaleWidthItem& ) = 0; 433 434 /// Sfx item RES_CHRATR_RELIEF 435 virtual void CharRelief( const SvxCharReliefItem& ) = 0; 436 437 /// Sfx item RES_CHRATR_HIDDEN 438 virtual void CharHidden( const SvxCharHiddenItem& ) = 0; 439 440 /// Sfx item RES_TXTATR_INETFMT 441 virtual void TextINetFormat( const SwFmtINetFmt& ) = 0; 442 443 /// Sfx item RES_TXTATR_CHARFMT 444 virtual void TextCharFormat( const SwFmtCharFmt& ) = 0; 445 446 /// Sfx item RES_TXTATR_FIELD, RES_TXTATR_ANNOTATION and RES_TXTATR_INPUTFIELD 447 void TextField( const SwFmtFld& ); 448 449 /// Sfx item RES_TXTATR_FLYCNT 450 virtual void TextFlyContent( const SwFmtFlyCnt& ); 451 452 /// Sfx item RES_TXTATR_FTN 453 /// 454 /// This one is common for both WW8AttributeOutput as well as 455 /// DocxAttributeOutput. 456 void TextFootnote( const SwFmtFtn& ); 457 458 /// Sfx item RES_TXTATR_FTN 459 virtual void TextFootnote_Impl( const SwFmtFtn& ) = 0; 460 461 /// Sfx item RES_PARATR_LINESPACING 462 void ParaLineSpacing( const SvxLineSpacingItem& ); 463 464 /// Count the values in ParaLineSpacing, and pass theme here. 465 virtual void ParaLineSpacing_Impl( short nSpace, short nMulti ) = 0; 466 467 /// Sfx item RES_PARATR_ADJUST 468 virtual void ParaAdjust( const SvxAdjustItem& ) = 0; 469 470 /// Sfx item RES_PARATR_SPLIT 471 virtual void ParaSplit( const SvxFmtSplitItem& ) = 0; 472 473 /// Sfx item RES_PARATR_WIDOWS 474 virtual void ParaWidows( const SvxWidowsItem& ) = 0; 475 476 /// Sfx item RES_PARATR_TABSTOP 477 virtual void ParaTabStop( const SvxTabStopItem& ) = 0; 478 479 /// Sfx item RES_PARATR_HYPHENZONE 480 virtual void ParaHyphenZone( const SvxHyphenZoneItem& ) = 0; 481 482 /// Sfx item RES_PARATR_NUMRULE 483 void ParaNumRule( const SwNumRuleItem& ); 484 485 /// Numbering - the implementation. 486 virtual void ParaNumRule_Impl( const SwTxtNode *pTxtNd, sal_Int32 nLvl, sal_Int32 nNumId ) = 0; 487 488 /// Sfx item RES_PARATR_SCRIPTSPACE 489 virtual void ParaScriptSpace( const SfxBoolItem& ) = 0; 490 491 /// Sfx item RES_PARATR_HANGINGPUNCTUATION ParaHangingPunctuation(const SfxBoolItem & rHt)492 void ParaHangingPunctuation( const SfxBoolItem& rHt ) { ParaScriptSpace( rHt ); }; 493 494 /// Sfx item RES_PARATR_FORBIDDEN_RULES ParaForbiddenRules(const SfxBoolItem & rHt)495 void ParaForbiddenRules( const SfxBoolItem& rHt ) { ParaScriptSpace( rHt ); }; 496 497 /// Sfx item RES_PARATR_VERTALIGN 498 virtual void ParaVerticalAlign( const SvxParaVertAlignItem& ) = 0; 499 500 /// Sfx item RES_PARATR_SNAPTOGRID 501 virtual void ParaSnapToGrid( const SvxParaGridItem& ) = 0; 502 503 /// Sfx item RES_FRM_SIZE 504 virtual void FormatFrameSize( const SwFmtFrmSize& ) = 0; 505 506 /// Sfx item RES_PAPER_BIN 507 virtual void FormatPaperBin( const SvxPaperBinItem& ) = 0; 508 509 /// Sfx item RES_LR_SPACE 510 virtual void FormatLRSpace( const SvxLRSpaceItem& ) = 0; 511 512 /// Sfx item RES_UL_SPACE 513 virtual void FormatULSpace( const SvxULSpaceItem& ) = 0; 514 515 /// Sfx item RES_PAGEDESC 516 void FormatPageDescription( const SwFmtPageDesc& ); 517 518 /// Sfx item RES_BREAK 519 void FormatBreak( const SvxFmtBreakItem& ); 520 521 /// Sfx item RES_SURROUND 522 virtual void FormatSurround( const SwFmtSurround& ) = 0; 523 524 /// Sfx item RES_VERT_ORIENT 525 virtual void FormatVertOrientation( const SwFmtVertOrient& ) = 0; 526 527 /// Sfx item RES_HORI_ORIENT 528 virtual void FormatHorizOrientation( const SwFmtHoriOrient& ) = 0; 529 530 /// Sfx item RES_ANCHOR 531 virtual void FormatAnchor( const SwFmtAnchor& ) = 0; 532 533 /// Sfx item RES_BACKGROUND 534 virtual void FormatBackground( const SvxBrushItem& ) = 0; 535 536 /// Sfx item RES_BOX 537 virtual void FormatBox( const SvxBoxItem& ) = 0; 538 539 /// Sfx item RES_COL 540 void FormatColumns( const SwFmtCol& ); 541 542 virtual void FormatColumns_Impl( sal_uInt16 nCols, const SwFmtCol & rCol, bool bEven, SwTwips nPageSize ) = 0; 543 544 /// Sfx item RES_KEEP 545 virtual void FormatKeep( const SvxFmtKeepItem& ) = 0; 546 547 /// Sfx item RES_TEXTGRID 548 virtual void FormatTextGrid( const SwTextGridItem& ) = 0; 549 550 /// Sfx item RES_LINENUMBER 551 virtual void FormatLineNumbering( const SwFmtLineNumber& ) = 0; 552 553 /// Sfx item RES_FRAMEDIR 554 virtual void FormatFrameDirection( const SvxFrameDirectionItem& ) = 0; 555 556 /// Write the expanded field 557 virtual void WriteExpand( const SwField* pFld ) = 0; 558 559 virtual void RefField( const SwField& rFld, const String& rRef ) = 0; 560 virtual void HiddenField( const SwField& rFld ) = 0; 561 virtual void SetField( const SwField& rFld, ww::eField eType, const String& rCmd ) = 0; 562 virtual void PostitField( const SwField* pFld ) = 0; 563 virtual bool DropdownField( const SwField* pFld ) = 0; 564 565 virtual bool AnalyzeURL( const String& rUrl, const String& rTarget, String* pLinkURL, String* pMark ); 566 567 ww8::GridColsPtr GetGridCols( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ); 568 569 public: AttributeOutputBase()570 AttributeOutputBase() {} ~AttributeOutputBase()571 virtual ~AttributeOutputBase() {} 572 573 /// Return the right export class. 574 virtual MSWordExportBase& GetExport() = 0; 575 576 /// Call the right virtual function according to the type of the item. 577 void OutputItem( const SfxPoolItem& rHt ); 578 579 /// Use OutputItem() on an item set - for styles. 580 void OutputStyleItemSet( const SfxItemSet& rSet, sal_Bool bDeep, sal_Bool bTestForDefault ); 581 582 /// Output frames. 583 void OutputFlyFrame( const sw::Frame& rFmt ); 584 585 void GetTablePageSize 586 ( ww8::WW8TableNodeInfoInner * pTableTextNodeInfoInner, 587 sal_uInt32& rPageSize, bool& rRelBoxSize ); 588 589 }; 590 591 #endif // _ATTRIBUTEOUTPUTBASE_HXX_ 592 593 /* vi:set tabstop=4 shiftwidth=4 expandtab: */ 594