LibreOffice Module sw (master)  1
swhtml.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 #ifndef INCLUDED_SW_SOURCE_FILTER_HTML_SWHTML_HXX
20 #define INCLUDED_SW_SOURCE_FILTER_HTML_SWHTML_HXX
21 
22 #include <config_java.h>
23 
24 #include <sfx2/sfxhtml.hxx>
25 #include <svl/listener.hxx>
26 #include <svl/macitem.hxx>
27 #include <svtools/htmltokn.h>
28 #include <editeng/svxenum.hxx>
29 #include <rtl/ref.hxx>
30 #include <rtl/ustrbuf.hxx>
31 #include <fltshell.hxx>
32 #include <swtypes.hxx>
33 #include <com/sun/star/drawing/XShape.hpp>
34 #include <com/sun/star/form/XFormComponent.hpp>
35 #include <com/sun/star/beans/XPropertySet.hpp>
36 
37 #include <memory>
38 #include <vector>
39 #include <deque>
40 #include <stack>
41 #include <set>
42 
43 class SfxMedium;
44 class SfxViewFrame;
45 class SdrObject;
46 class SvxMacroTableDtor;
47 class SwDoc;
48 class SwPaM;
49 class SwViewShell;
50 class SwStartNode;
51 class SwFormatColl;
52 class SwField;
53 class SwHTMLForm_Impl;
54 class SwApplet_Impl;
56 class HTMLTableCnts;
57 struct SwPending;
59 struct ImplSVEvent;
60 
63 
66 
67 // some things you often need
71 
72 // attribute stack:
73 
74 class HTMLAttr;
75 typedef std::deque<HTMLAttr *> HTMLAttrs;
76 
77 // Table of attributes: The order here is important: The attributes in the
78 // beginning of the table will set first in EndAllAttrs.
80 {
81  HTMLAttr* pKeep; // frame attributes
86 
87  HTMLAttr* pLRSpace; // paragraph attributes
96 
97  HTMLAttr* pCharFormats; // text attributes
99 
100  HTMLAttr* pBold; // character attributes
118  HTMLAttr* pKerning; // (only for SPACER)
119  HTMLAttr* pCharBrush; // character background
124 };
125 
126 class HTMLAttr
127 {
128  friend class SwHTMLParser;
129  friend class CellSaveStruct;
130 
133  sal_Int32 m_nStartContent;
134  sal_Int32 m_nEndContent;
135  bool m_bInsAtStart : 1;
136  bool m_bLikePara : 1; // set attribute above the whole paragraph
137  bool m_bValid : 1; // is the attribute valid?
138 
139  std::unique_ptr<SfxPoolItem> m_pItem;
140  std::shared_ptr<HTMLAttrTable> m_xAttrTab;
141  HTMLAttr *m_pNext; // still to close attributes with different values
142  HTMLAttr *m_pPrev; // already closed but not set attributes
143  HTMLAttr **m_ppHead; // list head
144 
145  HTMLAttr( const SwPosition& rPos, const SfxPoolItem& rItem,
146  HTMLAttr **pHd, const std::shared_ptr<HTMLAttrTable>& rAttrTab );
147 
148  HTMLAttr( const HTMLAttr &rAttr, const SwNodeIndex &rEndPara,
149  sal_Int32 nEndCnt, HTMLAttr **pHd, const std::shared_ptr<HTMLAttrTable>& rAttrTab );
150 
151 public:
152 
153  ~HTMLAttr();
154 
155  HTMLAttr *Clone( const SwNodeIndex& rEndPara, sal_Int32 nEndCnt ) const;
156  void Reset( const SwNodeIndex& rSttPara, sal_Int32 nSttCnt,
157  HTMLAttr **pHd, const std::shared_ptr<HTMLAttrTable>& rAttrTab );
158  inline void SetStart( const SwPosition& rPos );
159 
160  SwNodeOffset GetStartParagraphIdx() const { return m_nStartPara.GetIndex(); }
161  SwNodeOffset GetEndParagraphIdx() const { return m_nEndPara.GetIndex(); }
162 
163  const SwNodeIndex& GetStartParagraph() const { return m_nStartPara; }
164  const SwNodeIndex& GetEndParagraph() const { return m_nEndPara; }
165 
166  sal_Int32 GetStartContent() const { return m_nStartContent; }
167  sal_Int32 GetEndContent() const { return m_nEndContent; }
168 
169  bool IsLikePara() const { return m_bLikePara; }
170  void SetLikePara() { m_bLikePara = true; }
171 
172  SfxPoolItem& GetItem() { return *m_pItem; }
173  const SfxPoolItem& GetItem() const { return *m_pItem; }
174 
175  HTMLAttr *GetNext() const { return m_pNext; }
176  void InsertNext( HTMLAttr *pNxt ) { m_pNext = pNxt; }
177 
178  HTMLAttr *GetPrev() const { return m_pPrev; }
179  void InsertPrev( HTMLAttr *pPrv );
180  void ClearPrev() { m_pPrev = nullptr; }
181 
182  void SetHead(HTMLAttr **ppHd, const std::shared_ptr<HTMLAttrTable>& rAttrTab)
183  {
184  m_ppHead = ppHd;
185  m_xAttrTab = rAttrTab;
186  }
187 
188  // During setting attributes from styles it can happen that these
189  // shouldn't be set anymore. To delete them would be very expensive, because
190  // you don't know all the places where they are linked in. Therefore they're
191  // made invalid and deleted at the next call of SetAttr_().
192  void Invalidate() { m_bValid = false; }
193 };
194 
196 
198  AM_NORMAL, // no paragraph spacing handling
199  AM_NOSPACE, // set spacing hard to 0cm
200  AM_SPACE, // set spacing hard to 0.5cm
201  AM_SOFTNOSPACE, // don't set spacing, but save 0cm
202  AM_NONE // no append
203 };
204 
206 {
207  HTMLAttrs m_aAttrs; // the attributes created in the context
208 
209  OUString m_aClass; // context class
210 
211  std::unique_ptr<HTMLAttrContext_SaveDoc> m_pSaveDocContext;
212  std::unique_ptr<SfxItemSet> m_pFrameItemSet;
213 
214  HtmlTokenId m_nToken; // the token of the context
215 
216  sal_uInt16 m_nTextFormatColl; // a style created in the context or zero
217 
218  sal_uInt16 m_nLeftMargin; // a changed left border
219  sal_uInt16 m_nRightMargin; // a changed right border
220  sal_uInt16 m_nFirstLineIndent; // a changed first line indent
221 
222  sal_uInt16 m_nUpperSpace;
223  sal_uInt16 m_nLowerSpace;
224 
226 
227  bool m_bLRSpaceChanged : 1; // left/right border, changed indent?
228  bool m_bULSpaceChanged : 1; // top/bottom border changed?
229  bool m_bDefaultTextFormatColl : 1;// nTextFormatColl is only default
230  bool m_bSpansSection : 1; // the context opens a SwSection
231  bool m_bPopStack : 1; // delete above stack elements
233  bool m_bRestartPRE : 1;
234  bool m_bRestartXMP : 1;
237 
238  bool m_bVisible = true;
239 
240 public:
241  void ClearSaveDocContext();
242 
243  HTMLAttrContext( HtmlTokenId nTokn, sal_uInt16 nPoolId, const OUString& rClass,
244  bool bDfltColl=false );
245  explicit HTMLAttrContext( HtmlTokenId nTokn );
247 
248  HtmlTokenId GetToken() const { return m_nToken; }
249 
250  sal_uInt16 GetTextFormatColl() const { return m_bDefaultTextFormatColl ? 0 : m_nTextFormatColl; }
251  sal_uInt16 GetDefaultTextFormatColl() const { return m_bDefaultTextFormatColl ? m_nTextFormatColl : 0; }
252 
253  const OUString& GetClass() const { return m_aClass; }
254 
255  inline void SetMargins( sal_uInt16 nLeft, sal_uInt16 nRight, short nIndent );
256 
257  bool IsLRSpaceChanged() const { return m_bLRSpaceChanged; }
258  inline void GetMargins( sal_uInt16& nLeft, sal_uInt16& nRight,
259  short &nIndent ) const;
260 
261  inline void SetULSpace( sal_uInt16 nUpper, sal_uInt16 nLower );
262  bool IsULSpaceChanged() const { return m_bULSpaceChanged; }
263  inline void GetULSpace( sal_uInt16& rUpper, sal_uInt16& rLower ) const;
264 
265  bool HasAttrs() const { return !m_aAttrs.empty(); }
266  const HTMLAttrs& GetAttrs() const { return m_aAttrs; }
267  HTMLAttrs& GetAttrs() { return m_aAttrs; }
268 
269  void SetSpansSection( bool bSet ) { m_bSpansSection = bSet; }
270  bool GetSpansSection() const { return m_bSpansSection; }
271 
272  void SetPopStack( bool bSet ) { m_bPopStack = bSet; }
273  bool GetPopStack() const { return m_bPopStack; }
274 
275  bool HasSaveDocContext() const { return m_pSaveDocContext!=nullptr; }
276  HTMLAttrContext_SaveDoc *GetSaveDocContext( bool bCreate=false );
277 
278  const SfxItemSet *GetFrameItemSet() const { return m_pFrameItemSet.get(); }
279  SfxItemSet *GetFrameItemSet( SwDoc *pCreateDoc );
280 
281  void SetFinishPREListingXMP( bool bSet ) { m_bFinishPREListingXMP = bSet; }
283 
284  void SetRestartPRE( bool bSet ) { m_bRestartPRE = bSet; }
285  bool IsRestartPRE() const { return m_bRestartPRE; }
286 
287  void SetRestartXMP( bool bSet ) { m_bRestartXMP = bSet; }
288  bool IsRestartXMP() const { return m_bRestartXMP; }
289 
290  void SetRestartListing( bool bSet ) { m_bRestartListing = bSet; }
291  bool IsRestartListing() const { return m_bRestartListing; }
292 
293  void SetHeaderOrFooter( bool bSet ) { m_bHeaderOrFooter = bSet; }
294  bool IsHeaderOrFooter() const { return m_bHeaderOrFooter; }
295 
296  void SetAppendMode( SwHTMLAppendMode eMode ) { m_eAppend = eMode; }
298 
299  void SetVisible(bool bVisible) { m_bVisible = bVisible; }
300  bool IsVisible() const { return m_bVisible; }
301 };
302 
303 typedef std::vector<std::unique_ptr<HTMLAttrContext>> HTMLAttrContexts;
304 
305 class HTMLTable;
306 class SwCSS1Parser;
308 
309 typedef std::vector<std::unique_ptr<ImageMap>> ImageMaps;
310 
311 enum class HtmlContextFlags {
312  ProtectStack = 0x0001,
313  StripPara = 0x0002,
314  KeepNumrule = 0x0004,
315  HeaderDist = 0x0008,
316  FooterDist = 0x0010,
317  KeepAttrs = 0x0020,
318  MultiColMask = StripPara | KeepNumrule | KeepAttrs // for headers, footers or footnotes
319 };
320 namespace o3tl
321 {
322  template<> struct typed_flags<HtmlContextFlags> : is_typed_flags<HtmlContextFlags, 0x03f> {};
323 }
324 
326  Box = 0x0001,
327  Background = 0x0002,
328  Padding = 0x0004,
329  Direction = 0x0008,
330 };
331 namespace o3tl
332 {
333  template<> struct typed_flags<HtmlFrameFormatFlags> : is_typed_flags<HtmlFrameFormatFlags, 0x0f> {};
334 }
335 
337 {
339 public:
342  virtual void Notify(const SfxHint&) override;
343 };
344 
345 class SwHTMLParser : public SfxHTMLParser, public SvtListener
346 {
347  friend class SectionSaveStruct;
348  friend class CellSaveStruct;
349  friend class CaptionSaveStruct;
350 
351  /*
352  Progress bar
353  */
354  std::unique_ptr<ImportProgress> m_xProgress;
355 
356  OUString m_aPathToFile;
357  OUString m_sBaseURL;
358  OUString m_aBasicLib;
359  OUString m_aBasicModule;
360  OUString m_aScriptSource; // content of the current script block
361  OUString m_aScriptType; // type of read script (StarBasic/VB/JAVA)
362  OUString m_aScriptURL; // script URL
363  OUString m_aStyleSource; // content of current style sheet
364  OUString m_aContents; // text of current marquee, field and so
365  OUStringBuffer m_sTitle;
366  OUString m_aUnknownToken; // a started unknown token
368  OUString m_sJmpMark;
369 
370  std::vector<sal_uInt16> m_aBaseFontStack; // stack for <BASEFONT>
371  // Bit 0-2: font size (1-7)
372  std::vector<sal_uInt16> m_aFontStack; // stack for <FONT>, <BIG>, <SMALL>
373  // Bit 0-2: font size (1-7)
374  // Bit 15: font colour was set
375 
376  HTMLAttrs m_aSetAttrTab;// "closed", not set attributes
377  HTMLAttrs m_aParaAttrs; // temporary paragraph attributes
378  std::shared_ptr<HTMLAttrTable> m_xAttrTab; // "open" attributes
379  HTMLAttrContexts m_aContexts;// the current context of attribute/token
380  std::vector<std::unique_ptr<SwHTMLFrameFormatListener>> m_aMoveFlyFrames;// Fly-Frames, the anchor is moved
381  std::deque<sal_Int32> m_aMoveFlyCnts;// and the Content-Positions
382  //stray SwTableBoxes which need to be deleted to avoid leaking, but hold
383  //onto them until parsing is done
384  std::vector<std::unique_ptr<SwTableBox>> m_aOrphanedTableBoxes;
385 
386  std::unique_ptr<SwApplet_Impl> m_pAppletImpl; // current applet
387 
388  std::unique_ptr<SwCSS1Parser> m_pCSS1Parser; // Style-Sheet-Parser
389  std::unique_ptr<SwHTMLNumRuleInfo> m_pNumRuleInfo;
390  std::vector<SwPending> m_vPendingStack;
391 
393  SwPaM *m_pPam; // SwPosition should be enough, or ??
394  SwViewShell *m_pActionViewShell; // SwViewShell, where StartAction was called
396 
397  std::vector<HTMLTable*> m_aTables;
398  std::shared_ptr<HTMLTable> m_xTable; // current "outermost" table
399  SwHTMLForm_Impl* m_pFormImpl; // current form
400  SdrObject *m_pMarquee; // current marquee
401  std::unique_ptr<SwField> m_xField; // current field
402  ImageMap *m_pImageMap; // current image map
403  std::unique_ptr<ImageMaps> m_pImageMaps;
404  std::unique_ptr<SwHTMLFootEndNote_Impl> m_pFootEndNoteImpl;
405 
406  Size m_aHTMLPageSize; // page size of HTML template
407 
408  sal_uInt32 m_aFontHeights[7]; // font heights 1-7
410 
411  sal_uInt16 m_nBaseFontStMin;
412  sal_uInt16 m_nFontStMin;
413  sal_uInt16 m_nDefListDeep;
414  sal_uInt16 m_nFontStHeadStart; // elements in font stack at <Hn>
415  sal_uInt16 m_nSBModuleCnt; // counter for basic modules
416  sal_uInt16 m_nMissingImgMaps; // How many image maps are still missing?
417  size_t m_nParaCnt;
418  size_t m_nContextStMin; // lower limit of PopContext
419  size_t m_nContextStAttrMin; // lower limit of attributes
420  sal_uInt16 m_nSelectEntryCnt; // Number of entries in the actual listbox
421  HtmlTokenId m_nOpenParaToken; // opened paragraph element
422 
423  enum class JumpToMarks { NONE, Mark, Table, Region, Graphic };
425 
426 #ifdef DBG_UTIL
427  sal_uInt16 m_nContinue; // depth of Continue calls
428 #endif
429 
430  SvxAdjust m_eParaAdjust; // adjustment of current paragraph
431  HTMLScriptLanguage m_eScriptLang; // current script language
432 
433  bool m_bOldIsHTMLMode : 1; // Was it a HTML document?
434 
435  bool m_bDocInitialized : 1; // document resp. shell was initialize
436  // flag to prevent double init via recursion
437  bool m_bViewCreated : 1; // the view was already created (asynchronous)
439 
440  bool m_bInFloatingFrame : 1; // We are in a floating frame
441  bool m_bInField : 1;
442  bool m_bKeepUnknown : 1; // handle unknown/not supported tokens
443  // 8
444  bool m_bCallNextToken : 1; // In tables: call NextToken in any case
445  bool m_bIgnoreRawData : 1; // ignore content of script/style
446  bool m_bLBEntrySelected : 1; // Is the current option selected?
447  bool m_bTAIgnoreNewPara : 1; // ignore next LF in text area?
448  bool m_bFixMarqueeWidth : 1; // Change size of marquee?
449 
450  bool m_bUpperSpace : 1; // top paragraph spacing is needed
451  bool m_bNoParSpace : 1;
452  // 16
453 
454  bool m_bInNoEmbed : 1; // we are in a NOEMBED area
455 
456  bool m_bInTitle : 1; // we are in title
457 
458  bool m_bChkJumpMark : 1; // maybe jump to predetermined mark
460  bool m_bFixSelectWidth : 1; // Set new width of select?
461  bool m_bTextArea : 1;
462  // 24
463  bool m_bSelect : 1;
467  bool m_bRemoveHidden : 1; // the filter implementation might set the hidden flag
468 
469  bool m_bBodySeen : 1;
474 
478 
480  OUString m_InfoNames[4];
481 
483 
484  bool m_bXHTML = false;
485  bool m_bReqIF = false;
486 
491  std::stack<SwOLENode*> m_aEmbeds;
492 
493  std::set<OUString> m_aAllowedRTFOLEMimeTypes;
494 
495  void DeleteFormImpl();
496 
497  void DocumentDetected();
498  void Show();
499  void ShowStatline();
500  SwViewShell *CallStartAction( SwViewShell *pVSh = nullptr, bool bChkPtr = true );
501  SwViewShell *CallEndAction( bool bChkAction = false, bool bChkPtr = true );
503 
504  DECL_LINK( AsyncCallback, void*, void );
505 
506  // set attribute on document
507  void SetAttr_( bool bChkEnd, bool bBeforeTable, std::deque<std::unique_ptr<HTMLAttr>> *pPostIts );
508  void SetAttr( bool bChkEnd = true, bool bBeforeTable = false,
509  std::deque<std::unique_ptr<HTMLAttr>> *pPostIts = nullptr )
510  {
511  if( !m_aSetAttrTab.empty() || !m_aMoveFlyFrames.empty() )
512  SetAttr_( bChkEnd, bBeforeTable, pPostIts );
513  }
514 
515  HTMLAttr **GetAttrTabEntry( sal_uInt16 nWhich );
516 
517  // create a new text node on PaM position
518  bool AppendTextNode( SwHTMLAppendMode eMode=AM_NORMAL, bool bUpdateNum=true );
519  void AddParSpace();
520 
521  // start/end an attribute
522  // ppDepAttr indicated an attribute table entry, which attribute has to be
523  // set, before the attribute is closed
524  void NewAttr(const std::shared_ptr<HTMLAttrTable>& rAttrTab, HTMLAttr **ppAttr, const SfxPoolItem& rItem);
525  bool EndAttr( HTMLAttr *pAttr, bool bChkEmpty=true );
526  void DeleteAttr( HTMLAttr* pAttr );
527 
528  void EndContextAttrs( HTMLAttrContext *pContext );
529  void SaveAttrTab(std::shared_ptr<HTMLAttrTable> const & rNewAttrTab);
530  void SplitAttrTab( const SwPosition& rNewPos );
531  void SplitAttrTab(std::shared_ptr<HTMLAttrTable> const & rNewAttrTab, bool bMoveEndBack);
532  void RestoreAttrTab(std::shared_ptr<HTMLAttrTable> const & rNewAttrTab);
533  void InsertAttr( const SfxPoolItem& rItem, bool bInsAtStart );
534  void InsertAttrs( std::deque<std::unique_ptr<HTMLAttr>> rAttrs );
535 
536  bool DoPositioning( SfxItemSet &rItemSet,
537  SvxCSS1PropertyInfo &rPropInfo,
538  HTMLAttrContext *pContext );
539  bool CreateContainer( const OUString& rClass, SfxItemSet &rItemSet,
540  SvxCSS1PropertyInfo &rPropInfo,
541  HTMLAttrContext *pContext );
542  bool EndSection( bool bLFStripped=false );
543 
544  void InsertAttrs( SfxItemSet &rItemSet, SvxCSS1PropertyInfo const &rPropInfo,
545  HTMLAttrContext *pContext, bool bCharLvl=false );
546  void InsertAttr( HTMLAttr **ppAttr, const SfxPoolItem & rItem,
547  HTMLAttrContext *pCntxt );
548  void SplitPREListingXMP( HTMLAttrContext *pCntxt );
549  void FixHeaderFooterDistance( bool bHeader, const SwPosition *pOldPos );
550 
551  void EndContext( HTMLAttrContext *pContext );
552  void ClearContext( HTMLAttrContext *pContext );
553 
554  const SwFormatColl *GetCurrFormatColl() const;
555 
557 
559  // add parameter <bCountedInList>
560  void SetNodeNum( sal_uInt8 nLevel );
561 
562  // Manage paragraph styles
563 
564  // set the style resp. its attributes on the stack
565  void SetTextCollAttrs( HTMLAttrContext *pContext = nullptr );
566 
567  void InsertParaAttrs( const SfxItemSet& rItemSet );
568 
569  // Manage attribute context
570 
571  // save current context
572  void PushContext(std::unique_ptr<HTMLAttrContext>& rCntxt)
573  {
574  m_aContexts.push_back(std::move(rCntxt));
575  }
576 
577  // Fetch top/specified context but not outside the context with token
578  // nLimit. If bRemove set then remove it.
579  std::unique_ptr<HTMLAttrContext> PopContext(HtmlTokenId nToken = HtmlTokenId::NONE);
580 
581  void GetMarginsFromContext( sal_uInt16 &nLeft, sal_uInt16 &nRight, short& nIndent,
582  bool bIgnoreCurrent=false ) const;
583  void GetMarginsFromContextWithNumberBullet( sal_uInt16 &nLeft, sal_uInt16 &nRight,
584  short& nIndent ) const;
585  void GetULSpaceFromContext( sal_uInt16 &rUpper, sal_uInt16 &rLower ) const;
586 
587  void MovePageDescAttrs( SwNode *pSrcNd, SwNodeOffset nDestIdx, bool bFormatBreak );
588 
589  // Handling of tags at paragraph level
590 
591  // <P> and <H1> to <H6>
592  void NewPara();
593  void EndPara( bool bReal = false );
594  void NewHeading( HtmlTokenId nToken );
595  void EndHeading();
596 
597  // <ADDRESS>, <BLOCKQUOTE> and <PRE>
598  void NewTextFormatColl( HtmlTokenId nToken, sal_uInt16 nPoolId );
599  void EndTextFormatColl( HtmlTokenId nToken );
600 
601  // <DIV> and <CENTER>
602  void NewDivision( HtmlTokenId nToken );
603  void EndDivision();
604 
605  // insert/close Fly-Frames
606  void InsertFlyFrame( const SfxItemSet& rItemSet, HTMLAttrContext *pCntxt,
607  const OUString& rId );
608 
609  void SaveDocContext( HTMLAttrContext *pCntxt, HtmlContextFlags nFlags,
610  const SwPosition *pNewPos );
611  void RestoreDocContext( HTMLAttrContext *pCntxt );
612 
613  // end all opened <DIV> areas
614  bool EndSections( bool bLFStripped );
615 
616  // <MULTICOL>
617  void NewMultiCol( sal_uInt16 columnsFromCss=0 );
618 
619  // <MARQUEE>
620  void NewMarquee( HTMLTable *pCurTable=nullptr );
621  void EndMarquee();
622  void InsertMarqueeText();
623 
624  // Handling of lists
625 
626  // order list <OL> and unordered list <UL> with <LI>
627  void NewNumberBulletList( HtmlTokenId nToken );
628  void EndNumberBulletList( HtmlTokenId nToken = HtmlTokenId::NONE );
629  void NewNumberBulletListItem( HtmlTokenId nToken );
630  void EndNumberBulletListItem( HtmlTokenId nToken, bool bSetColl);
631 
632  // definitions lists <DL> with <DD>, <DT>
633  void NewDefList();
634  void EndDefList();
635  void NewDefListItem( HtmlTokenId nToken );
636  void EndDefListItem( HtmlTokenId nToken = HtmlTokenId::NONE );
637 
638  // Handling of tags on character level
639 
640  // handle tags like <B>, <I> and so, which enable/disable a certain
641  // attribute or like <SPAN> get attributes from styles
642  void NewStdAttr( HtmlTokenId nToken );
643  void NewStdAttr( HtmlTokenId nToken,
644  HTMLAttr **ppAttr, const SfxPoolItem & rItem,
645  HTMLAttr **ppAttr2=nullptr, const SfxPoolItem *pItem2=nullptr,
646  HTMLAttr **ppAttr3=nullptr, const SfxPoolItem *pItem3=nullptr );
647  void EndTag( HtmlTokenId nToken );
648 
649  // handle font attributes
650  void NewBasefontAttr(); // for <BASEFONT>
651  void EndBasefontAttr();
652  void NewFontAttr( HtmlTokenId nToken ); // for <FONT>, <BIG> and <SMALL>
653  void EndFontAttr( HtmlTokenId nToken );
654 
655  // tags realized via character styles
656  void NewCharFormat( HtmlTokenId nToken );
657 
658  void ClearFootnotesMarksInRange(const SwNodeIndex& rSttIdx, const SwNodeIndex& rEndIdx);
659 
660  void DeleteSection(SwStartNode* pSttNd);
661 
662  // <SDFIELD>
663 public:
664  static SvxNumType GetNumType( const OUString& rStr, SvxNumType eDfltType );
665 private:
666  void NewField();
667  void EndField();
668  void InsertFieldText();
669 
670  // <SPACER>
671  void InsertSpacer();
672 
673  // Inserting graphics, plug-ins and applets
674 
675  // search image maps and link with graphic nodes
676  ImageMap *FindImageMap( const OUString& rURL ) const;
677  void ConnectImageMaps();
678 
679  // find anchor of Fly-Frames and set corresponding attributes
680  // in Attrset (htmlgrin.cxx)
681  void SetAnchorAndAdjustment( sal_Int16 eVertOri,
682  sal_Int16 eHoriOri,
683  const SvxCSS1PropertyInfo &rPropInfo,
684  SfxItemSet& rFrameSet );
685  void SetAnchorAndAdjustment( sal_Int16 eVertOri,
686  sal_Int16 eHoriOri,
687  SfxItemSet& rFrameSet,
688  bool bDontAppend=false );
689  void SetAnchorAndAdjustment( const SvxCSS1PropertyInfo &rPropInfo,
690  SfxItemSet &rFrameItemSet );
691 
692  static void SetFrameFormatAttrs( SfxItemSet &rItemSet,
693  HtmlFrameFormatFlags nFlags, SfxItemSet &rFrameItemSet );
694 
695  // create frames and register auto bound frames
696  void RegisterFlyFrame( SwFrameFormat *pFlyFrame );
697 
698  // Adjust the size of the Fly-Frames to requirements and conditions
699  // (not for graphics, therefore htmlplug.cxx)
700  static void SetFixSize( const Size& rPixSize, const Size& rTwipDfltSize,
701  bool bPercentWidth, bool bPercentHeight,
702  SvxCSS1PropertyInfo const &rPropInfo,
703  SfxItemSet& rFlyItemSet );
704  static void SetVarSize( SvxCSS1PropertyInfo const &rPropInfo,
705  SfxItemSet& rFlyItemSet, SwTwips nDfltWidth=MINLAY,
706  sal_uInt8 nDefaultPercentWidth=0 );
707  static void SetSpace( const Size& rPixSpace, SfxItemSet &rItemSet,
708  SvxCSS1PropertyInfo &rPropInfo, SfxItemSet& rFlyItemSet );
709 
710  sal_uInt16 IncGrfsThatResizeTable();
711 
712  void GetDefaultScriptType( ScriptType& rType,
713  OUString& rTypeStr ) const;
714 
715  // the actual insert methods for <IMG>, <EMBED>, <APPLET> and <PARAM>
716  void InsertImage(); // htmlgrin.cxx
717  bool InsertEmbed(); // htmlplug.cxx
718 
719 #if HAVE_FEATURE_JAVA
720  void NewObject(); // htmlplug.cxx
721 #endif
722  void EndObject(); // link CommandLine with applet (htmlplug.cxx)
723 #if HAVE_FEATURE_JAVA
724  void InsertApplet(); // htmlplug.cxx
725 #endif
726  void EndApplet(); // link CommandLine with applet (htmlplug.cxx)
727  void InsertParam(); // htmlplug.cxx
728 
729  void InsertFloatingFrame();
730 
731  // parse <BODY>-tag: set background graphic and background colour (htmlgrin.cxx)
732  void InsertBodyOptions();
733 
734  // Inserting links and bookmarks (htmlgrin.cxx)
735 
736  // parse <A>-tag: insert a link resp. bookmark
737  void NewAnchor();
738  void EndAnchor();
739 
740  // insert bookmark
741  void InsertBookmark( const OUString& rName );
742 
743  void InsertCommentText( const char *pTag );
744  void InsertComment( const OUString& rName, const char *pTag = nullptr );
745 
746  // Has the current paragraph bookmarks?
747  bool HasCurrentParaBookmarks( bool bIgnoreStack=false ) const;
748 
749  // Inserting script/basic elements
750 
751  // parse the last read basic module (htmlbas.cxx)
752  void NewScript();
753  void EndScript();
754 
755  void AddScriptSource();
756 
757  // insert event in SFX configuration (htmlbas.cxx)
758  void InsertBasicDocEvent( const OUString& aEventName, const OUString& rName,
759  ScriptType eScrType, const OUString& rScrType );
760 
761  // Inserting styles
762 
763  // <STYLE>
764  void NewStyle();
765  void EndStyle();
766 
767  static inline bool HasStyleOptions( std::u16string_view rStyle, std::u16string_view rId,
768  std::u16string_view rClass, const OUString *pLang=nullptr,
769  const OUString *pDir=nullptr );
770  bool ParseStyleOptions( const OUString &rStyle, const OUString &rId,
771  const OUString &rClass, SfxItemSet &rItemSet,
772  SvxCSS1PropertyInfo &rPropInfo,
773  const OUString *pLang=nullptr, const OUString *pDir=nullptr );
774 
775  // Inserting Controls and Forms (htmlform.cxx)
776 
777  // Insert draw object into document
778  void InsertDrawObject( SdrObject* pNewDrawObj, const Size& rSpace,
779  sal_Int16 eVertOri,
780  sal_Int16 eHoriOri,
781  SfxItemSet& rCSS1ItemSet,
782  SvxCSS1PropertyInfo& rCSS1PropInfo );
783  css::uno::Reference< css::drawing::XShape > InsertControl(
784  const css::uno::Reference< css::form::XFormComponent > & rFormComp,
785  const css::uno::Reference< css::beans::XPropertySet > & rFCompPropSet,
786  const Size& rSize,
787  sal_Int16 eVertOri,
788  sal_Int16 eHoriOri,
789  SfxItemSet& rCSS1ItemSet,
790  SvxCSS1PropertyInfo& rCSS1PropInfo,
791  const SvxMacroTableDtor& rMacroTable,
792  const std::vector<OUString>& rUnoMacroTable,
793  const std::vector<OUString>& rUnoMacroParamTable,
794  bool bSetPropSet = true,
795  bool bHidden = false );
796  void SetControlSize( const css::uno::Reference< css::drawing::XShape > & rShape, const Size& rTextSz,
797  bool bMinWidth, bool bMinHeight );
798 
799 public:
800  static void ResizeDrawObject( SdrObject* pObj, SwTwips nWidth );
801 private:
802  static void RegisterDrawObjectToTable( HTMLTable *pCurTable, SdrObject* pObj,
803  sal_uInt8 nWidth );
804 
805  void NewForm( bool bAppend=true );
806  void EndForm( bool bAppend=true );
807 
808  // Insert methods for <INPUT>, <TEXTAREA> and <SELECT>
809  void InsertInput();
810 
811  void NewTextArea();
812  void InsertTextAreaText( HtmlTokenId nToken );
813  void EndTextArea();
814 
815  void NewSelect();
816  void InsertSelectOption();
817  void InsertSelectText();
818  void EndSelect();
819 
820  // Inserting tables (htmltab.cxx)
821 public:
822 
823  // Insert box content after the given node
824  const SwStartNode *InsertTableSection( const SwStartNode *pPrevStNd );
825 
826  // Insert box content at the end of the table containing the PaM
827  // and move the PaM into the cell
828  const SwStartNode *InsertTableSection( sal_uInt16 nPoolId );
829 
830  // Insert methods for various table tags
831  std::unique_ptr<HTMLTableCnts> InsertTableContents( bool bHead );
832 
833 private:
834  // Create a section for the temporary storage of the table caption
836 
837  void BuildTableCell( HTMLTable *pTable, bool bReadOptions, bool bHead );
838  void BuildTableRow( HTMLTable *pTable, bool bReadOptions,
839  SvxAdjust eGrpAdjust, sal_Int16 eVertOri );
840  void BuildTableSection( HTMLTable *pTable, bool bReadOptions, bool bHead );
841  void BuildTableColGroup( HTMLTable *pTable, bool bReadOptions );
842  void BuildTableCaption( HTMLTable *pTable );
843  std::shared_ptr<HTMLTable> BuildTable(SvxAdjust eCellAdjust,
844  bool bIsParentHead = false,
845  bool bHasParentSection=true,
846  bool bHasToFlow = false);
847 
848  // misc ...
849 
850  void ParseMoreMetaOptions();
851 
852  bool FileDownload( const OUString& rURL, OUString& rStr );
853  void InsertLink();
854 
855  void InsertIDOption();
856  void InsertLineBreak();
857  void InsertHorzRule();
858 
859  void FillEndNoteInfo( const OUString& rContent );
860  void FillFootNoteInfo( const OUString& rContent );
861  void InsertFootEndNote( const OUString& rName, bool bEndNote, bool bFixed );
862  void FinishFootEndNote();
863  void InsertFootEndNoteText();
864  SwNodeIndex *GetFootEndNoteSection( const OUString& rName );
865 
866  sal_Int32 StripTrailingLF();
867 
868  // Remove empty paragraph at the PaM position
869  void StripTrailingPara();
870  // If removing an empty node would corrupt the document
871  bool CanRemoveNode(SwNodeOffset nNodeIdx) const;
872 
873  // Are there fly frames in the current paragraph?
874  bool HasCurrentParaFlys( bool bNoSurroundOnly = false,
875  bool bSurroundOnly = false ) const;
876 
877  bool PendingObjectsInPaM(SwPaM& rPam) const;
878 
880  {
881  private:
883  public:
885  : m_rParser(rParser)
886  {
887  ++m_rParser.m_nTableDepth;
888  }
889  bool TooDeep() const { return m_rParser.m_nTableDepth > 1024; }
891  {
892  --m_rParser.m_nTableDepth;
893  }
894  };
895 
896 public: // used in tables
897 
898  // Create brush item (with new) or 0
899  SvxBrushItem* CreateBrushItem( const Color *pColor,
900  const OUString &rImageURL,
901  const OUString &rStyle,
902  const OUString &rId,
903  const OUString &rClass );
904 
905 protected:
906  // Executed for each token recognized by CallParser
907  virtual void NextToken( HtmlTokenId nToken ) override;
908  virtual ~SwHTMLParser() override;
909 
910  // If the document is removed, remove the parser as well
911  virtual void Notify(const SfxHint&) override;
912 
913  virtual void AddMetaUserDefined( OUString const & i_rMetaName ) override;
914 
915 public:
916 
917  SwHTMLParser( SwDoc* pD, SwPaM & rCursor, SvStream& rIn,
918  const OUString& rFileName,
919  const OUString& rBaseURL,
920  bool bReadNewDoc,
921  SfxMedium* pMed, bool bReadUTF8,
922  bool bIgnoreHTMLComments,
923  const OUString& rNamespace);
924 
925  virtual SvParserState CallParser() override;
926 
927  static sal_uInt16 ToTwips( sal_uInt16 nPixel );
928 
929  // for reading asynchronously from SvStream
930  virtual void Continue( HtmlTokenId nToken ) override;
931 
932  virtual bool ParseMetaOptions( const css::uno::Reference<css::document::XDocumentProperties>&,
933  SvKeyValueIterator* ) override;
934 
935 
937  {
938  m_aTables.push_back(pNew);
939  }
940 
941  void DeregisterHTMLTable(HTMLTable* pOld);
942 
943  SwDoc* GetDoc() const;
944 
945  bool IsReqIF() const;
946 
948 
949  void NotifyMacroEventRead();
950 
952  static OUString StripQueryFromPath(const OUString& rBase, const OUString& rPath);
953 };
954 
956 {
957  virtual ~SwPendingData() {}
958 };
959 
960 struct SwPending
961 {
963  std::unique_ptr<SwPendingData> pData;
964 
966  : nToken( nTkn )
967  {}
968 };
969 
970 inline void HTMLAttr::SetStart( const SwPosition& rPos )
971 {
972  m_nStartPara = rPos.nNode;
976 }
977 
978 inline void HTMLAttrContext::SetMargins( sal_uInt16 nLeft, sal_uInt16 nRight,
979  short nIndent )
980 {
981  m_nLeftMargin = nLeft;
982  m_nRightMargin = nRight;
983  m_nFirstLineIndent = nIndent;
984  m_bLRSpaceChanged = true;
985 }
986 
987 inline void HTMLAttrContext::GetMargins( sal_uInt16& nLeft,
988  sal_uInt16& nRight,
989  short& nIndent ) const
990 {
991  if( m_bLRSpaceChanged )
992  {
993  nLeft = m_nLeftMargin;
994  nRight = m_nRightMargin;
995  nIndent = m_nFirstLineIndent;
996  }
997 }
998 
999 inline void HTMLAttrContext::SetULSpace( sal_uInt16 nUpper, sal_uInt16 nLower )
1000 {
1001  m_nUpperSpace = nUpper;
1002  m_nLowerSpace = nLower;
1003  m_bULSpaceChanged = true;
1004 }
1005 
1006 inline void HTMLAttrContext::GetULSpace( sal_uInt16& rUpper,
1007  sal_uInt16& rLower ) const
1008 {
1009  if( m_bULSpaceChanged )
1010  {
1011  rUpper = m_nUpperSpace;
1012  rLower = m_nLowerSpace;
1013  }
1014 }
1015 
1016 inline bool SwHTMLParser::HasStyleOptions( std::u16string_view rStyle,
1017  std::u16string_view rId,
1018  std::u16string_view rClass,
1019  const OUString *pLang,
1020  const OUString *pDir )
1021 {
1022  return !rStyle.empty() || !rId.empty() || !rClass.empty() ||
1023  (pLang && !pLang->isEmpty()) || (pDir && !pDir->isEmpty());
1024 }
1025 
1026 class SwTextFootnote;
1027 
1029 {
1030  OUString sName;
1032  SwHTMLTextFootnote(const OUString &rName, SwTextFootnote* pInTextFootnote)
1033  : sName(rName)
1034  , pTextFootnote(pInTextFootnote)
1035  {
1036  }
1037 };
1038 
1040 {
1041  std::vector<SwHTMLTextFootnote> aTextFootnotes;
1042 
1043  OUString sName;
1044  OUString sContent; // information for the last footnote
1045  bool bEndNote;
1046  bool bFixed;
1047 };
1048 
1049 #endif
1050 
1051 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
sal_uInt16 IncGrfsThatResizeTable()
Definition: htmltab.cxx:3166
void SetNodeNum(sal_uInt8 nLevel)
void NewDefList()
Definition: swhtml.cxx:4330
std::vector< SwPending > m_vPendingStack
Definition: swhtml.hxx:390
Starts a section of nodes in the document model.
Definition: node.hxx:313
void GetULSpace(sal_uInt16 &rUpper, sal_uInt16 &rLower) const
Definition: swhtml.hxx:1006
SwHTMLFrameFormatListener(SwFrameFormat *pFrameFormat)
Definition: swhtml.cxx:2733
bool EndSection(bool bLFStripped=false)
Definition: htmlsect.cxx:515
void EndSelect()
Definition: htmlform.cxx:2357
static void SetSpace(const Size &rPixSpace, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, SfxItemSet &rFlyItemSet)
Definition: htmlplug.cxx:243
SwViewShell * CheckActionViewShell()
Definition: swhtml.cxx:2718
virtual void Notify(const SfxHint &) override
Definition: swhtml.cxx:961
void ShowStatline()
Definition: swhtml.cxx:2601
void NewTextArea()
Definition: htmlform.cxx:1861
bool m_bSelect
Definition: swhtml.hxx:463
void SetAnchorAndAdjustment(sal_Int16 eVertOri, sal_Int16 eHoriOri, const SvxCSS1PropertyInfo &rPropInfo, SfxItemSet &rFrameSet)
Definition: htmlgrin.cxx:150
void SplitPREListingXMP(HTMLAttrContext *pCntxt)
Definition: htmlctxt.cxx:750
bool IsFinishPREListingXMP() const
Definition: swhtml.hxx:282
void DeleteSection(SwStartNode *pSttNd)
Definition: htmltab.cxx:4931
sal_uInt16 m_nMissingImgMaps
Definition: swhtml.hxx:416
SwFrameFormat * GetFrameFormat()
Definition: swhtml.hxx:341
bool HasSaveDocContext() const
Definition: swhtml.hxx:275
void FinishFootEndNote()
Definition: htmlftn.cxx:192
virtual void Continue(HtmlTokenId nToken) override
Definition: swhtml.cxx:619
Marks a position in the document model.
Definition: pam.hxx:36
void SetControlSize(const css::uno::Reference< css::drawing::XShape > &rShape, const Size &rTextSz, bool bMinWidth, bool bMinHeight)
Definition: htmlform.cxx:623
std::unique_ptr< HTMLAttrContext_SaveDoc > m_pSaveDocContext
Definition: swhtml.hxx:211
void InsertImage()
Definition: htmlgrin.cxx:317
void EndTextFormatColl(HtmlTokenId nToken)
Definition: swhtml.cxx:4289
void SetAttr(bool bChkEnd=true, bool bBeforeTable=false, std::deque< std::unique_ptr< HTMLAttr >> *pPostIts=nullptr)
Definition: swhtml.hxx:508
void EndForm(bool bAppend=true)
Definition: htmlform.cxx:1373
std::vector< sal_uInt16 > m_aBaseFontStack
Definition: swhtml.hxx:370
HTMLAttr * pINetFormat
Definition: swhtml.hxx:98
bool m_bFuzzing
Definition: swhtml.hxx:472
bool m_bIgnoreRawData
Definition: swhtml.hxx:445
void FillEndNoteInfo(const OUString &rContent)
Definition: htmlftn.cxx:118
HTMLAttrs m_aSetAttrTab
Definition: swhtml.hxx:376
constexpr auto toTwips(N number, Length from)
HTMLOptionEnum< SvxAdjust > const aHTMLPAlignTable[]
Definition: swhtml.cxx:142
bool m_bFixMarqueeWidth
Definition: swhtml.hxx:448
SdrObject * m_pMarquee
Definition: swhtml.hxx:400
void FixHeaderFooterDistance(bool bHeader, const SwPosition *pOldPos)
Definition: htmlsect.cxx:425
bool m_bInsAtStart
Definition: swhtml.hxx:135
void EndHeading()
Definition: swhtml.cxx:4159
ImageMap * FindImageMap(const OUString &rURL) const
Definition: htmlgrin.cxx:95
bool m_bInFloatingFrame
Definition: swhtml.hxx:440
Size m_aHTMLPageSize
Definition: swhtml.hxx:406
std::vector< sal_uInt16 > m_aFontStack
Definition: swhtml.hxx:372
SwStartNode * InsertTempTableCaptionSection()
Definition: htmltab.cxx:2630
void InsertParam()
Definition: htmlplug.cxx:997
sal_uInt16 m_nSelectEntryCnt
Definition: swhtml.hxx:420
OUString m_aPathToFile
Definition: swhtml.hxx:356
void Show()
Definition: swhtml.cxx:2570
bool FileDownload(const OUString &rURL, OUString &rStr)
Definition: htmlcss1.cxx:1694
std::shared_ptr< HTMLTable > BuildTable(SvxAdjust eCellAdjust, bool bIsParentHead=false, bool bHasParentSection=true, bool bHasToFlow=false)
Definition: htmltab.cxx:4953
void EndScript()
Definition: htmlbas.cxx:70
SwNodeIndex nNode
Definition: pam.hxx:38
bool IsReadingHeaderOrFooter() const
Definition: swhtml.hxx:947
std::unique_ptr< SwHTMLFootEndNote_Impl > m_pFootEndNoteImpl
Definition: swhtml.hxx:404
void SaveAttrTab(std::shared_ptr< HTMLAttrTable > const &rNewAttrTab)
Definition: swhtml.cxx:3322
HTMLOptionEnum< sal_Int16 > const aHTMLImgVAlignTable[]
Definition: htmlgrin.cxx:82
void InsertBookmark(const OUString &rName)
Definition: htmlgrin.cxx:1350
void NewPara()
Definition: swhtml.cxx:3950
long Long
HTMLAttr * pFont
Definition: swhtml.hxx:109
bool m_bHeaderOrFooter
Definition: swhtml.hxx:236
std::unique_ptr< SfxItemSet > m_pFrameItemSet
Definition: swhtml.hxx:212
void NewNumberBulletList(HtmlTokenId nToken)
#define MINLAY
Definition: swtypes.hxx:63
HTMLAttr * GetNext() const
Definition: swhtml.hxx:175
HTMLAttr * pFontHeightCTL
Definition: swhtml.hxx:114
Base class of all fields.
Definition: fldbas.hxx:290
const SwStartNode * InsertTableSection(const SwStartNode *pPrevStNd)
Definition: htmltab.cxx:2522
HTMLAttr * pCharBox
Definition: swhtml.hxx:123
OUString m_aUnknownToken
Definition: swhtml.hxx:366
HTMLAttr * pCaseMap
Definition: swhtml.hxx:117
sal_uInt16 m_nTextFormatColl
Definition: swhtml.hxx:216
void NewAttr(const std::shared_ptr< HTMLAttrTable > &rAttrTab, HTMLAttr **ppAttr, const SfxPoolItem &rItem)
Definition: swhtml.cxx:3086
HTMLAttr * pLanguageCTL
Definition: swhtml.hxx:122
sal_uInt16 m_nBaseFontStMin
Definition: swhtml.hxx:411
void SetRestartListing(bool bSet)
Definition: swhtml.hxx:290
Definition: doc.hxx:188
SwViewShell * CallEndAction(bool bChkAction=false, bool bChkPtr=true)
Definition: swhtml.cxx:2663
JumpToMarks m_eJumpTo
Definition: swhtml.hxx:424
std::unique_ptr< HTMLTableCnts > InsertTableContents(bool bHead)
Definition: htmltab.cxx:3127
HTMLAttr * pItalicCTL
Definition: swhtml.hxx:105
void AddScriptSource()
Definition: htmlbas.cxx:179
constexpr sal_uInt8 MAXLEVEL
Definition: swtypes.hxx:93
HTMLAttrContexts m_aContexts
Definition: swhtml.hxx:379
const SfxItemSet * GetFrameItemSet() const
Definition: swhtml.hxx:278
bool m_bKeepUnknown
Definition: swhtml.hxx:442
const OUString & GetClass() const
Definition: swhtml.hxx:253
sal_uInt32 m_aFontHeights[7]
Definition: swhtml.hxx:408
bool InsertEmbed()
Definition: htmlplug.cxx:349
sal_Int32 StripTrailingLF()
Definition: htmltab.cxx:2644
bool m_bXHTML
Definition: swhtml.hxx:484
OUString m_sBaseURL
Definition: swhtml.hxx:357
void NewForm(bool bAppend=true)
Definition: htmlform.cxx:1210
std::vector< std::unique_ptr< HTMLAttrContext > > HTMLAttrContexts
Definition: swhtml.hxx:303
std::unique_ptr< SwPendingData > pData
Definition: swhtml.hxx:963
sal_uInt16 m_nRightMargin
Definition: swhtml.hxx:219
bool m_bReadingHeaderOrFooter
Definition: swhtml.hxx:470
bool HasAttrs() const
Definition: swhtml.hxx:265
void SplitAttrTab(const SwPosition &rNewPos)
Definition: htmlctxt.cxx:172
HTMLAttr * pEscapement
Definition: swhtml.hxx:116
bool m_bUpdateDocStat
Definition: swhtml.hxx:459
std::unique_ptr< ImageMaps > m_pImageMaps
all Image-Maps that have been read
Definition: swhtml.hxx:403
OUString m_aScriptURL
Definition: swhtml.hxx:362
void InsertLink()
Definition: htmlcss1.cxx:1728
HTMLAttr * m_pNext
Definition: swhtml.hxx:141
void SetAppendMode(SwHTMLAppendMode eMode)
Definition: swhtml.hxx:296
void NewField()
Definition: htmlfld.cxx:211
void InsertComment(const OUString &rName, const char *pTag=nullptr)
Definition: htmlfld.cxx:600
HTMLAttr * pItalic
Definition: swhtml.hxx:103
bool m_isInTableStructure
Definition: swhtml.hxx:473
static void RegisterDrawObjectToTable(HTMLTable *pCurTable, SdrObject *pObj, sal_uInt8 nWidth)
Definition: htmltab.cxx:3171
TableDepthGuard(SwHTMLParser &rParser)
Definition: swhtml.hxx:884
SwNodeIndex * m_pSttNdIdx
Definition: swhtml.hxx:395
SvParserState
bool m_bLikePara
Definition: swhtml.hxx:136
void InsertFieldText()
Definition: htmlfld.cxx:578
SwNodeIndex m_nStartPara
Definition: swhtml.hxx:131
HTMLAttr * pFontCTL
Definition: swhtml.hxx:111
SvxNumType
HtmlFrameFormatFlags
Definition: swhtml.hxx:325
virtual SvParserState CallParser() override
Definition: swhtml.cxx:557
HTMLAttr * pBlink
Definition: swhtml.hxx:108
void InsertBasicDocEvent(const OUString &aEventName, const OUString &rName, ScriptType eScrType, const OUString &rScrType)
Definition: htmlbas.cxx:226
void SetULSpace(sal_uInt16 nUpper, sal_uInt16 nLower)
Definition: swhtml.hxx:999
void SetMargins(sal_uInt16 nLeft, sal_uInt16 nRight, short nIndent)
Definition: swhtml.hxx:978
HTMLAttr * pSplit
Definition: swhtml.hxx:92
void InsertInput()
Definition: htmlform.cxx:1389
void NewDivision(HtmlTokenId nToken)
Definition: htmlsect.cxx:55
bool m_bBodySeen
Definition: swhtml.hxx:469
void RestoreDocContext(HTMLAttrContext *pCntxt)
Definition: htmlctxt.cxx:322
bool IsHeaderOrFooter() const
Definition: swhtml.hxx:294
HTMLAttr * pFontHeight
Definition: swhtml.hxx:112
bool m_bFixSelectWidth
Definition: swhtml.hxx:460
void EndTextArea()
Definition: htmlform.cxx:2086
void ClearPrev()
Definition: swhtml.hxx:180
HTMLAttr * pPageDesc
Definition: swhtml.hxx:85
void GetMarginsFromContext(sal_uInt16 &nLeft, sal_uInt16 &nRight, short &nIndent, bool bIgnoreCurrent=false) const
Definition: htmlcss1.cxx:2155
css::uno::Reference< css::drawing::XShape > InsertControl(const css::uno::Reference< css::form::XFormComponent > &rFormComp, const css::uno::Reference< css::beans::XPropertySet > &rFCompPropSet, const Size &rSize, sal_Int16 eVertOri, sal_Int16 eHoriOri, SfxItemSet &rCSS1ItemSet, SvxCSS1PropertyInfo &rCSS1PropInfo, const SvxMacroTableDtor &rMacroTable, const std::vector< OUString > &rUnoMacroTable, const std::vector< OUString > &rUnoMacroParamTable, bool bSetPropSet=true, bool bHidden=false)
Definition: htmlform.cxx:846
bool m_bNotifyMacroEventRead
Definition: swhtml.hxx:471
void EndDefListItem(HtmlTokenId nToken=HtmlTokenId::NONE)
Definition: swhtml.cxx:4496
SwIndex nContent
Definition: pam.hxx:39
void GetDefaultScriptType(ScriptType &rType, OUString &rTypeStr) const
Definition: htmlgrin.cxx:291
static void ResizeDrawObject(SdrObject *pObj, SwTwips nWidth)
void InsertAttrs(std::deque< std::unique_ptr< HTMLAttr >> rAttrs)
Definition: swhtml.cxx:3487
sal_Int32 GetStartContent() const
Definition: swhtml.hxx:166
bool ParseStyleOptions(const OUString &rStyle, const OUString &rId, const OUString &rClass, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const OUString *pLang=nullptr, const OUString *pDir=nullptr)
Definition: htmlcss1.cxx:1855
const HTMLAttrs & GetAttrs() const
Definition: swhtml.hxx:266
std::vector< SwHTMLTextFootnote > aTextFootnotes
Definition: swhtml.hxx:1041
DECL_LINK(AsyncCallback, void *, void)
HTMLAttr * pKeep
Definition: swhtml.hxx:81
void NewAnchor()
Definition: htmlgrin.cxx:1125
HtmlContextFlags
Definition: swhtml.hxx:311
SwNodeOffset GetEndParagraphIdx() const
Definition: swhtml.hxx:161
SfxPoolItem & GetItem()
Definition: swhtml.hxx:172
void EndStyle()
Definition: htmlcss1.cxx:1683
void Reset(const SwNodeIndex &rSttPara, sal_Int32 nSttCnt, HTMLAttr **pHd, const std::shared_ptr< HTMLAttrTable > &rAttrTab)
Definition: swhtml.cxx:5549
void SetLikePara()
Definition: swhtml.hxx:170
bool IsRestartListing() const
Definition: swhtml.hxx:291
SwNodeOffset GetIndex() const
Definition: ndindex.hxx:154
void EndField()
Definition: htmlfld.cxx:538
void NewCharFormat(HtmlTokenId nToken)
Definition: swhtml.cxx:4832
bool m_bViewCreated
Definition: swhtml.hxx:437
SwPaM * m_pPam
Definition: swhtml.hxx:393
void InsertDrawObject(SdrObject *pNewDrawObj, const Size &rSpace, sal_Int16 eVertOri, sal_Int16 eHoriOri, SfxItemSet &rCSS1ItemSet, SvxCSS1PropertyInfo &rCSS1PropInfo)
bool CreateContainer(const OUString &rClass, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, HTMLAttrContext *pContext)
Definition: htmlctxt.cxx:503
void EndDivision()
Definition: htmlsect.cxx:396
bool m_bRemoveHidden
Definition: swhtml.hxx:467
int m_nTableDepth
Definition: swhtml.hxx:475
static OUString StripQueryFromPath(const OUString &rBase, const OUString &rPath)
Strips query and fragment from a URL path if base URL is a file:// one.
Definition: htmlplug.cxx:336
HTMLAttr * pBrush
Definition: swhtml.hxx:83
std::stack< SwOLENode * > m_aEmbeds
Non-owning pointers to already inserted OLE nodes, matching opened XHTML elements...
Definition: swhtml.hxx:491
std::vector< std::unique_ptr< SwHTMLFrameFormatListener > > m_aMoveFlyFrames
Definition: swhtml.hxx:380
void InsertBodyOptions()
Definition: htmlgrin.cxx:893
bool m_bRestartPRE
Definition: swhtml.hxx:233
ImplSVEvent * m_nEventId
Definition: swhtml.hxx:409
void EndApplet()
Definition: htmlplug.cxx:968
void InsertAttr(const SfxPoolItem &rItem, bool bInsAtStart)
Definition: swhtml.cxx:3478
bool m_bSetModEnabled
Definition: swhtml.hxx:438
void BuildTableColGroup(HTMLTable *pTable, bool bReadOptions)
Definition: htmltab.cxx:4270
sal_Int32 GetEndContent() const
Definition: swhtml.hxx:167
HTMLAttr * pULSpace
Definition: swhtml.hxx:88
constexpr tools::Long HTML_CTL_PARSPACE
Definition: swhtml.hxx:62
std::set< OUString > m_aAllowedRTFOLEMimeTypes
Definition: swhtml.hxx:493
sal_Int32 m_nEndContent
Definition: swhtml.hxx:134
HTMLAttr * pAdjust
Definition: swhtml.hxx:90
OUString m_sJmpMark
Definition: swhtml.hxx:368
void InsertHorzRule()
Definition: swhtml.cxx:5267
std::unique_ptr< ImportProgress > m_xProgress
Definition: swhtml.hxx:354
std::unique_ptr< SwField > m_xField
Definition: swhtml.hxx:401
void RegisterHTMLTable(HTMLTable *pNew)
Definition: swhtml.hxx:936
static void SetFrameFormatAttrs(SfxItemSet &rItemSet, HtmlFrameFormatFlags nFlags, SfxItemSet &rFrameItemSet)
Definition: htmlcss1.cxx:2078
sal_uInt16 m_nLeftMargin
Definition: swhtml.hxx:218
PaM is Point and Mark: a selection of the document model.
Definition: pam.hxx:137
void NewSelect()
Definition: htmlform.cxx:2143
sal_uInt16 m_nDefListDeep
Definition: swhtml.hxx:413
SwNodeIndex * GetFootEndNoteSection(const OUString &rName)
Definition: htmlftn.cxx:219
void InsertNext(HTMLAttr *pNxt)
Definition: swhtml.hxx:176
SwNodeIndex m_nEndPara
Definition: swhtml.hxx:132
void InsertFootEndNote(const OUString &rName, bool bEndNote, bool bFixed)
Definition: htmlftn.cxx:177
sal_uInt16 m_nFirstLineIndent
Definition: swhtml.hxx:220
void DeleteAttr(HTMLAttr *pAttr)
Definition: swhtml.cxx:3264
Style of a layout element.
Definition: frmfmt.hxx:59
std::deque< HTMLAttr * > HTMLAttrs
Definition: swhtml.hxx:74
bool m_bSpansSection
Definition: swhtml.hxx:230
bool m_bLBEntrySelected
Definition: swhtml.hxx:446
void EndTag(HtmlTokenId nToken)
Definition: swhtml.cxx:3620
SwHTMLTextFootnote(const OUString &rName, SwTextFootnote *pInTextFootnote)
Definition: swhtml.hxx:1032
void NewBasefontAttr()
Definition: swhtml.cxx:3631
HTMLAttr * pUnderline
Definition: swhtml.hxx:107
std::shared_ptr< HTMLAttrTable > m_xAttrTab
Definition: swhtml.hxx:140
OUString m_aStyleSource
Definition: swhtml.hxx:363
sal_uInt16 m_nFontStMin
Definition: swhtml.hxx:412
std::deque< sal_Int32 > m_aMoveFlyCnts
Definition: swhtml.hxx:381
SwDoc * GetDoc() const
Definition: htmltab.cxx:1064
bool IsLRSpaceChanged() const
Definition: swhtml.hxx:257
SvxAdjust
HTMLAttr * pLRSpace
Definition: swhtml.hxx:87
HTMLAttr * GetPrev() const
Definition: swhtml.hxx:178
void EndContextAttrs(HTMLAttrContext *pContext)
Definition: htmlcss1.cxx:2229
sal_Int32 m_nStartContent
Definition: swhtml.hxx:133
SwTextFootnote * pTextFootnote
Definition: swhtml.hxx:1031
void NewMarquee(HTMLTable *pCurTable=nullptr)
sal_uInt16 m_nLowerSpace
Definition: swhtml.hxx:223
SwHTMLParser(SwDoc *pD, SwPaM &rCursor, SvStream &rIn, const OUString &rFileName, const OUString &rBaseURL, bool bReadNewDoc, SfxMedium *pMed, bool bReadUTF8, bool bIgnoreHTMLComments, const OUString &rNamespace)
Definition: swhtml.cxx:255
void NotifyMacroEventRead()
Definition: htmlgrin.cxx:1521
void InsertFloatingFrame()
Definition: htmlplug.cxx:1030
sal_uInt16 GetDefaultTextFormatColl() const
Definition: swhtml.hxx:251
bool HasCurrentParaBookmarks(bool bIgnoreStack=false) const
Definition: htmlgrin.cxx:1357
HtmlTokenId m_nOpenParaToken
Definition: swhtml.hxx:421
void NewNumberBulletListItem(HtmlTokenId nToken)
void SetHeaderOrFooter(bool bSet)
Definition: swhtml.hxx:293
OUString m_aBasicModule
Definition: swhtml.hxx:359
std::unique_ptr< SwCSS1Parser > m_pCSS1Parser
Definition: swhtml.hxx:388
SwNodeOffset GetStartParagraphIdx() const
Definition: swhtml.hxx:160
bool m_bPopStack
Definition: swhtml.hxx:231
int m_nFloatingFrames
Definition: swhtml.hxx:476
HTMLAttrs & GetAttrs()
Definition: swhtml.hxx:267
void DocumentDetected()
Definition: swhtml.cxx:970
void BuildTableRow(HTMLTable *pTable, bool bReadOptions, SvxAdjust eGrpAdjust, sal_Int16 eVertOri)
Definition: htmltab.cxx:3882
HTMLAttr * pBold
Definition: swhtml.hxx:100
void AddParSpace()
Definition: swhtml.cxx:2492
HTMLAttrContext(HtmlTokenId nTokn, sal_uInt16 nPoolId, const OUString &rClass, bool bDfltColl=false)
Definition: htmlctxt.cxx:118
HTMLAttr * m_pPrev
Definition: swhtml.hxx:142
void DeleteFormImpl()
Definition: htmlform.cxx:589
void EndContext(HTMLAttrContext *pContext)
Definition: htmlctxt.cxx:370
virtual void AddMetaUserDefined(OUString const &i_rMetaName) override
Definition: swhtml.cxx:5596
size_t m_nParaCnt
Definition: swhtml.hxx:417
std::unique_ptr< HTMLAttrContext > PopContext(HtmlTokenId nToken=HtmlTokenId::NONE)
Definition: htmlcss1.cxx:2115
bool m_bUpperSpace
Definition: swhtml.hxx:450
HTMLAttr * pLanguageCJK
Definition: swhtml.hxx:121
void BuildTableCell(HTMLTable *pTable, bool bReadOptions, bool bHead)
Definition: htmltab.cxx:3177
bool GetPopStack() const
Definition: swhtml.hxx:273
void StripTrailingPara()
Definition: htmlgrin.cxx:1405
bool m_bInNoEmbed
Definition: swhtml.hxx:454
bool DoPositioning(SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, HTMLAttrContext *pContext)
Definition: htmlctxt.cxx:466
void BuildTableSection(HTMLTable *pTable, bool bReadOptions, bool bHead)
Definition: htmltab.cxx:4082
void EndAnchor()
Definition: htmlgrin.cxx:1333
void InsertIDOption()
Definition: swhtml.cxx:5099
void SetSpansSection(bool bSet)
Definition: swhtml.hxx:269
Marks a node in the document model.
Definition: ndindex.hxx:32
bool m_bInFootEndNoteSymbol
Definition: swhtml.hxx:465
void NewHeading(HtmlTokenId nToken)
Definition: swhtml.cxx:4073
bool m_bNoParSpace
Definition: swhtml.hxx:451
HTMLAttr * pBoldCJK
Definition: swhtml.hxx:101
bool m_bFinishPREListingXMP
Definition: swhtml.hxx:232
void DeregisterHTMLTable(HTMLTable *pOld)
Definition: htmltab.cxx:1057
void RegisterFlyFrame(SwFrameFormat *pFlyFrame)
Definition: htmlgrin.cxx:277
HTMLAttr * Clone(const SwNodeIndex &rEndPara, sal_Int32 nEndCnt) const
Definition: swhtml.cxx:5538
~HTMLAttr()
Definition: swhtml.cxx:5534
bool IsRestartPRE() const
Definition: swhtml.hxx:285
HTMLAttr * pKerning
Definition: swhtml.hxx:118
void InsertMarqueeText()
const SwNodeIndex & GetEndParagraph() const
Definition: swhtml.hxx:164
void InsertFlyFrame(const SfxItemSet &rItemSet, HTMLAttrContext *pCntxt, const OUString &rId)
Definition: htmlsect.cxx:771
bool IsVisible() const
Definition: swhtml.hxx:300
HTMLScriptLanguage m_eScriptLang
Definition: swhtml.hxx:431
HTMLAttr * pStrike
Definition: swhtml.hxx:106
void InsertParaAttrs(const SfxItemSet &rItemSet)
Definition: htmlcss1.cxx:2250
tools::Long SwTwips
Definition: swtypes.hxx:52
bool m_bULSpaceChanged
Definition: swhtml.hxx:228
void InsertCommentText(const char *pTag)
Definition: htmlfld.cxx:587
void GetMargins(sal_uInt16 &nLeft, sal_uInt16 &nRight, short &nIndent) const
Definition: swhtml.hxx:987
HTMLAttrContext_SaveDoc * GetSaveDocContext(bool bCreate=false)
Definition: htmlctxt.cxx:110
bool IsRestartXMP() const
Definition: swhtml.hxx:288
bool HasCurrentParaFlys(bool bNoSurroundOnly=false, bool bSurroundOnly=false) const
Definition: swhtml.cxx:4549
OUString m_aClass
Definition: swhtml.hxx:209
static sal_uInt16 ToTwips(sal_uInt16 nPixel)
Definition: swhtml.cxx:5062
SfxViewFrame * m_pTempViewFrame
Definition: swhtml.hxx:482
HTMLAttr * pBoldCTL
Definition: swhtml.hxx:102
SwTwips GetCurrentBrowseWidth()
Definition: swhtml.cxx:5074
size_t m_nContextStMin
Definition: swhtml.hxx:418
void NewMultiCol(sal_uInt16 columnsFromCss=0)
Definition: htmlsect.cxx:551
SwFrameFormat * m_pFrameFormat
Definition: swhtml.hxx:338
void EndNumberBulletListItem(HtmlTokenId nToken, bool bSetColl)
HtmlTokenId
HTMLAttrs m_aAttrs
Definition: swhtml.hxx:207
void ClearFootnotesMarksInRange(const SwNodeIndex &rSttIdx, const SwNodeIndex &rEndIdx)
Definition: htmltab.cxx:4883
bool m_bIgnoreHTMLComments
Definition: swhtml.hxx:466
SwHTMLParser & m_rParser
Definition: swhtml.hxx:882
void EndNumberBulletList(HtmlTokenId nToken=HtmlTokenId::NONE)
virtual void NextToken(HtmlTokenId nToken) override
Definition: swhtml.cxx:989
void EndObject()
Definition: htmlplug.cxx:838
bool m_bOldIsHTMLMode
Definition: swhtml.hxx:433
std::unique_ptr< SwApplet_Impl > m_pAppletImpl
Definition: swhtml.hxx:386
bool PendingObjectsInPaM(SwPaM &rPam) const
Definition: htmltab.cxx:5258
OUString m_aScriptType
Definition: swhtml.hxx:361
void InsertFootEndNoteText()
Definition: htmlftn.cxx:213
bool IsULSpaceChanged() const
Definition: swhtml.hxx:262
void MovePageDescAttrs(SwNode *pSrcNd, SwNodeOffset nDestIdx, bool bFormatBreak)
Definition: htmlsect.cxx:796
bool EndSections(bool bLFStripped)
Definition: htmlsect.cxx:533
void ConnectImageMaps()
Definition: htmlgrin.cxx:112
void InsertSpacer()
Definition: swhtml.cxx:4893
void NewDefListItem(HtmlTokenId nToken)
Definition: swhtml.cxx:4460
void EndBasefontAttr()
Definition: swhtml.cxx:3712
HTMLOptionEnum< sal_Int16 > const aHTMLImgHAlignTable[]
Definition: htmlgrin.cxx:75
sal_uInt16 m_nContinue
Definition: swhtml.hxx:427
HTMLAttr(const SwPosition &rPos, const SfxPoolItem &rItem, HTMLAttr **pHd, const std::shared_ptr< HTMLAttrTable > &rAttrTab)
Definition: swhtml.cxx:5500
HTMLAttrs m_aParaAttrs
Definition: swhtml.hxx:377
bool m_bInField
Definition: swhtml.hxx:441
OUString m_aContents
Definition: swhtml.hxx:364
std::vector< std::unique_ptr< ImageMap > > ImageMaps
Definition: swhtml.hxx:307
HTMLAttr * pDirection
Definition: swhtml.hxx:95
constexpr tools::Long HTML_DFLT_IMG_HEIGHT
Definition: swhtml.hxx:65
void InsertSelectText()
Definition: htmlform.cxx:2472
const SfxPoolItem & GetItem() const
Definition: swhtml.hxx:173
bool CanRemoveNode(SwNodeOffset nNodeIdx) const
Definition: swhtml.cxx:613
bool m_bValid
Definition: swhtml.hxx:137
Direction
std::vector< std::unique_ptr< SwTableBox > > m_aOrphanedTableBoxes
Definition: swhtml.hxx:384
void SetPopStack(bool bSet)
Definition: swhtml.hxx:272
static SvxNumType GetNumType(const OUString &rStr, SvxNumType eDfltType)
Definition: htmlfld.cxx:199
unsigned char sal_uInt8
void InsertTextAreaText(HtmlTokenId nToken)
Definition: htmlform.cxx:2113
HtmlTokenId GetToken() const
Definition: swhtml.hxx:248
HTMLAttr * pLanguage
Definition: swhtml.hxx:120
HTMLAttr * pFontHeightCJK
Definition: swhtml.hxx:113
OUString m_aScriptSource
Definition: swhtml.hxx:360
bool m_bDefaultTextFormatColl
Definition: swhtml.hxx:229
void GetULSpaceFromContext(sal_uInt16 &rUpper, sal_uInt16 &rLower) const
Definition: htmlcss1.cxx:2196
void ClearContext(HTMLAttrContext *pContext)
Definition: htmlctxt.cxx:419
bool m_bDocInitialized
Definition: swhtml.hxx:435
HTMLAttr * pCharFormats
Definition: swhtml.hxx:97
void SetTextCollAttrs(HTMLAttrContext *pContext=nullptr)
Definition: swhtml.cxx:4621
sal_Int32 GetIndex() const
Definition: index.hxx:91
SwHTMLNumRuleInfo & GetNumInfo()
Definition: swhtml.hxx:558
HTMLAttr * pBreak
Definition: swhtml.hxx:84
void BuildTableCaption(HTMLTable *pTable)
Definition: htmltab.cxx:4497
std::vector< HTMLTable * > m_aTables
Definition: swhtml.hxx:397
bool EndAttr(HTMLAttr *pAttr, bool bChkEmpty=true)
Definition: swhtml.cxx:3102
void NewStdAttr(HtmlTokenId nToken)
Definition: swhtml.cxx:3497
SvxBrushItem * CreateBrushItem(const Color *pColor, const OUString &rImageURL, const OUString &rStyle, const OUString &rId, const OUString &rClass)
Definition: htmltab.cxx:2684
bool m_bRestartXMP
Definition: swhtml.hxx:234
bool m_bRestartListing
Definition: swhtml.hxx:235
SwHTMLForm_Impl * m_pFormImpl
Definition: swhtml.hxx:399
void SetAttr_(bool bChkEnd, bool bBeforeTable, std::deque< std::unique_ptr< HTMLAttr >> *pPostIts)
Definition: swhtml.cxx:2745
constexpr tools::Long HTML_DFLT_IMG_WIDTH
Definition: swhtml.hxx:64
sal_uInt16 m_nFontStHeadStart
Definition: swhtml.hxx:414
void InsertLineBreak()
Definition: swhtml.cxx:5117
void EndDefList()
Definition: swhtml.cxx:4433
void SetVisible(bool bVisible)
Definition: swhtml.hxx:299
HTMLAttr ** GetAttrTabEntry(sal_uInt16 nWhich)
Definition: htmlcss1.cxx:1541
bool m_bReqIF
Definition: swhtml.hxx:485
std::unique_ptr< SwHTMLNumRuleInfo > m_pNumRuleInfo
Definition: swhtml.hxx:389
virtual ~SwHTMLParser() override
Definition: swhtml.cxx:469
static void SetVarSize(SvxCSS1PropertyInfo const &rPropInfo, SfxItemSet &rFlyItemSet, SwTwips nDfltWidth=MINLAY, sal_uInt8 nDefaultPercentWidth=0)
Definition: htmlcss1.cxx:2039
void SetFinishPREListingXMP(bool bSet)
Definition: swhtml.hxx:281
void SetRestartXMP(bool bSet)
Definition: swhtml.hxx:287
OUString m_aBasicLib
Definition: swhtml.hxx:358
size_t m_nContextStAttrMin
Definition: swhtml.hxx:419
void RestoreAttrTab(std::shared_ptr< HTMLAttrTable > const &rNewAttrTab)
Definition: swhtml.cxx:3448
void NewScript()
Definition: htmlbas.cxx:58
bool m_bTextArea
Definition: swhtml.hxx:461
std::shared_ptr< HTMLTable > m_xTable
Definition: swhtml.hxx:398
void NewFontAttr(HtmlTokenId nToken)
Definition: swhtml.cxx:3721
sal_uInt16 m_nUpperSpace
Definition: swhtml.hxx:222
HTMLAttr * pCharBrush
Definition: swhtml.hxx:119
HTMLAttr * pDropCap
Definition: swhtml.hxx:91
bool m_bLRSpaceChanged
Definition: swhtml.hxx:227
SvxAdjust m_eParaAdjust
Definition: swhtml.hxx:430
bool IsReqIF() const
Definition: htmltab.cxx:1069
OUStringBuffer m_sTitle
Definition: swhtml.hxx:365
HTMLScriptLanguage
void FillFootNoteInfo(const OUString &rContent)
Definition: htmlftn.cxx:125
void Invalidate()
Definition: swhtml.hxx:192
const SwFormatColl * GetCurrFormatColl() const
Definition: swhtml.cxx:4615
OUString m_InfoNames[4]
the names corresponding to the DOCINFO field subtypes INFO[1-4]
Definition: swhtml.hxx:480
void InsertSelectOption()
Definition: htmlform.cxx:2433
void SetRestartPRE(bool bSet)
Definition: swhtml.hxx:284
HTMLAttr * pOrphans
Definition: swhtml.hxx:94
void GetMarginsFromContextWithNumberBullet(sal_uInt16 &nLeft, sal_uInt16 &nRight, short &nIndent) const
Definition: htmlcss1.cxx:2180
sal_uInt16 m_nSBModuleCnt
Definition: swhtml.hxx:415
void SetStart(const SwPosition &rPos)
Definition: swhtml.hxx:970
virtual ~SwPendingData()
Definition: swhtml.hxx:957
void SetHead(HTMLAttr **ppHd, const std::shared_ptr< HTMLAttrTable > &rAttrTab)
Definition: swhtml.hxx:182
ScriptType
std::shared_ptr< HTMLAttrTable > m_xAttrTab
Definition: swhtml.hxx:378
void NewStyle()
Definition: htmlcss1.cxx:1667
void ClearSaveDocContext()
Definition: htmlctxt.cxx:167
HtmlTokenId m_nToken
Definition: swhtml.hxx:214
bool m_bInFootEndNoteAnchor
Definition: swhtml.hxx:464
HTMLAttr ** m_ppHead
Definition: swhtml.hxx:143
bool AppendTextNode(SwHTMLAppendMode eMode=AM_NORMAL, bool bUpdateNum=true)
Definition: swhtml.cxx:2189
bool m_bCallNextToken
Definition: swhtml.hxx:444
sal_uInt16 GetTextFormatColl() const
Definition: swhtml.hxx:250
void EndPara(bool bReal=false)
Definition: swhtml.cxx:4026
bool m_bInTitle
Definition: swhtml.hxx:456
void PushContext(std::unique_ptr< HTMLAttrContext > &rCntxt)
Definition: swhtml.hxx:572
bool m_bChkJumpMark
Definition: swhtml.hxx:458
HTMLAttr * pLineSpacing
Definition: swhtml.hxx:89
SwHTMLAppendMode GetAppendMode() const
Definition: swhtml.hxx:297
SwViewShell * CallStartAction(SwViewShell *pVSh=nullptr, bool bChkPtr=true)
Definition: swhtml.cxx:2634
SwPending(HtmlTokenId nTkn)
Definition: swhtml.hxx:965
SwViewShell * m_pActionViewShell
Definition: swhtml.hxx:394
rtl::Reference< SwDoc > m_xDoc
Definition: swhtml.hxx:392
void ParseMoreMetaOptions()
Definition: swhtml.cxx:5427
SwHTMLAppendMode m_eAppend
Definition: swhtml.hxx:225
const SwNodeIndex & GetStartParagraph() const
Definition: swhtml.hxx:163
void NewTextFormatColl(HtmlTokenId nToken, sal_uInt16 nPoolId)
Definition: swhtml.cxx:4201
constexpr tools::Long HTML_CJK_PARSPACE
Definition: swhtml.hxx:61
virtual void Notify(const SfxHint &) override
Definition: swhtml.cxx:2739
void SaveDocContext(HTMLAttrContext *pCntxt, HtmlContextFlags nFlags, const SwPosition *pNewPos)
Definition: htmlctxt.cxx:271
void EndFontAttr(HtmlTokenId nToken)
Definition: swhtml.cxx:3941
std::unique_ptr< SfxPoolItem > m_pItem
Definition: swhtml.hxx:139
HTMLAttr * pBox
Definition: swhtml.hxx:82
void InsertPrev(HTMLAttr *pPrv)
Definition: swhtml.cxx:5565
HtmlTokenId nToken
Definition: swhtml.hxx:962
bool GetSpansSection() const
Definition: swhtml.hxx:270
ImageMap * m_pImageMap
Definition: swhtml.hxx:402
int m_nListItems
Definition: swhtml.hxx:477
static void SetFixSize(const Size &rPixSize, const Size &rTwipDfltSize, bool bPercentWidth, bool bPercentHeight, SvxCSS1PropertyInfo const &rPropInfo, SfxItemSet &rFlyItemSet)
Definition: htmlplug.cxx:165
static bool HasStyleOptions(std::u16string_view rStyle, std::u16string_view rId, std::u16string_view rClass, const OUString *pLang=nullptr, const OUString *pDir=nullptr)
Definition: swhtml.hxx:1016
OUString m_aBulletGrfs[MAXLEVEL]
Definition: swhtml.hxx:367
SwHTMLAppendMode
Definition: swhtml.hxx:197
HTMLAttr * pFontCJK
Definition: swhtml.hxx:110
bool IsLikePara() const
Definition: swhtml.hxx:169
HTMLAttr * pFontColor
Definition: swhtml.hxx:115
HTMLAttr * pItalicCJK
Definition: swhtml.hxx:104
Base class of the Writer document model elements.
Definition: node.hxx:81
HTMLAttr * pWidows
Definition: swhtml.hxx:93
bool m_bTAIgnoreNewPara
Definition: swhtml.hxx:447
virtual bool ParseMetaOptions(const css::uno::Reference< css::document::XDocumentProperties > &, SvKeyValueIterator *) override
Definition: swhtml.cxx:5582