11d2dbeb0SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
31d2dbeb0SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
41d2dbeb0SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
51d2dbeb0SAndrew Rist  * distributed with this work for additional information
61d2dbeb0SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
71d2dbeb0SAndrew Rist  * to you under the Apache License, Version 2.0 (the
81d2dbeb0SAndrew Rist  * "License"); you may not use this file except in compliance
91d2dbeb0SAndrew Rist  * with the License.  You may obtain a copy of the License at
101d2dbeb0SAndrew Rist  *
111d2dbeb0SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
121d2dbeb0SAndrew Rist  *
131d2dbeb0SAndrew Rist  * Unless required by applicable law or agreed to in writing,
141d2dbeb0SAndrew Rist  * software distributed under the License is distributed on an
151d2dbeb0SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
161d2dbeb0SAndrew Rist  * KIND, either express or implied.  See the License for the
171d2dbeb0SAndrew Rist  * specific language governing permissions and limitations
181d2dbeb0SAndrew Rist  * under the License.
191d2dbeb0SAndrew Rist  *
201d2dbeb0SAndrew Rist  *************************************************************/
211d2dbeb0SAndrew Rist 
221d2dbeb0SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _WW8ATTRIBUTEOUTPUT_HXX_
25cdf0e10cSrcweir #define _WW8ATTRIBUTEOUTPUT_HXX_
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include "attributeoutputbase.hxx"
28cdf0e10cSrcweir #include "wrtww8.hxx"
29cdf0e10cSrcweir 
30cdf0e10cSrcweir class WW8AttributeOutput : public AttributeOutputBase
31cdf0e10cSrcweir {
32cdf0e10cSrcweir public:
33cdf0e10cSrcweir     /// Export the state of RTL/CJK.
34cdf0e10cSrcweir     virtual void RTLAndCJKState( bool bIsRTL, sal_uInt16 nScript );
35cdf0e10cSrcweir 
36cdf0e10cSrcweir     /// Start of the paragraph.
StartParagraph(ww8::WW8TableNodeInfo::Pointer_t)37cdf0e10cSrcweir     virtual void StartParagraph( ww8::WW8TableNodeInfo::Pointer_t /*pTextNodeInfo*/ ) {}
38cdf0e10cSrcweir 
39cdf0e10cSrcweir     /// End of the paragraph.
40cdf0e10cSrcweir     virtual void EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner );
41cdf0e10cSrcweir 
42cdf0e10cSrcweir     /// Called before we start outputting the attributes.
StartParagraphProperties(const SwTxtNode &)43cdf0e10cSrcweir     virtual void StartParagraphProperties( const SwTxtNode& /*rNode*/ ) {}
44cdf0e10cSrcweir 
45cdf0e10cSrcweir     /// Called after we end outputting the attributes.
EndParagraphProperties()46cdf0e10cSrcweir     virtual void EndParagraphProperties() {}
47cdf0e10cSrcweir 
48cdf0e10cSrcweir     /// Empty paragraph.
49cdf0e10cSrcweir     virtual void EmptyParagraph();
50cdf0e10cSrcweir 
51cdf0e10cSrcweir     /// Start of the text run.
52cdf0e10cSrcweir     ///
53cdf0e10cSrcweir     virtual void StartRun( const SwRedlineData* pRedlineData );
54cdf0e10cSrcweir 
55f66c5aafSOliver-Rainer Wittmann     virtual void OnTOXEnding();
56f66c5aafSOliver-Rainer Wittmann 
57cdf0e10cSrcweir     /// End of the text run.
58cdf0e10cSrcweir     ///
59cdf0e10cSrcweir     /// No-op for binary filters.
EndRun()60cdf0e10cSrcweir     virtual void EndRun() {}
61cdf0e10cSrcweir 
62cdf0e10cSrcweir     /// Before we start outputting the attributes.
63cdf0e10cSrcweir     virtual void StartRunProperties();
64cdf0e10cSrcweir 
65cdf0e10cSrcweir     /// After we end outputting the attributes.
66cdf0e10cSrcweir     virtual void EndRunProperties( const SwRedlineData* pRedlineData );
67cdf0e10cSrcweir 
68cdf0e10cSrcweir     /// Output text.
69cdf0e10cSrcweir     virtual void RunText( const String& rText, rtl_TextEncoding eCharSet );
70cdf0e10cSrcweir 
71cdf0e10cSrcweir     /// Output text (without markup).
72cdf0e10cSrcweir     virtual void RawText( const String& rText, bool bForceUnicode, rtl_TextEncoding eCharSet );
73cdf0e10cSrcweir 
74cdf0e10cSrcweir     /// Output ruby start.
75cdf0e10cSrcweir     virtual void StartRuby( const SwTxtNode& rNode, const SwFmtRuby& rRuby );
76cdf0e10cSrcweir 
77cdf0e10cSrcweir     /// Output ruby end.
78cdf0e10cSrcweir     virtual void EndRuby();
79cdf0e10cSrcweir 
80cdf0e10cSrcweir     /// Output URL start.
81cdf0e10cSrcweir     virtual bool StartURL( const String &rUrl, const String &rTarget );
82cdf0e10cSrcweir 
83cdf0e10cSrcweir     /// Output URL end.
84cdf0e10cSrcweir     virtual bool EndURL();
85cdf0e10cSrcweir 
86cdf0e10cSrcweir     virtual void FieldVanish( const String& rTxt, ww::eField eType );
87cdf0e10cSrcweir 
88cdf0e10cSrcweir     /// Output redlining.
89cdf0e10cSrcweir     virtual void Redline( const SwRedlineData* pRedline );
90cdf0e10cSrcweir 
91cdf0e10cSrcweir     virtual void FormatDrop( const SwTxtNode& rNode, const SwFmtDrop &rSwFmtDrop, sal_uInt16 nStyle, ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo, ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner );
92cdf0e10cSrcweir 
93cdf0e10cSrcweir     /// Output FKP (Formatted disK Page) - necessary for binary formats only.
94cdf0e10cSrcweir     /// FIXME having it in AttributeOutputBase is probably a hack, it
95cdf0e10cSrcweir     /// should be in WW8AttributeOutput only...
96cdf0e10cSrcweir     virtual void OutputFKP();
97cdf0e10cSrcweir 
98cdf0e10cSrcweir     /// Output style.
99cdf0e10cSrcweir     virtual void ParagraphStyle( sal_uInt16 nStyle );
100cdf0e10cSrcweir 
101cdf0e10cSrcweir     virtual void TableInfoCell( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo );
102cdf0e10cSrcweir 
103cdf0e10cSrcweir     virtual void TableInfoRow( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo );
104cdf0e10cSrcweir 
105cdf0e10cSrcweir     virtual void TableDefinition( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo );
106cdf0e10cSrcweir 
107cdf0e10cSrcweir     virtual void TableDefaultBorders( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo );
108cdf0e10cSrcweir 
109cdf0e10cSrcweir     virtual void TableBackgrounds( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo );
110cdf0e10cSrcweir 
111cdf0e10cSrcweir     virtual void TableHeight( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo );
112cdf0e10cSrcweir 
113cdf0e10cSrcweir     virtual void TableCanSplit( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo );
114cdf0e10cSrcweir 
115cdf0e10cSrcweir     virtual void TableBidi( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo );
116cdf0e10cSrcweir 
117cdf0e10cSrcweir     virtual void TableVerticalCell( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo );
118cdf0e10cSrcweir 
119cdf0e10cSrcweir     virtual void TableNodeInfo( ww8::WW8TableNodeInfo::Pointer_t pNodeInfo );
120cdf0e10cSrcweir 
121cdf0e10cSrcweir     virtual void TableNodeInfoInner( ww8::WW8TableNodeInfoInner::Pointer_t pNodeInfoInner );
122cdf0e10cSrcweir 
123cdf0e10cSrcweir     virtual void TableOrientation( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner );
124cdf0e10cSrcweir 
125cdf0e10cSrcweir     virtual void TableSpacing( ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner );
126cdf0e10cSrcweir 
127cdf0e10cSrcweir     virtual void TableRowEnd( sal_uInt32 nDepth = 1 );
128cdf0e10cSrcweir 
129cdf0e10cSrcweir     /// Start of the styles table.
130cdf0e10cSrcweir     virtual void StartStyles();
131cdf0e10cSrcweir 
132cdf0e10cSrcweir     /// End of the styles table.
133cdf0e10cSrcweir     virtual void EndStyles( sal_uInt16 nNumberOfStyles );
134cdf0e10cSrcweir 
135cdf0e10cSrcweir     /// Write default style.
136cdf0e10cSrcweir     virtual void DefaultStyle( sal_uInt16 nStyle );
137cdf0e10cSrcweir 
138cdf0e10cSrcweir     /// Start of a style in the styles table.
139cdf0e10cSrcweir     virtual void StartStyle( const String& rName, bool bPapFmt,
140cdf0e10cSrcweir             sal_uInt16 nBase, sal_uInt16 nNext, sal_uInt16 nWwIdi, sal_uInt16 nId );
141cdf0e10cSrcweir 
142cdf0e10cSrcweir     /// End of a style in the styles table.
143cdf0e10cSrcweir     virtual void EndStyle();
144cdf0e10cSrcweir 
145cdf0e10cSrcweir     /// Start of (paragraph or run) properties of a style.
146cdf0e10cSrcweir     virtual void StartStyleProperties( bool bParProp, sal_uInt16 nStyle );
147cdf0e10cSrcweir 
148cdf0e10cSrcweir     /// End of (paragraph or run) properties of a style.
149cdf0e10cSrcweir     virtual void EndStyleProperties( bool bParProp );
150cdf0e10cSrcweir 
151cdf0e10cSrcweir     /// Numbering rule and Id.
152cdf0e10cSrcweir     virtual void OutlineNumbering( sal_uInt8 nLvl, const SwNumFmt &rNFmt, const SwFmt &rFmt );
153cdf0e10cSrcweir 
154cdf0e10cSrcweir     /// Page break
155cdf0e10cSrcweir     /// As a paragraph property - the paragraph should be on the next page.
156cdf0e10cSrcweir     virtual void PageBreakBefore( bool bBreak );
157cdf0e10cSrcweir 
158cdf0e10cSrcweir     /// Write a section break
159cdf0e10cSrcweir     /// msword::ColumnBreak or msword::PageBreak
160cdf0e10cSrcweir     virtual void SectionBreak( sal_uInt8 nC, const WW8_SepInfo* pSectionInfo = NULL );
161cdf0e10cSrcweir 
162cdf0e10cSrcweir     /// Start of the section properties.
163cdf0e10cSrcweir     virtual void StartSection();
164cdf0e10cSrcweir 
165cdf0e10cSrcweir     /// End of the section properties.
166cdf0e10cSrcweir     ///
167cdf0e10cSrcweir     /// No-op for binary filters.
EndSection()168cdf0e10cSrcweir     virtual void EndSection() {}
169cdf0e10cSrcweir 
170cdf0e10cSrcweir     /// Protection of forms.
171cdf0e10cSrcweir     virtual void SectionFormProtection( bool bProtected );
172cdf0e10cSrcweir 
173cdf0e10cSrcweir     /// Numbering of the lines in the document.
174cdf0e10cSrcweir     virtual void SectionLineNumbering( sal_uLong nRestartNo, const SwLineNumberInfo& rLnNumInfo );
175cdf0e10cSrcweir 
176cdf0e10cSrcweir     /// Has different headers/footers for the title page.
177cdf0e10cSrcweir     virtual void SectionTitlePage();
178cdf0e10cSrcweir 
179cdf0e10cSrcweir     /// Description of the page borders.
180cdf0e10cSrcweir     virtual void SectionPageBorders( const SwFrmFmt* pFmt, const SwFrmFmt* pFirstPageFmt );
181cdf0e10cSrcweir 
182cdf0e10cSrcweir     /// Columns populated from right/numbers on the right side?
183cdf0e10cSrcweir     virtual void SectionBiDi( bool bBiDi );
184cdf0e10cSrcweir 
185cdf0e10cSrcweir     /// The style of the page numbers.
186cdf0e10cSrcweir     ///
187cdf0e10cSrcweir     /// nPageRestartNumberr being 0 means no restart.
188cdf0e10cSrcweir     virtual void SectionPageNumbering( sal_uInt16 nNumType, sal_uInt16 nPageRestartNumber );
189cdf0e10cSrcweir 
190cdf0e10cSrcweir     /// The type of breaking.
191cdf0e10cSrcweir     virtual void SectionType( sal_uInt8 nBreakCode );
192cdf0e10cSrcweir 
193cdf0e10cSrcweir     /// Special header/footer flags, needed for old versions only.
194cdf0e10cSrcweir     virtual void SectionWW6HeaderFooterFlags( sal_uInt8 nHeadFootFlags );
195cdf0e10cSrcweir 
196cdf0e10cSrcweir     /// Definition of a numbering instance.
197cdf0e10cSrcweir     virtual void NumberingDefinition( sal_uInt16 nId, const SwNumRule &rRule );
198cdf0e10cSrcweir 
199cdf0e10cSrcweir     /// All the numbering level information.
200cdf0e10cSrcweir     virtual void NumberingLevel( sal_uInt8 nLevel,
201cdf0e10cSrcweir         sal_uInt16 nStart,
202cdf0e10cSrcweir         sal_uInt16 nNumberingType,
203cdf0e10cSrcweir         SvxAdjust eAdjust,
204cdf0e10cSrcweir         const sal_uInt8 *pNumLvlPos,
205cdf0e10cSrcweir         sal_uInt8 nFollow,
206cdf0e10cSrcweir         const wwFont *pFont,
207cdf0e10cSrcweir         const SfxItemSet *pOutSet,
208cdf0e10cSrcweir         sal_Int16 nIndentAt,
209cdf0e10cSrcweir         sal_Int16 nFirstLineIndex,
210cdf0e10cSrcweir         sal_Int16 nListTabPos,
211*41623124SJian Hong Cheng         const String &rNumberingString,
212*41623124SJian Hong Cheng         const SvxBrushItem* pBrush = 0); //For i120928,transfer graphic of bullet
213cdf0e10cSrcweir 
214cdf0e10cSrcweir protected:
215cdf0e10cSrcweir     /// Output frames - the implementation.
216cdf0e10cSrcweir     void OutputFlyFrame_Impl( const sw::Frame& rFmt, const Point& rNdTopLeft );
217cdf0e10cSrcweir 
218cdf0e10cSrcweir     /// Sfx item Sfx item RES_CHRATR_CASEMAP
219cdf0e10cSrcweir     virtual void CharCaseMap( const SvxCaseMapItem& );
220cdf0e10cSrcweir 
221cdf0e10cSrcweir     /// Sfx item Sfx item RES_CHRATR_COLOR
222cdf0e10cSrcweir     virtual void CharColor( const SvxColorItem& );
223cdf0e10cSrcweir 
224cdf0e10cSrcweir     /// Sfx item Sfx item RES_CHRATR_CONTOUR
225cdf0e10cSrcweir     virtual void CharContour( const SvxContourItem& );
226cdf0e10cSrcweir 
227cdf0e10cSrcweir     /// Sfx item RES_CHRATR_CROSSEDOUT
228cdf0e10cSrcweir     virtual void CharCrossedOut( const SvxCrossedOutItem& rHt );
229cdf0e10cSrcweir 
230cdf0e10cSrcweir     /// Sfx item RES_CHRATR_ESCAPEMENT
231cdf0e10cSrcweir     virtual void CharEscapement( const SvxEscapementItem& );
232cdf0e10cSrcweir 
233cdf0e10cSrcweir     /// Sfx item RES_CHRATR_FONT
234cdf0e10cSrcweir     virtual void CharFont( const SvxFontItem& );
235cdf0e10cSrcweir 
236cdf0e10cSrcweir     /// Sfx item RES_CHRATR_FONTSIZE
237cdf0e10cSrcweir     virtual void CharFontSize( const SvxFontHeightItem& );
238cdf0e10cSrcweir 
239cdf0e10cSrcweir     /// Sfx item RES_CHRATR_KERNING
240cdf0e10cSrcweir     virtual void CharKerning( const SvxKerningItem& );
241cdf0e10cSrcweir 
242cdf0e10cSrcweir     /// Sfx item RES_CHRATR_LANGUAGE
243cdf0e10cSrcweir     virtual void CharLanguage( const SvxLanguageItem& );
244cdf0e10cSrcweir 
245cdf0e10cSrcweir     /// Sfx item RES_CHRATR_POSTURE
246cdf0e10cSrcweir     virtual void CharPosture( const SvxPostureItem& );
247cdf0e10cSrcweir 
248cdf0e10cSrcweir     /// Sfx item RES_CHRATR_SHADOWED
249cdf0e10cSrcweir     virtual void CharShadow( const SvxShadowedItem& );
250cdf0e10cSrcweir 
251cdf0e10cSrcweir     /// Sfx item RES_CHRATR_UNDERLINE
252cdf0e10cSrcweir     virtual void CharUnderline( const SvxUnderlineItem& );
253cdf0e10cSrcweir 
254cdf0e10cSrcweir     /// Sfx item RES_CHRATR_WEIGHT
255cdf0e10cSrcweir     virtual void CharWeight( const SvxWeightItem& );
256cdf0e10cSrcweir 
257cdf0e10cSrcweir     /// Sfx item RES_CHRATR_AUTOKERN
258cdf0e10cSrcweir     virtual void CharAutoKern( const SvxAutoKernItem& );
259cdf0e10cSrcweir 
260cdf0e10cSrcweir     /// Sfx item RES_CHRATR_BLINK
261cdf0e10cSrcweir     virtual void CharAnimatedText( const SvxBlinkItem& );
262cdf0e10cSrcweir 
263cdf0e10cSrcweir     /// Sfx item RES_CHRATR_BACKGROUND
264cdf0e10cSrcweir     virtual void CharBackground( const SvxBrushItem& );
265cdf0e10cSrcweir 
266cdf0e10cSrcweir     /// Sfx item RES_CHRATR_CJK_FONT
267cdf0e10cSrcweir     virtual void CharFontCJK( const SvxFontItem& );
268cdf0e10cSrcweir 
269cdf0e10cSrcweir     /// Sfx item RES_CHRATR_CJK_FONTSIZE
CharFontSizeCJK(const SvxFontHeightItem & rHt)270cdf0e10cSrcweir     virtual void CharFontSizeCJK( const SvxFontHeightItem& rHt ) { CharFontSize( rHt ); }
271cdf0e10cSrcweir 
272cdf0e10cSrcweir     /// Sfx item RES_CHRATR_CJK_LANGUAGE
CharLanguageCJK(const SvxLanguageItem & rHt)273cdf0e10cSrcweir     virtual void CharLanguageCJK( const SvxLanguageItem& rHt ) { CharLanguage( rHt ); }
274cdf0e10cSrcweir 
275cdf0e10cSrcweir     /// Sfx item RES_CHRATR_CJK_POSTURE
CharPostureCJK(const SvxPostureItem & rHt)276cdf0e10cSrcweir     virtual void CharPostureCJK( const SvxPostureItem& rHt ) { CharPosture( rHt ); }
277cdf0e10cSrcweir 
278cdf0e10cSrcweir     /// Sfx item RES_CHRATR_CJK_WEIGHT
CharWeightCJK(const SvxWeightItem & rHt)279cdf0e10cSrcweir     virtual void CharWeightCJK( const SvxWeightItem& rHt ) { CharWeight( rHt ); }
280cdf0e10cSrcweir 
281cdf0e10cSrcweir     /// Sfx item RES_CHRATR_CTL_FONT
282cdf0e10cSrcweir     virtual void CharFontCTL( const SvxFontItem& );
283cdf0e10cSrcweir 
284cdf0e10cSrcweir     /// Sfx item RES_CHRATR_CTL_FONTSIZE
CharFontSizeCTL(const SvxFontHeightItem & rHt)285cdf0e10cSrcweir     virtual void CharFontSizeCTL( const SvxFontHeightItem& rHt ) { CharFontSize( rHt ); }
286cdf0e10cSrcweir 
287cdf0e10cSrcweir     /// Sfx item RES_CHRATR_CTL_LANGUAGE
CharLanguageCTL(const SvxLanguageItem & rHt)288cdf0e10cSrcweir     virtual void CharLanguageCTL( const SvxLanguageItem& rHt ) { CharLanguage( rHt ); }
289cdf0e10cSrcweir 
290cdf0e10cSrcweir     /// Sfx item RES_CHRATR_CTL_POSTURE
291cdf0e10cSrcweir     virtual void CharPostureCTL( const SvxPostureItem& );
292cdf0e10cSrcweir 
293cdf0e10cSrcweir     /// Sfx item RES_CHRATR_CTL_WEIGHT
294cdf0e10cSrcweir     virtual void CharWeightCTL( const SvxWeightItem& );
295cdf0e10cSrcweir 
296ca2e0b95SLei De Bin     /// Sfx item RES_CHRATR_BidiRTL
297ca2e0b95SLei De Bin     virtual void CharBidiRTL( const SfxPoolItem& rHt );
298ca2e0b95SLei De Bin 
299ca2e0b95SLei De Bin     /// Sfx item RES_CHRATR_IdctHint
300ca2e0b95SLei De Bin     virtual void CharIdctHint( const SfxPoolItem& rHt );
301ca2e0b95SLei De Bin 
302cdf0e10cSrcweir     /// Sfx item RES_CHRATR_ROTATE
303cdf0e10cSrcweir     virtual void CharRotate( const SvxCharRotateItem& );
304cdf0e10cSrcweir 
305cdf0e10cSrcweir     /// Sfx item RES_CHRATR_EMPHASIS_MARK
306cdf0e10cSrcweir     virtual void CharEmphasisMark( const SvxEmphasisMarkItem& rHt );
307cdf0e10cSrcweir 
308cdf0e10cSrcweir     /// Sfx item RES_CHRATR_TWO_LINES
309cdf0e10cSrcweir     virtual void CharTwoLines( const SvxTwoLinesItem& );
310cdf0e10cSrcweir 
311cdf0e10cSrcweir     /// Sfx item RES_CHRATR_SCALEW
312cdf0e10cSrcweir     virtual void CharScaleWidth( const SvxCharScaleWidthItem& );
313cdf0e10cSrcweir 
314cdf0e10cSrcweir     /// Sfx item RES_CHRATR_RELIEF
315cdf0e10cSrcweir     virtual void CharRelief( const SvxCharReliefItem& );
316cdf0e10cSrcweir 
317cdf0e10cSrcweir     /// Sfx item RES_CHRATR_HIDDEN
318cdf0e10cSrcweir     virtual void CharHidden( const SvxCharHiddenItem& );
319cdf0e10cSrcweir 
320cdf0e10cSrcweir     /// Sfx item RES_TXTATR_INETFMT
321cdf0e10cSrcweir     virtual void TextINetFormat( const SwFmtINetFmt& );
322cdf0e10cSrcweir 
323cdf0e10cSrcweir     /// Sfx item RES_TXTATR_CHARFMT
324cdf0e10cSrcweir     virtual void TextCharFormat( const SwFmtCharFmt& );
325cdf0e10cSrcweir 
326cdf0e10cSrcweir     /// Sfx item RES_TXTATR_FTN
327cdf0e10cSrcweir     virtual void TextFootnote_Impl( const SwFmtFtn& );
328cdf0e10cSrcweir 
329cdf0e10cSrcweir     /// Sfx item RES_PARATR_LINESPACING
330cdf0e10cSrcweir     virtual void ParaLineSpacing_Impl( short nSpace, short nMulti );
331cdf0e10cSrcweir 
332cdf0e10cSrcweir     /// Sfx item RES_PARATR_ADJUST
333cdf0e10cSrcweir     virtual void ParaAdjust( const SvxAdjustItem& rHt );
334cdf0e10cSrcweir 
335cdf0e10cSrcweir     /// Sfx item RES_PARATR_SPLIT
336cdf0e10cSrcweir     virtual void ParaSplit( const SvxFmtSplitItem& );
337cdf0e10cSrcweir 
338cdf0e10cSrcweir     /// Sfx item RES_PARATR_WIDOWS
339cdf0e10cSrcweir     virtual void ParaWidows( const SvxWidowsItem& rHt );
340cdf0e10cSrcweir 
341cdf0e10cSrcweir     /// Sfx item RES_PARATR_TABSTOP
342cdf0e10cSrcweir     virtual void ParaTabStop( const SvxTabStopItem& rHt );
343cdf0e10cSrcweir 
344cdf0e10cSrcweir     /// Sfx item RES_PARATR_HYPHENZONE
345cdf0e10cSrcweir     virtual void ParaHyphenZone( const SvxHyphenZoneItem& );
346cdf0e10cSrcweir 
347cdf0e10cSrcweir     /// Sfx item RES_PARATR_NUMRULE
348cdf0e10cSrcweir     virtual void ParaNumRule_Impl( const SwTxtNode *pTxtNd, sal_Int32 nLvl, sal_Int32 nNumId );
349cdf0e10cSrcweir 
350cdf0e10cSrcweir     /// Sfx item RES_PARATR_SCRIPTSPACE
351cdf0e10cSrcweir     virtual void ParaScriptSpace( const SfxBoolItem& );
352cdf0e10cSrcweir 
353cdf0e10cSrcweir     /// Sfx item RES_PARATR_VERTALIGN
354cdf0e10cSrcweir     virtual void ParaVerticalAlign( const SvxParaVertAlignItem& );
355cdf0e10cSrcweir 
356cdf0e10cSrcweir     /// Sfx item RES_PARATR_SNAPTOGRID
357cdf0e10cSrcweir     virtual void ParaSnapToGrid( const SvxParaGridItem& );
358cdf0e10cSrcweir 
359cdf0e10cSrcweir     /// Sfx item RES_FRM_SIZE
360cdf0e10cSrcweir     virtual void FormatFrameSize( const SwFmtFrmSize& );
361cdf0e10cSrcweir 
362cdf0e10cSrcweir     /// Sfx item RES_PAPER_BIN
363cdf0e10cSrcweir     virtual void FormatPaperBin( const SvxPaperBinItem& );
364cdf0e10cSrcweir 
365cdf0e10cSrcweir     /// Sfx item RES_LR_SPACE
366cdf0e10cSrcweir     virtual void FormatLRSpace( const SvxLRSpaceItem& );
367cdf0e10cSrcweir 
368cdf0e10cSrcweir     /// Sfx item RES_UL_SPACE
369cdf0e10cSrcweir     virtual void FormatULSpace( const SvxULSpaceItem& rHt );
370cdf0e10cSrcweir 
371cdf0e10cSrcweir     /// Sfx item RES_SURROUND
372cdf0e10cSrcweir     virtual void FormatSurround( const SwFmtSurround& );
373cdf0e10cSrcweir 
374cdf0e10cSrcweir     /// Sfx item RES_VERT_ORIENT
375cdf0e10cSrcweir     virtual void FormatVertOrientation( const SwFmtVertOrient& );
376cdf0e10cSrcweir 
377cdf0e10cSrcweir     /// Sfx item RES_HORI_ORIENT
378cdf0e10cSrcweir     virtual void FormatHorizOrientation( const SwFmtHoriOrient& );
379cdf0e10cSrcweir 
380cdf0e10cSrcweir     /// Sfx item RES_ANCHOR
381cdf0e10cSrcweir     virtual void FormatAnchor( const SwFmtAnchor& );
382cdf0e10cSrcweir 
383cdf0e10cSrcweir     /// Sfx item RES_BACKGROUND
384cdf0e10cSrcweir     virtual void FormatBackground( const SvxBrushItem& );
385cdf0e10cSrcweir 
386cdf0e10cSrcweir     /// Sfx item RES_BOX
387cdf0e10cSrcweir     virtual void FormatBox( const SvxBoxItem& );
388cdf0e10cSrcweir 
389cdf0e10cSrcweir     /// Sfx item RES_COL
390cdf0e10cSrcweir     virtual void FormatColumns_Impl( sal_uInt16 nCols, const SwFmtCol & rCol, bool bEven, SwTwips nPageSize );
391cdf0e10cSrcweir 
392cdf0e10cSrcweir     /// Sfx item RES_KEEP
393cdf0e10cSrcweir     virtual void FormatKeep( const SvxFmtKeepItem& );
394cdf0e10cSrcweir 
395cdf0e10cSrcweir     /// Sfx item RES_TEXTGRID
396cdf0e10cSrcweir     virtual void FormatTextGrid( const SwTextGridItem& );
397cdf0e10cSrcweir 
398cdf0e10cSrcweir     /// Sfx item RES_LINENUMBER
399cdf0e10cSrcweir     virtual void FormatLineNumbering( const SwFmtLineNumber& );
400cdf0e10cSrcweir 
401cdf0e10cSrcweir     /// Sfx item RES_FRAMEDIR
402cdf0e10cSrcweir     virtual void FormatFrameDirection( const SvxFrameDirectionItem& );
403cdf0e10cSrcweir 
404cdf0e10cSrcweir     /// Write the expanded field
405cdf0e10cSrcweir     virtual void WriteExpand( const SwField* pFld );
406cdf0e10cSrcweir 
407cdf0e10cSrcweir     virtual void RefField ( const SwField& rFld, const String& rRef );
408cdf0e10cSrcweir     virtual void HiddenField( const SwField& rFld );
409cdf0e10cSrcweir     virtual void SetField( const SwField& rFld, ww::eField eType, const String& rCmd );
410cdf0e10cSrcweir     virtual void PostitField( const SwField* pFld );
411cdf0e10cSrcweir     virtual bool DropdownField( const SwField* pFld );
412cdf0e10cSrcweir 
413cdf0e10cSrcweir     virtual bool AnalyzeURL( const String& rURL, const String& rTarget, String* pLinkURL, String* pMark );
414cdf0e10cSrcweir 
415cdf0e10cSrcweir     /// Reference to the export, where to get the data from
416cdf0e10cSrcweir     WW8Export &m_rWW8Export;
417cdf0e10cSrcweir 
418cdf0e10cSrcweir     /// For output of styles.
419cdf0e10cSrcweir     ///
420cdf0e10cSrcweir     /// We have to remember these positions between the StartStyle() and
421cdf0e10cSrcweir     /// EndStyle().
422cdf0e10cSrcweir     sal_uInt16 nPOPosStdLen1, nPOPosStdLen2;
423cdf0e10cSrcweir 
424cdf0e10cSrcweir     /// For output of styles.
425cdf0e10cSrcweir     ///
426cdf0e10cSrcweir     /// We have to remember this position between StartStyleProperties() and
427cdf0e10cSrcweir     /// EndStyleProperties().
428cdf0e10cSrcweir     sal_uInt16 m_nStyleStartSize, m_nStyleLenPos;
429cdf0e10cSrcweir 
430cdf0e10cSrcweir     /// For output of styles.
431cdf0e10cSrcweir     ///
432cdf0e10cSrcweir     /// Used between StartStyles() and EndStyles().
433cdf0e10cSrcweir     sal_uLong m_nStyAnzPos;
434cdf0e10cSrcweir 
435cdf0e10cSrcweir     /// For output of run properties.
436cdf0e10cSrcweir     ///
437cdf0e10cSrcweir     /// We have to remember the number of field results, and do not export end
438cdf0e10cSrcweir     /// of the field results if we were forced to split text.
439cdf0e10cSrcweir     sal_uInt16 m_nFieldResults;
440cdf0e10cSrcweir 
441f66c5aafSOliver-Rainer Wittmann     bool mbOnTOXEnding;
442f66c5aafSOliver-Rainer Wittmann 
443cdf0e10cSrcweir public:
WW8AttributeOutput(WW8Export & rWW8Export)444f66c5aafSOliver-Rainer Wittmann     WW8AttributeOutput( WW8Export &rWW8Export ) : AttributeOutputBase(), m_rWW8Export( rWW8Export ),mbOnTOXEnding(false) {}
~WW8AttributeOutput()445cdf0e10cSrcweir     virtual ~WW8AttributeOutput() {}
446cdf0e10cSrcweir 
447cdf0e10cSrcweir     /// Return the right export class.
GetExport()448cdf0e10cSrcweir     virtual MSWordExportBase& GetExport() { return m_rWW8Export; }
449cdf0e10cSrcweir 
450cdf0e10cSrcweir protected:
451cdf0e10cSrcweir     /// Output the bold etc. attributes
452cdf0e10cSrcweir     void OutputWW8Attribute( sal_uInt8 nId, bool bVal );
453cdf0e10cSrcweir 
454cdf0e10cSrcweir     /// Output the bold etc. attributes, the Complex Text Layout version
455cdf0e10cSrcweir     void OutputWW8AttributeCTL( sal_uInt8 nId, bool bVal );
456cdf0e10cSrcweir 
457cdf0e10cSrcweir };
458cdf0e10cSrcweir 
459cdf0e10cSrcweir #endif // _WW8ATTRIBUTEOUTPUT_HXX_
460cdf0e10cSrcweir 
461cdf0e10cSrcweir /* vi:set tabstop=4 shiftwidth=4 expandtab: */
462