LibreOffice Module sw (master)  1
attributeoutputbase.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #ifndef INCLUDED_SW_SOURCE_FILTER_WW8_ATTRIBUTEOUTPUTBASE_HXX
21 #define INCLUDED_SW_SOURCE_FILTER_WW8_ATTRIBUTEOUTPUTBASE_HXX
22 
23 #include "fields.hxx"
24 #include "WW8TableInfo.hxx"
25 #include "wrtww8.hxx"
26 
27 #include <rtl/textenc.h>
28 #include <editeng/svxenum.hxx>
29 #include <tools/solar.h>
30 #include <boost/optional.hpp>
31 
32 #include <com/sun/star/drawing/TextVerticalAdjust.hpp>
33 #include <swtypes.hxx>
34 #include <wrtswtbl.hxx>
35 #include <fldbas.hxx>
37 #include <unotools/saveopt.hxx>
38 
39 #include <vector>
40 
41 class Point;
42 class SvxCaseMapItem;
43 class SvxColorItem;
44 class SvxContourItem;
45 class SvxCrossedOutItem;
46 class SvxEscapementItem;
47 class SvxFontItem;
48 class SvxFontHeightItem;
49 class SvxKerningItem;
50 class SvxLanguageItem;
51 class SvxPostureItem;
52 class SvxShadowedItem;
53 class SvxUnderlineItem;
54 class SvxWeightItem;
55 class SvxAutoKernItem;
56 class SvxBlinkItem;
57 class SvxBrushItem;
58 class XFillStyleItem;
59 class XFillGradientItem;
60 class SvxFontItem;
61 class SvxFontHeightItem;
62 class SvxLanguageItem;
63 class SvxPostureItem;
64 class SvxWeightItem;
65 class SvxFontItem;
66 class SvxFontHeightItem;
67 class SvxLanguageItem;
68 class SvxPostureItem;
69 class SvxWeightItem;
70 class SvxCharRotateItem;
72 class SvxTwoLinesItem;
74 class SvxCharReliefItem;
75 class SvxCharHiddenItem;
76 class SvxBoxItem;
77 class SwFormatINetFormat;
78 class SwFormatCharFormat;
79 class SwFormatField;
80 class SwFormatFlyCnt;
81 class SwFormatFootnote;
82 class SvxLineSpacingItem;
83 class SvxAdjustItem;
84 class SvxFormatSplitItem;
85 class SvxWidowsItem;
86 class SvxTabStopItem;
87 class SvxHyphenZoneItem;
88 class SwNumRuleItem;
89 class SfxBoolItem;
90 class SfxPoolItem;
91 class SfxItemSet;
93 class SvxParaGridItem;
94 class SwFormatFrameSize;
95 class SvxPaperBinItem;
96 class SvxLRSpaceItem;
97 class SvxULSpaceItem;
98 class SwFormatPageDesc;
99 class SvxFormatBreakItem;
100 class SwFormatSurround;
101 class SwFormatVertOrient;
102 class SwFormatHoriOrient;
103 class SwFormatAnchor;
104 class SvxBrushItem;
105 class SvxBoxItem;
106 class SwFormatCol;
107 class SvxFormatKeepItem;
108 class SwTextGridItem;
109 class SwFormatLineNumber;
111 class SfxGrabBagItem;
112 class SfxUInt16Item;
113 class SwFormatRuby;
114 class SwTextNode;
115 class SwTOXMark;
116 class SwRedlineData;
117 class SwSection;
118 class SwFormatDrop;
119 class SwFrameFormat;
120 class SwNumFormat;
121 class SwFormat;
122 struct WW8_SepInfo;
123 class SwLineNumberInfo;
124 class SwNumRule;
125 class wwFont;
126 
127 namespace editeng { class SvxBorderLine; }
128 
129 namespace rtl { class OUString; }
130 
131 class MSWordExportBase;
132 
133 namespace ww8 { class Frame; }
134 
135 namespace msword {
136  const sal_uInt8 ColumnBreak = 0xE;
137  const sal_uInt8 PageBreak = 0xC;
138 }
139 
142 {
146 };
147 
149 {
150 private:
152 
153  OUString ConvertURL( const OUString& rUrl, bool bAbsoluteOut );
154 
155 public:
157  virtual void RTLAndCJKState( bool bIsRTL, sal_uInt16 nScript ) = 0;
158 
160  virtual void StartParagraph( ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo ) = 0;
161 
163  virtual void EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner ) = 0;
164 
166  virtual void SectionBreaks(const SwNode& rNode) = 0;
167 
169  virtual void StartParagraphProperties() = 0;
170 
172  virtual void EndParagraphProperties(const SfxItemSet& rParagraphMarkerProperties, const SwRedlineData* pRedlineData, const SwRedlineData* pRedlineParagraphMarkerDeleted, const SwRedlineData* pRedlineParagraphMarkerInserted) = 0;
173 
175  virtual void EmptyParagraph() = 0;
176 
178  virtual void StartRun( const SwRedlineData* pRedlineData, sal_Int32 nPos, bool bSingleEmptyRun = false ) = 0;
179 
181  virtual void EndRun( const SwTextNode* pNode, sal_Int32 nPos, bool bLastRun = false ) = 0;
182 
184  virtual void StartRunProperties() = 0;
185 
187  virtual void EndRunProperties( const SwRedlineData* pRedlineData ) = 0;
188 
190  virtual bool FootnoteEndnoteRefTag() { return false; };
191 
193  virtual void SectFootnoteEndnotePr() {};
194 
196  virtual void WritePostitFieldReference() {};
197 
199  virtual void RunText( const OUString& rText, rtl_TextEncoding eCharSet = RTL_TEXTENCODING_UTF8 ) = 0;
200 
202  virtual void RawText(const OUString& rText, rtl_TextEncoding eCharSet) = 0;
203 
205  virtual void StartRuby( const SwTextNode& rNode, sal_Int32 nPos, const SwFormatRuby& rRuby ) = 0;
206 
208  virtual void EndRuby( const SwTextNode& rNode, sal_Int32 nPos ) = 0;
209 
211  virtual bool StartURL( const OUString& rUrl, const OUString& rTarget ) = 0;
212 
214  virtual bool EndURL(bool isAtEndOfParagraph) = 0;
215 
216  virtual void FieldVanish( const OUString& rText, ww::eField eType ) = 0;
217 
219  void GenerateBookmarksForSequenceField(const SwTextNode& rNode, SwWW8AttrIter& rAttrIter);
220 
221  void StartTOX( const SwSection& rSect );
222 
223  void EndTOX( const SwSection& rSect,bool bCareEnd=true );
224 
225  virtual void OnTOXEnding() {}
226 
227  void TOXMark( const SwTextNode& rNode, const SwTOXMark& rAttr );
228 
230  virtual void Redline( const SwRedlineData* pRedline ) = 0;
231 
232  virtual void FormatDrop( const SwTextNode& rNode, const SwFormatDrop& rSwFormatDrop, sal_uInt16 nStyle, ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo, ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner ) = 0;
233 
237  virtual void OutputFKP(bool /*bForce*/) {}
238 
240  virtual void ParagraphStyle( sal_uInt16 nStyle ) = 0;
241 
242  virtual void TableInfoCell( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0;
243 
244  virtual void TableInfoRow( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0;
245 
246  virtual void TableDefinition( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0;
247 
248  virtual void TableDefaultBorders( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0;
249 
250  virtual void TableBackgrounds( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0;
251 
252  virtual void TableRowRedline( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0;
253 
254  virtual void TableCellRedline( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0;
255 
256  virtual void TableHeight( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0;
257 
258  virtual void TableCanSplit( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0;
259 
260  virtual void TableBidi( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0;
261 
262  virtual void TableVerticalCell( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo ) = 0;
263 
264  virtual void TableNodeInfoInner( ww8::WW8TableNodeInfoInner::Pointer_t pNodeInfoInner ) = 0;
265 
266  virtual void TableOrientation( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) = 0;
267 
268  virtual void TableSpacing( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner ) = 0;
269 
270  virtual void TableRowEnd( sal_uInt32 nDepth ) = 0;
271 
273  virtual void StartStyles() = 0;
274 
276  virtual void EndStyles( sal_uInt16 nNumberOfStyles ) = 0;
277 
279  virtual void DefaultStyle() = 0;
280 
282  virtual void StartStyle( const OUString& rName, StyleType eType,
283  sal_uInt16 nBase, sal_uInt16 nNext, sal_uInt16 nWwId, sal_uInt16 nId,
284  bool bAutoUpdate ) = 0;
285 
287  virtual void EndStyle() = 0;
288 
290  virtual void StartStyleProperties( bool bParProp, sal_uInt16 nStyle ) = 0;
291 
293  virtual void EndStyleProperties( bool bParProp ) = 0;
294 
296  virtual void OutlineNumbering(sal_uInt8 nLvl) = 0;
297 
300  virtual void PageBreakBefore( bool bBreak ) = 0;
301 
304  virtual void SectionBreak( sal_uInt8 nC, const WW8_SepInfo* pSectionInfo = nullptr ) = 0;
305 
306  // preserve page vertical alignment
307  virtual void TextVerticalAdjustment( const css::drawing::TextVerticalAdjust) {};
308 
310  virtual void StartSection() = 0;
311 
313  virtual void EndSection() = 0;
314 
316  virtual void SectionFormProtection( bool bProtected ) = 0;
317 
319  virtual void SectionLineNumbering( sal_uLong nRestartNo, const SwLineNumberInfo& rLnNumInfo ) = 0;
320 
322  virtual void SectionTitlePage() = 0;
323 
325  virtual void SetStateOfFlyFrame( FlyProcessingState /*nStateOfFlyFrame*/ ){};
327  virtual void SetAnchorIsLinkedToNode( bool /*bAnchorLinkedToNode*/){};
328 
330  virtual bool IsFlyProcessingPostponed(){ return false; };
331 
333  virtual void ResetFlyProcessingFlag(){};
334 
336  virtual void SectionPageBorders( const SwFrameFormat* pFormat, const SwFrameFormat* pFirstPageFormat ) = 0;
337 
339  virtual void SectionBiDi( bool bBiDi ) = 0;
340 
343  virtual void SectionPageNumbering( sal_uInt16 nNumType, const ::boost::optional<sal_uInt16>& oPageRestartNumber ) = 0;
344 
346  virtual void SectionType( sal_uInt8 nBreakCode ) = 0;
347 
349  virtual void NumberingDefinition( sal_uInt16 nId, const SwNumRule &rRule ) = 0;
350 
352  virtual void StartAbstractNumbering( sal_uInt16 /*nId*/ ) {}
353 
355  virtual void EndAbstractNumbering() {}
356 
358  virtual void NumberingLevel( sal_uInt8 nLevel,
359  sal_uInt16 nStart,
360  sal_uInt16 nNumberingType,
361  SvxAdjust eAdjust,
362  const sal_uInt8 *pNumLvlPos,
363  sal_uInt8 nFollow,
364  const wwFont *pFont,
365  const SfxItemSet *pOutSet,
366  sal_Int16 nIndentAt,
367  sal_Int16 nFirstLineIndex,
368  sal_Int16 nListTabPos,
369  const OUString &rNumberingString,
370  const SvxBrushItem* pBrush) = 0; // #i120928 export graphic of bullet
371 
372 protected:
373 
374  static void GetNumberPara( OUString& rStr, const SwField& rField );
375 
377  virtual void OutputFlyFrame_Impl( const ww8::Frame& rFormat, const Point& rNdTopLeft ) = 0;
378 
380  virtual void CharCaseMap( const SvxCaseMapItem& ) = 0;
381 
383  virtual void CharColor( const SvxColorItem& ) = 0;
384 
386  virtual void CharContour( const SvxContourItem& ) = 0;
387 
389  virtual void CharCrossedOut( const SvxCrossedOutItem& ) = 0;
390 
392  virtual void CharEscapement( const SvxEscapementItem& ) = 0;
393 
395  virtual void CharFont( const SvxFontItem& ) = 0;
396 
398  virtual void CharFontSize( const SvxFontHeightItem& ) = 0;
399 
401  virtual void CharKerning( const SvxKerningItem& ) = 0;
402 
404  virtual void CharLanguage( const SvxLanguageItem& ) = 0;
405 
407  virtual void CharPosture( const SvxPostureItem& ) = 0;
408 
410  virtual void CharShadow( const SvxShadowedItem& ) = 0;
411 
413  virtual void CharUnderline( const SvxUnderlineItem& ) = 0;
414 
416  virtual void CharWeight( const SvxWeightItem& ) = 0;
417 
419  virtual void CharAutoKern( const SvxAutoKernItem& ) = 0;
420 
422  virtual void CharAnimatedText( const SvxBlinkItem& ) = 0;
423 
425  void CharBackgroundBase( const SvxBrushItem& );
426  virtual void CharBackground( const SvxBrushItem& ) = 0;
427 
429  virtual void CharFontCJK( const SvxFontItem& ) = 0;
430 
432  virtual void CharFontSizeCJK( const SvxFontHeightItem& ) = 0;
433 
435  virtual void CharLanguageCJK( const SvxLanguageItem& ) = 0;
436 
438  virtual void CharPostureCJK( const SvxPostureItem& ) = 0;
439 
441  virtual void CharWeightCJK( const SvxWeightItem& ) = 0;
442 
444  virtual void CharFontCTL( const SvxFontItem& ) = 0;
445 
447  virtual void CharFontSizeCTL( const SvxFontHeightItem& ) = 0;
448 
450  virtual void CharLanguageCTL( const SvxLanguageItem& ) = 0;
451 
453  virtual void CharPostureCTL( const SvxPostureItem& ) = 0;
454 
456  virtual void CharWeightCTL( const SvxWeightItem& ) = 0;
457 
459  virtual void CharBidiRTL( const SfxPoolItem& ) = 0;
460 
462  virtual void CharIdctHint( const SfxPoolItem& ) = 0;
463 
465  virtual void CharRotate( const SvxCharRotateItem& ) = 0;
466 
468  virtual void CharEmphasisMark( const SvxEmphasisMarkItem& ) = 0;
469 
471  virtual void CharTwoLines( const SvxTwoLinesItem& ) = 0;
472 
474  virtual void CharScaleWidth( const SvxCharScaleWidthItem& ) = 0;
475 
477  virtual void CharRelief( const SvxCharReliefItem& ) = 0;
478 
480  virtual void CharHidden( const SvxCharHiddenItem& ) = 0;
481 
483  void FormatCharBorder( const SvxBoxItem& rBox );
484  virtual void CharBorder( const ::editeng::SvxBorderLine* pAllBorder, const sal_uInt16 nDist, const bool bShadow ) = 0;
485 
487  virtual void CharHighlight( const SvxBrushItem& ) = 0;
488 
490  virtual void TextINetFormat( const SwFormatINetFormat& ) = 0;
491 
493  virtual void TextCharFormat( const SwFormatCharFormat& ) = 0;
494 
496  void TextField( const SwFormatField& );
497 
499  void TextFlyContent( const SwFormatFlyCnt& );
500 
505  void TextFootnote( const SwFormatFootnote& );
506 
508  virtual void TextFootnote_Impl( const SwFormatFootnote& ) = 0;
509 
511  void ParaLineSpacing( const SvxLineSpacingItem& );
512 
514  virtual void ParaLineSpacing_Impl( short nSpace, short nMulti ) = 0;
515 
517  virtual void ParaAdjust( const SvxAdjustItem& ) = 0;
518 
520  virtual void ParaSplit( const SvxFormatSplitItem& ) = 0;
521 
523  virtual void ParaWidows( const SvxWidowsItem& ) = 0;
524 
526  virtual void ParaTabStop( const SvxTabStopItem& ) = 0;
527 
529  virtual void ParaHyphenZone( const SvxHyphenZoneItem& ) = 0;
530 
532  void ParaNumRule( const SwNumRuleItem& );
533 
535  virtual void ParaNumRule_Impl( const SwTextNode *pTextNd, sal_Int32 nLvl, sal_Int32 nNumId ) = 0;
536 
538  virtual void ParaScriptSpace( const SfxBoolItem& ) = 0;
539 
541  virtual void ParaHangingPunctuation( const SfxBoolItem& ) = 0;
542 
544  virtual void ParaForbiddenRules( const SfxBoolItem& ) = 0;
545 
547  virtual void ParaVerticalAlign( const SvxParaVertAlignItem& ) = 0;
548 
550  virtual void ParaSnapToGrid( const SvxParaGridItem& ) = 0;
551 
553  virtual void FormatFrameSize( const SwFormatFrameSize& ) = 0;
554 
556  virtual void FormatPaperBin( const SvxPaperBinItem& ) = 0;
557 
559  virtual void FormatLRSpace( const SvxLRSpaceItem& ) = 0;
560 
562  virtual void FormatULSpace( const SvxULSpaceItem& ) = 0;
563 
566 
568  void FormatBreak( const SvxFormatBreakItem& );
569 
571  virtual void FormatSurround( const SwFormatSurround& ) = 0;
572 
574  virtual void FormatVertOrientation( const SwFormatVertOrient& ) = 0;
575 
577  virtual void FormatHorizOrientation( const SwFormatHoriOrient& ) = 0;
578 
580  virtual void FormatAnchor( const SwFormatAnchor& ) = 0;
581 
583  virtual void FormatBackground( const SvxBrushItem& ) = 0;
584 
586  virtual void FormatFillStyle( const XFillStyleItem& ) = 0;
587 
589  virtual void FormatFillGradient( const XFillGradientItem& ) = 0;
590 
592  virtual void FormatBox( const SvxBoxItem& ) = 0;
593 
595  void FormatColumns( const SwFormatCol& );
596 
597  virtual void FormatColumns_Impl( sal_uInt16 nCols, const SwFormatCol & rCol, bool bEven, SwTwips nPageSize ) = 0;
598 
600  virtual void FormatKeep( const SvxFormatKeepItem& ) = 0;
601 
603  sal_uInt32 GridCharacterPitch( const SwTextGridItem& rGrid ) const;
604 
606  virtual void FormatTextGrid( const SwTextGridItem& ) = 0;
607 
609  virtual void FormatLineNumbering( const SwFormatLineNumber& ) = 0;
610 
612  virtual void FormatFrameDirection( const SvxFrameDirectionItem& ) = 0;
613 
615  virtual void ParaGrabBag( const SfxGrabBagItem& ) = 0;
616 
618  virtual void CharGrabBag( const SfxGrabBagItem& ) = 0;
619 
621  virtual void ParaOutlineLevel( const SfxUInt16Item& ) = 0;
622 
624  virtual void WriteExpand( const SwField* pField ) = 0;
625 
626  virtual void RefField( const SwField& rField, const OUString& rRef ) = 0;
627  virtual void HiddenField( const SwField& rField ) = 0;
628  virtual void SetField( const SwField& rField, ww::eField eType, const OUString& rCmd ) = 0;
629  virtual void PostitField( const SwField* pField ) = 0;
630  virtual bool DropdownField( const SwField* pField ) = 0;
631  virtual bool PlaceholderField( const SwField* pField ) = 0;
632 
633  virtual bool AnalyzeURL( const OUString& rUrl, const OUString& rTarget, OUString* pLinkURL, OUString* pMark );
634 
636  virtual void WriteBookmarkInActParagraph( const OUString& rName, sal_Int32 nFirstRunPos, sal_Int32 nLastRunPos ) = 0;
637 
638  ww8::GridColsPtr GetGridCols( ww8::WW8TableNodeInfoInner::Pointer_t const & pTableTextNodeInfoInner );
639  ww8::WidthsPtr GetColumnWidths( ww8::WW8TableNodeInfoInner::Pointer_t const & pTableTextNodeInfoInner );
640 
641 public:
643  virtual ~AttributeOutputBase() {}
644 
646  virtual MSWordExportBase& GetExport() = 0;
647 
649  const MSWordExportBase& GetExport() const { return const_cast< AttributeOutputBase* >( this )->GetExport(); }
650 
652  void OutputItem( const SfxPoolItem& rHt );
653 
655  void OutputStyleItemSet( const SfxItemSet& rSet, bool bTestForDefault );
656 
658  void OutputFlyFrame( const ww8::Frame& rFormat );
659 
660  void GetTablePageSize
661  ( ww8::WW8TableNodeInfoInner const * pTableTextNodeInfoInner,
662  long& rPageSize, bool& rRelBoxSize );
663 
665  virtual void BulletDefinition(int /*nId*/, const Graphic& /*rGraphic*/, Size /*aSize*/) {}
666 
667  // Returns whether or not the 'SwTextNode' has a paragraph marker inserted \ deleted (using 'track changes')
668  const SwRedlineData* GetParagraphMarkerRedline( const SwTextNode& rNode, RedlineType_t aRedlineType );
669 };
670 
671 class WW8Ruby
672 {
673  sal_Int32 m_nJC;
675  sal_uInt32 m_nRubyHeight;
676  sal_uInt32 m_nBaseHeight;
677  OUString m_sFontFamily;
678 
679 public:
680  WW8Ruby(const SwTextNode& rNode, const SwFormatRuby& rRuby, const MSWordExportBase& rExport );
681  sal_Int32 GetJC() { return m_nJC; }
683  sal_uInt32 GetRubyHeight() { return m_nRubyHeight; }
684  sal_uInt32 GetBaseHeight() { return m_nBaseHeight; }
685  OUString const & GetFontFamily() { return m_sFontFamily; }
686 };
687 #endif // INCLUDED_SW_SOURCE_FILTER_WW8_ATTRIBUTEOUTPUTBASE_HXX
688 
689 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual void TableInfoRow(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
virtual void FormatFrameSize(const SwFormatFrameSize &)=0
Sfx item RES_FRM_SIZE.
virtual void TableSpacing(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner)=0
virtual void CharPosture(const SvxPostureItem &)=0
Sfx item RES_CHRATR_POSTURE.
virtual bool FootnoteEndnoteRefTag()
docx requires footnoteRef/endnoteRef tag at the beginning of each of them
virtual void TableCellRedline(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
virtual void SectionTitlePage()=0
Has different headers/footers for the title page.
virtual void CharIdctHint(const SfxPoolItem &)=0
Sfx item RES_CHRATR_IdctHint.
virtual void EndStyles(sal_uInt16 nNumberOfStyles)=0
End of the styles table.
virtual void FormatDrop(const SwTextNode &rNode, const SwFormatDrop &rSwFormatDrop, sal_uInt16 nStyle, ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo, ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner)=0
virtual void FormatColumns_Impl(sal_uInt16 nCols, const SwFormatCol &rCol, bool bEven, SwTwips nPageSize)=0
virtual void SectionBreaks(const SwNode &rNode)=0
Called in order to output section breaks.
Pagedescriptor Client of SwPageDesc that is "described" by the attribute.
Definition: fmtpdsc.hxx:35
virtual void EndParagraphProperties(const SfxItemSet &rParagraphMarkerProperties, const SwRedlineData *pRedlineData, const SwRedlineData *pRedlineParagraphMarkerDeleted, const SwRedlineData *pRedlineParagraphMarkerInserted)=0
Called after we end outputting the attributes.
sal_Char GetDirective()
virtual void TextCharFormat(const SwFormatCharFormat &)=0
Sfx item RES_TXTATR_CHARFMT.
void FormatPageDescription(const SwFormatPageDesc &)
Sfx item RES_PAGEDESC.
Definition: ww8atr.cxx:3735
virtual void WriteExpand(const SwField *pField)=0
Write the expanded field.
virtual void CharRotate(const SvxCharRotateItem &)=0
Sfx item RES_CHRATR_ROTATE.
virtual void CharCrossedOut(const SvxCrossedOutItem &)=0
Sfx item RES_CHRATR_CROSSEDOUT.
virtual void EndSection()=0
End of the section properties.
sal_uIntPtr sal_uLong
void ParaNumRule(const SwNumRuleItem &)
Sfx item RES_PARATR_NUMRULE.
Definition: ww8atr.cxx:3519
virtual void EndRuby(const SwTextNode &rNode, sal_Int32 nPos)=0
Output ruby end.
const SwRedlineData * GetParagraphMarkerRedline(const SwTextNode &rNode, RedlineType_t aRedlineType)
Definition: ww8atr.cxx:5466
virtual void CharContour(const SvxContourItem &)=0
Sfx item Sfx item RES_CHRATR_CONTOUR.
Base class of all fields.
Definition: fldbas.hxx:279
virtual void CharWeightCTL(const SvxWeightItem &)=0
Sfx item RES_CHRATR_CTL_WEIGHT.
virtual void TableBidi(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
virtual void CharTwoLines(const SvxTwoLinesItem &)=0
Sfx item RES_CHRATR_TWO_LINES.
void TextFootnote(const SwFormatFootnote &)
Sfx item RES_TXTATR_FTN.
Definition: ww8atr.cxx:3419
virtual void StartRuby(const SwTextNode &rNode, sal_Int32 nPos, const SwFormatRuby &rRuby)=0
Output ruby start.
virtual void CharAutoKern(const SvxAutoKernItem &)=0
Sfx item RES_CHRATR_AUTOKERN.
virtual void SectionBreak(sal_uInt8 nC, const WW8_SepInfo *pSectionInfo=nullptr)=0
Write a section break msword::ColumnBreak or msword::PageBreak.
virtual bool DropdownField(const SwField *pField)=0
long SwTwips
Definition: swtypes.hxx:49
virtual void ParaForbiddenRules(const SfxBoolItem &)=0
Sfx item RES_PARATR_FORBIDDEN_RULES.
virtual void StartRunProperties()=0
Called before we start outputting the attributes.
virtual void ParaSplit(const SvxFormatSplitItem &)=0
Sfx item RES_PARATR_SPLIT.
const sal_uInt8 ColumnBreak
virtual void CharHighlight(const SvxBrushItem &)=0
Sfx item RES_CHRATR_HIGHLIGHT.
virtual void CharFont(const SvxFontItem &)=0
Sfx item RES_CHRATR_FONT.
virtual void ParaHyphenZone(const SvxHyphenZoneItem &)=0
Sfx item RES_PARATR_HYPHENZONE.
virtual void PostitField(const SwField *pField)=0
virtual void ParaOutlineLevel(const SfxUInt16Item &)=0
Sfx item RES_PARATR_OUTLINELEVEL.
virtual void FormatFillGradient(const XFillGradientItem &)=0
Sfx item RES_FILL_GRADIENT.
virtual void CharFontSize(const SvxFontHeightItem &)=0
Sfx item RES_CHRATR_FONTSIZE.
sal_uInt32 m_nBaseHeight
std::shared_ptr< Widths > WidthsPtr
virtual void ParaSnapToGrid(const SvxParaGridItem &)=0
Sfx item RES_PARATR_SNAPTOGRID.
virtual void FormatHorizOrientation(const SwFormatHoriOrient &)=0
Sfx item RES_HORI_ORIENT.
virtual void CharPostureCJK(const SvxPostureItem &)=0
Sfx item RES_CHRATR_CJK_POSTURE.
virtual void SetAnchorIsLinkedToNode(bool)
If the node has an anchor linked.
virtual void FormatKeep(const SvxFormatKeepItem &)=0
Sfx item RES_KEEP.
void GenerateBookmarksForSequenceField(const SwTextNode &rNode, SwWW8AttrIter &rAttrIter)
MSO uses bookmarks to reference sequence fields, so we need to generate these additional bookmarks du...
Definition: ww8atr.cxx:1987
virtual void CharBidiRTL(const SfxPoolItem &)=0
Sfx item RES_CHRATR_BidiRTL.
ww8::GridColsPtr GetGridCols(ww8::WW8TableNodeInfoInner::Pointer_t const &pTableTextNodeInfoInner)
Definition: wrtww8.cxx:2450
virtual bool PlaceholderField(const SwField *pField)=0
virtual void PageBreakBefore(bool bBreak)=0
Page break As a paragraph property - the paragraph should be on the next page.
virtual void TableRowRedline(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
virtual void EndStyle()=0
End of a style in the styles table.
void TextField(const SwFormatField &)
Sfx item RES_TXTATR_FIELD, RES_TXTATR_ANNOTATION and RES_TXTATR_INPUTFIELD.
Definition: ww8atr.cxx:2709
virtual void EndAbstractNumbering()
End of the abstract numbering definition instance.
virtual void ParaAdjust(const SvxAdjustItem &)=0
Sfx item RES_PARATR_ADJUST.
virtual void RefField(const SwField &rField, const OUString &rRef)=0
char sal_Char
StyleType
void StartTOX(const SwSection &rSect)
Definition: ww8atr.cxx:2156
void GetTablePageSize(ww8::WW8TableNodeInfoInner const *pTableTextNodeInfoInner, long &rPageSize, bool &rRelBoxSize)
Definition: wrtww8.cxx:2461
virtual void CharFontSizeCTL(const SvxFontHeightItem &)=0
Sfx item RES_CHRATR_CTL_FONTSIZE.
eField
Definition: fields.hxx:26
virtual void FormatLineNumbering(const SwFormatLineNumber &)=0
Sfx item RES_LINENUMBER.
virtual void StartRun(const SwRedlineData *pRedlineData, sal_Int32 nPos, bool bSingleEmptyRun=false)=0
Start of the text run.
virtual void ParaTabStop(const SvxTabStopItem &)=0
Sfx item RES_PARATR_TABSTOP.
virtual void SetStateOfFlyFrame(FlyProcessingState)
Set the state of the Fly at current position.
virtual void StartParagraphProperties()=0
Called before we start outputting the attributes.
virtual bool IsFlyProcessingPostponed()
Is processing of fly postponed ?
virtual void ResetFlyProcessingFlag()
Reset the flag for FlyProcessing.
virtual void RawText(const OUString &rText, rtl_TextEncoding eCharSet)=0
Output text (without markup).
void FormatCharBorder(const SvxBoxItem &rBox)
Sfx item RES_CHRATR_BOX.
Definition: ww8atr.cxx:5421
virtual void SectFootnoteEndnotePr()
for footnote/endnote section properties
virtual void NumberingDefinition(sal_uInt16 nId, const SwNumRule &rRule)=0
Definition of a numbering instance.
void OutputItem(const SfxPoolItem &rHt)
Call the right virtual function according to the type of the item.
Definition: ww8atr.cxx:5130
const MSWordExportBase & GetExport() const
virtual void CharLanguageCJK(const SvxLanguageItem &)=0
Sfx item RES_CHRATR_CJK_LANGUAGE.
Collects and outputs fonts.
Definition: wrtww8.hxx:300
static void GetNumberPara(OUString &rStr, const SwField &rField)
Definition: ww8atr.cxx:2530
void FormatBreak(const SvxFormatBreakItem &)
Sfx item RES_BREAK.
Definition: ww8atr.cxx:3758
Base class for various Writer styles.
Definition: format.hxx:43
virtual void OutlineNumbering(sal_uInt8 nLvl)=0
Numbering rule and Id.
virtual void TableHeight(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
virtual void CharFontSizeCJK(const SvxFontHeightItem &)=0
Sfx item RES_CHRATR_CJK_FONTSIZE.
virtual void CharWeight(const SvxWeightItem &)=0
Sfx item RES_CHRATR_WEIGHT.
virtual void CharAnimatedText(const SvxBlinkItem &)=0
Sfx item RES_CHRATR_BLINK.
virtual bool AnalyzeURL(const OUString &rUrl, const OUString &rTarget, OUString *pLinkURL, OUString *pMark)
Definition: wrtw8nds.cxx:911
virtual void CharRelief(const SvxCharReliefItem &)=0
Sfx item RES_CHRATR_RELIEF.
virtual void CharCaseMap(const SvxCaseMapItem &)=0
Sfx item Sfx item RES_CHRATR_CASEMAP.
Style of a layout element.
Definition: frmfmt.hxx:57
virtual void CharWeightCJK(const SvxWeightItem &)=0
Sfx item RES_CHRATR_CJK_WEIGHT.
virtual void RunText(const OUString &rText, rtl_TextEncoding eCharSet=RTL_TEXTENCODING_UTF8)=0
Output text (inside a run).
virtual void SectionType(sal_uInt8 nBreakCode)=0
The type of breaking.
SvxAdjust
WW8Ruby(const SwTextNode &rNode, const SwFormatRuby &rRuby, const MSWordExportBase &rExport)
Definition: wrtw8nds.cxx:3353
virtual void DefaultStyle()=0
Write default style.
sal_Int32 GetJC()
virtual void TableBackgrounds(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
sal_uInt32 GridCharacterPitch(const SwTextGridItem &rGrid) const
Compute the grid character pitch.
Definition: ww8atr.cxx:3853
FlyAnchors.
Definition: fmtanchr.hxx:34
void TextFlyContent(const SwFormatFlyCnt &)
Sfx item RES_TXTATR_FLYCNT.
Definition: ww8atr.cxx:3226
sal_uInt32 GetRubyHeight()
virtual void StartParagraph(ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo)=0
Start of the paragraph.
std::shared_ptr< GridCols > GridColsPtr
virtual void FormatAnchor(const SwFormatAnchor &)=0
Sfx item RES_ANCHOR.
virtual void CharShadow(const SvxShadowedItem &)=0
Sfx item RES_CHRATR_SHADOWED.
virtual void TextFootnote_Impl(const SwFormatFootnote &)=0
Sfx item RES_TXTATR_FTN.
virtual void BulletDefinition(int, const Graphic &, Size)
Exports the definition (image, size) of a single numbering picture bullet.
void CharBackgroundBase(const SvxBrushItem &)
Sfx item RES_CHRATR_BACKGROUND.
Definition: ww8atr.cxx:5485
virtual void TextINetFormat(const SwFormatINetFormat &)=0
Sfx item RES_TXTATR_INETFMT.
virtual void TableDefinition(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
void OutputFlyFrame(const ww8::Frame &rFormat)
Output frames.
Definition: wrtw8nds.cxx:3260
virtual void StartSection()=0
Start of the section properties.
virtual void ParaScriptSpace(const SfxBoolItem &)=0
Sfx item RES_PARATR_SCRIPTSPACE.
virtual void FormatBackground(const SvxBrushItem &)=0
Sfx item RES_BACKGROUND.
virtual void FormatBox(const SvxBoxItem &)=0
Sfx item RES_BOX.
virtual void SetField(const SwField &rField, ww::eField eType, const OUString &rCmd)=0
virtual void CharColor(const SvxColorItem &)=0
Sfx item Sfx item RES_CHRATR_COLOR.
sal_Char m_cDirective
virtual void TableInfoCell(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
virtual void SectionPageBorders(const SwFrameFormat *pFormat, const SwFrameFormat *pFirstPageFormat)=0
Description of the page borders.
void FormatColumns(const SwFormatCol &)
Sfx item RES_COL.
Definition: ww8atr.cxx:4548
void EndTOX(const SwSection &rSect, bool bCareEnd=true)
Definition: ww8atr.cxx:2476
virtual void TableDefaultBorders(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
sal_uInt32 GetBaseHeight()
virtual void FormatSurround(const SwFormatSurround &)=0
Sfx item RES_SURROUND.
virtual void FormatLRSpace(const SvxLRSpaceItem &)=0
Sfx item RES_LR_SPACE.
< purpose of derivation from SwClient: character style for displaying the numbers.
Definition: lineinfo.hxx:37
virtual void CharEscapement(const SvxEscapementItem &)=0
Sfx item RES_CHRATR_ESCAPEMENT.
virtual void SectionPageNumbering(sal_uInt16 nNumType, const ::boost::optional< sal_uInt16 > &oPageRestartNumber)=0
The style of the page numbers.
OUString const & GetFontFamily()
virtual void EndStyleProperties(bool bParProp)=0
End of (paragraph or run) properties of a style.
virtual void CharBorder(const ::editeng::SvxBorderLine *pAllBorder, const sal_uInt16 nDist, const bool bShadow)=0
virtual void SectionFormProtection(bool bProtected)=0
Protection of forms.
virtual void EndRunProperties(const SwRedlineData *pRedlineData)=0
Called after we end outputting the attributes.
virtual void CharScaleWidth(const SvxCharScaleWidthItem &)=0
Sfx item RES_CHRATR_SCALEW.
virtual void RTLAndCJKState(bool bIsRTL, sal_uInt16 nScript)=0
Export the state of RTL/CJK.
virtual void ParaWidows(const SvxWidowsItem &)=0
Sfx item RES_PARATR_WIDOWS.
SwTextNode is a paragraph in the document model.
Definition: ndtxt.hxx:79
sal_uInt32 m_nRubyHeight
virtual void FormatFrameDirection(const SvxFrameDirectionItem &)=0
Sfx item RES_FRAMEDIR.
virtual void CharHidden(const SvxCharHiddenItem &)=0
Sfx item RES_CHRATR_HIDDEN.
virtual void StartStyleProperties(bool bParProp, sal_uInt16 nStyle)=0
Start of (paragraph or run) properties of a style.
virtual void CharGrabBag(const SfxGrabBagItem &)=0
Sfx item RES_CHRATR_GRABBAG.
virtual void TableOrientation(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner)=0
virtual void TableCanSplit(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
sal_uInt16 RedlineType_t
virtual void CharFontCTL(const SvxFontItem &)=0
Sfx item RES_CHRATR_CTL_FONT.
FlyProcessingState
enum to state the present state of the fly
Definition: wrtww8.hxx:170
unsigned char sal_uInt8
virtual void TableNodeInfoInner(ww8::WW8TableNodeInfoInner::Pointer_t pNodeInfoInner)=0
Make exporting a Writer Frame easy.
virtual void FormatPaperBin(const SvxPaperBinItem &)=0
Sfx item RES_PAPER_BIN.
virtual void CharLanguage(const SvxLanguageItem &)=0
Sfx item RES_CHRATR_LANGUAGE.
virtual void ParaGrabBag(const SfxGrabBagItem &)=0
Sfx item RES_PARATR_GRABBAG.
virtual void TableRowEnd(sal_uInt32 nDepth)=0
virtual void ParaLineSpacing_Impl(short nSpace, short nMulti)=0
Count the values in ParaLineSpacing, and pass theme here.
const sal_uInt8 PageBreak
virtual void CharLanguageCTL(const SvxLanguageItem &)=0
Sfx item RES_CHRATR_CTL_LANGUAGE.
virtual void EmptyParagraph()=0
Empty paragraph.
virtual void FieldVanish(const OUString &rText, ww::eField eType)=0
virtual bool EndURL(bool isAtEndOfParagraph)=0
Output URL end.
std::shared_ptr< WW8TableNodeInfoInner > Pointer_t
virtual void ParaVerticalAlign(const SvxParaVertAlignItem &)=0
Sfx item RES_PARATR_VERTALIGN.
virtual void ParaNumRule_Impl(const SwTextNode *pTextNd, sal_Int32 nLvl, sal_Int32 nNumId)=0
Numbering - the implementation.
virtual void SectionBiDi(bool bBiDi)=0
Columns populated from right/numbers on the right side?
virtual void ParagraphStyle(sal_uInt16 nStyle)=0
Output style.
virtual void ParaHangingPunctuation(const SfxBoolItem &)=0
Sfx item RES_PARATR_HANGINGPUNCTUATION.
virtual void FormatVertOrientation(const SwFormatVertOrient &)=0
Sfx item RES_VERT_ORIENT.
void OutputStyleItemSet(const SfxItemSet &rSet, bool bTestForDefault)
Use OutputItem() on an item set - for styles.
Definition: ww8atr.cxx:5376
Format of a fly content.
Definition: fmtflcnt.hxx:32
virtual void FormatULSpace(const SvxULSpaceItem &)=0
Sfx item RES_UL_SPACE.
SvtSaveOptions const m_aSaveOpt
virtual bool StartURL(const OUString &rUrl, const OUString &rTarget)=0
Output URL start.
virtual void StartAbstractNumbering(sal_uInt16)
Start of the abstract numbering definition instance.
virtual void FormatFillStyle(const XFillStyleItem &)=0
Sfx item RES_FILL_STYLE.
virtual void SectionLineNumbering(sal_uLong nRestartNo, const SwLineNumberInfo &rLnNumInfo)=0
Numbering of the lines in the document.
virtual void Redline(const SwRedlineData *pRedline)=0
Output redlining.
Base class for WW8Export and DocxExport.
Definition: wrtww8.hxx:453
virtual void WriteBookmarkInActParagraph(const OUString &rName, sal_Int32 nFirstRunPos, sal_Int32 nLastRunPos)=0
Insert a bookmark inside the currently processed paragraph.
virtual void StartStyle(const OUString &rName, StyleType eType, sal_uInt16 nBase, sal_uInt16 nNext, sal_uInt16 nWwId, sal_uInt16 nId, bool bAutoUpdate)=0
Start of a style in the styles table.
virtual void StartStyles()=0
Start of the styles table.
virtual void EndParagraph(ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner)=0
End of the paragraph.
virtual void NumberingLevel(sal_uInt8 nLevel, sal_uInt16 nStart, sal_uInt16 nNumberingType, SvxAdjust eAdjust, const sal_uInt8 *pNumLvlPos, sal_uInt8 nFollow, const wwFont *pFont, const SfxItemSet *pOutSet, sal_Int16 nIndentAt, sal_Int16 nFirstLineIndex, sal_Int16 nListTabPos, const OUString &rNumberingString, const SvxBrushItem *pBrush)=0
All the numbering level information.
virtual void TableVerticalCell(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
If SwFormatDrop is a Client, it is the CharFormat that describes the font for the DropCaps...
Definition: paratr.hxx:50
virtual void CharKerning(const SvxKerningItem &)=0
Sfx item RES_CHRATR_KERNING.
virtual void CharFontCJK(const SvxFontItem &)=0
Sfx item RES_CHRATR_CJK_FONT.
virtual void CharPostureCTL(const SvxPostureItem &)=0
Sfx item RES_CHRATR_CTL_POSTURE.
void TOXMark(const SwTextNode &rNode, const SwTOXMark &rAttr)
Definition: wrtw8nds.cxx:1219
virtual void CharBackground(const SvxBrushItem &)=0
void ParaLineSpacing(const SvxLineSpacingItem &)
Sfx item RES_PARATR_LINESPACING.
Definition: ww8atr.cxx:4644
virtual void CharUnderline(const SvxUnderlineItem &)=0
Sfx item RES_CHRATR_UNDERLINE.
virtual void CharEmphasisMark(const SvxEmphasisMarkItem &)=0
Sfx item RES_CHRATR_EMPHASIS_MARK.
std::shared_ptr< WW8TableNodeInfo > Pointer_t
virtual void TextVerticalAdjustment(const css::drawing::TextVerticalAdjust)
ww8::WidthsPtr GetColumnWidths(ww8::WW8TableNodeInfoInner::Pointer_t const &pTableTextNodeInfoInner)
Definition: wrtww8.cxx:2455
virtual void EndRun(const SwTextNode *pNode, sal_Int32 nPos, bool bLastRun=false)=0
End of the text run.
OUString ConvertURL(const OUString &rUrl, bool bAbsoluteOut)
Definition: wrtw8nds.cxx:855
virtual void FormatTextGrid(const SwTextGridItem &)=0
Sfx item RES_TEXTGRID.
virtual MSWordExportBase & GetExport()=0
Return the right export class.
virtual void OutputFlyFrame_Impl(const ww8::Frame &rFormat, const Point &rNdTopLeft)=0
Output frames - the implementation.
virtual void WritePostitFieldReference()
for docx w:commentReference
OUString m_sFontFamily
virtual void OutputFKP(bool)
Output FKP (Formatted disK Page) - necessary for binary formats only.
Base class of the Writer document model elements.
Definition: node.hxx:79
virtual void HiddenField(const SwField &rField)=0