LibreOffice Module sw (master)  1
dbgoutsw.cxx
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 #ifdef DBG_UTIL
21 
22 #include <osl/diagnose.h>
23 #include <rtl/ustring.hxx>
24 #include <svl/poolitem.hxx>
25 #include <svl/itemiter.hxx>
26 #include <map>
27 #include <node.hxx>
28 #include <ndtxt.hxx>
29 #include <ndhints.hxx>
30 #include <txatbase.hxx>
31 #include <pam.hxx>
32 #include <docary.hxx>
33 #include <undobj.hxx>
34 #include <numrule.hxx>
35 #include <doc.hxx>
36 #include <frmfmt.hxx>
37 #include <fmtanchr.hxx>
38 #include <swrect.hxx>
39 #include <ndarr.hxx>
40 #include <paratr.hxx>
41 #include <SwNodeNum.hxx>
42 #include <dbgoutsw.hxx>
43 #include <frameformats.hxx>
44 #include <cstdio>
45 
46 static OString aDbgOutResult;
47 bool bDbgOutStdErr = false;
48 bool bDbgOutPrintAttrSet = false;
49 
50 template<class T>
51 static OUString lcl_dbg_out_SvPtrArr(const T & rArr)
52 {
53  OUStringBuffer aStr("[ ");
54 
55  for (typename T::const_iterator i(rArr.begin()); i != rArr.end(); ++i)
56  {
57  if (i != rArr.begin())
58  aStr.append(", ");
59 
60  if (*i)
61  aStr.append(lcl_dbg_out(**i));
62  else
63  aStr.append("(null)");
64  }
65 
66  aStr.append(" ]");
67 
68  return aStr.makeStringAndClear();
69 }
70 
71 const char * dbg_out(const void * pVoid)
72 {
73  char sBuffer[1024];
74 
75  sprintf(sBuffer, "%p", pVoid);
76 
77  OUString aTmpStr(sBuffer, strlen(sBuffer), RTL_TEXTENCODING_ASCII_US);
78 
79  return dbg_out(aTmpStr);
80 }
81 
82 const char * dbg_out(std::u16string_view aStr)
83 {
84  aDbgOutResult = OUStringToOString(aStr, RTL_TEXTENCODING_ASCII_US);
85 
86  if (bDbgOutStdErr)
87  fprintf(stderr, "%s", aDbgOutResult.getStr());
88 
89  return aDbgOutResult.getStr();
90 }
91 
92 static std::map<sal_uInt16,OUString> & GetItemWhichMap()
93 {
94  static std::map<sal_uInt16,OUString> aItemWhichMap
95  {
96  { RES_CHRATR_CASEMAP , "CHRATR_CASEMAP" },
97  { RES_CHRATR_CHARSETCOLOR , "CHRATR_CHARSETCOLOR" },
98  { RES_CHRATR_COLOR , "CHRATR_COLOR" },
99  { RES_CHRATR_CONTOUR , "CHRATR_CONTOUR" },
100  { RES_CHRATR_CROSSEDOUT , "CHRATR_CROSSEDOUT" },
101  { RES_CHRATR_ESCAPEMENT , "CHRATR_ESCAPEMENT" },
102  { RES_CHRATR_FONT , "CHRATR_FONT" },
103  { RES_CHRATR_FONTSIZE , "CHRATR_FONTSIZE" },
104  { RES_CHRATR_KERNING , "CHRATR_KERNING" },
105  { RES_CHRATR_LANGUAGE , "CHRATR_LANGUAGE" },
106  { RES_CHRATR_POSTURE , "CHRATR_POSTURE" },
107  { RES_CHRATR_SHADOWED , "CHRATR_SHADOWED" },
108  { RES_CHRATR_UNDERLINE , "CHRATR_UNDERLINE" },
109  { RES_CHRATR_OVERLINE , "CHRATR_OVERLINE" },
110  { RES_CHRATR_WEIGHT , "CHRATR_WEIGHT" },
111  { RES_CHRATR_WORDLINEMODE , "CHRATR_WORDLINEMODE" },
112  { RES_CHRATR_AUTOKERN , "CHRATR_AUTOKERN" },
113  { RES_CHRATR_BLINK , "CHRATR_BLINK" },
114  { RES_CHRATR_NOHYPHEN , "CHRATR_NOHYPHEN" },
115  { RES_CHRATR_BACKGROUND , "CHRATR_BACKGROUND" },
116  { RES_CHRATR_HIGHLIGHT , "CHRATR_HIGHLIGHT" },
117  { RES_CHRATR_CJK_FONT , "CHRATR_CJK_FONT" },
118  { RES_CHRATR_CJK_FONTSIZE , "CHRATR_CJK_FONTSIZE" },
119  { RES_CHRATR_CJK_LANGUAGE , "CHRATR_CJK_LANGUAGE" },
120  { RES_CHRATR_CJK_POSTURE , "CHRATR_CJK_POSTURE" },
121  { RES_CHRATR_CJK_WEIGHT , "CHRATR_CJK_WEIGHT" },
122  { RES_CHRATR_CTL_FONT , "CHRATR_CTL_FONT" },
123  { RES_CHRATR_CTL_FONTSIZE , "CHRATR_CTL_FONTSIZE" },
124  { RES_CHRATR_CTL_LANGUAGE , "CHRATR_CTL_LANGUAGE" },
125  { RES_CHRATR_CTL_POSTURE , "CHRATR_CTL_POSTURE" },
126  { RES_CHRATR_CTL_WEIGHT , "CHRATR_CTL_WEIGHT" },
127  { RES_CHRATR_ROTATE , "CHRATR_ROTATE" },
128  { RES_CHRATR_EMPHASIS_MARK , "CHRATR_EMPHASIS_MARK" },
129  { RES_CHRATR_TWO_LINES , "CHRATR_TWO_LINES" },
130  { RES_CHRATR_SCALEW , "CHRATR_SCALEW" },
131  { RES_CHRATR_RELIEF , "CHRATR_RELIEF" },
132  { RES_CHRATR_HIDDEN , "CHRATR_HIDDEN" },
133  { RES_CHRATR_BOX , "CHRATR_BOX" },
134  { RES_CHRATR_SHADOW , "CHRATR_SHADOW" },
135  { RES_TXTATR_AUTOFMT , "TXTATR_AUTOFMT" },
136  { RES_TXTATR_INETFMT , "TXTATR_INETFMT" },
137  { RES_TXTATR_REFMARK , "TXTATR_REFMARK" },
138  { RES_TXTATR_TOXMARK , "TXTATR_TOXMARK" },
139  { RES_TXTATR_CHARFMT , "TXTATR_CHARFMT" },
140  { RES_TXTATR_INPUTFIELD , "RES_TXTATR_INPUTFIELD" },
141  { RES_TXTATR_CONTENTCONTROL , "RES_TXTATR_CONTENTCONTROL" },
142  { RES_TXTATR_CJK_RUBY , "TXTATR_CJK_RUBY" },
143  { RES_TXTATR_UNKNOWN_CONTAINER , "TXTATR_UNKNOWN_CONTAINER" },
144  { RES_TXTATR_META , "TXTATR_META" },
145  { RES_TXTATR_METAFIELD , "TXTATR_METAFIELD" },
146  { RES_TXTATR_FIELD , "TXTATR_FIELD" },
147  { RES_TXTATR_FLYCNT , "TXTATR_FLYCNT" },
148  { RES_TXTATR_FTN , "TXTATR_FTN" },
149  { RES_TXTATR_ANNOTATION , "TXTATR_ANNOTATION" },
150  { RES_TXTATR_LINEBREAK , "RES_TXTATR_LINEBREAK" },
151  { RES_TXTATR_DUMMY1 , "TXTATR_DUMMY1" },
152  { RES_PARATR_LINESPACING , "PARATR_LINESPACING" },
153  { RES_PARATR_ADJUST , "PARATR_ADJUST" },
154  { RES_PARATR_SPLIT , "PARATR_SPLIT" },
155  { RES_PARATR_ORPHANS , "PARATR_ORPHANS" },
156  { RES_PARATR_WIDOWS , "PARATR_WIDOWS" },
157  { RES_PARATR_TABSTOP , "PARATR_TABSTOP" },
158  { RES_PARATR_HYPHENZONE , "PARATR_HYPHENZONE" },
159  { RES_PARATR_DROP , "PARATR_DROP" },
160  { RES_PARATR_REGISTER , "PARATR_REGISTER" },
161  { RES_PARATR_NUMRULE , "PARATR_NUMRULE" },
162  { RES_PARATR_SCRIPTSPACE , "PARATR_SCRIPTSPACE" },
163  { RES_PARATR_HANGINGPUNCTUATION , "PARATR_HANGINGPUNCTUATION" },
164  { RES_PARATR_FORBIDDEN_RULES , "PARATR_FORBIDDEN_RULES" },
165  { RES_PARATR_VERTALIGN , "PARATR_VERTALIGN" },
166  { RES_PARATR_SNAPTOGRID , "PARATR_SNAPTOGRID" },
167  { RES_PARATR_CONNECT_BORDER , "PARATR_CONNECT_BORDER" },
168  { RES_FILL_ORDER , "FILL_ORDER" },
169  { RES_FRM_SIZE , "FRM_SIZE" },
170  { RES_PAPER_BIN , "PAPER_BIN" },
171  { RES_LR_SPACE , "LR_SPACE" },
172  { RES_UL_SPACE , "UL_SPACE" },
173  { RES_PAGEDESC , "PAGEDESC" },
174  { RES_BREAK , "BREAK" },
175  { RES_CNTNT , "CNTNT" },
176  { RES_HEADER , "HEADER" },
177  { RES_FOOTER , "FOOTER" },
178  { RES_PRINT , "PRINT" },
179  { RES_OPAQUE , "OPAQUE" },
180  { RES_PROTECT , "PROTECT" },
181  { RES_SURROUND , "SURROUND" },
182  { RES_VERT_ORIENT , "VERT_ORIENT" },
183  { RES_HORI_ORIENT , "HORI_ORIENT" },
184  { RES_ANCHOR , "ANCHOR" },
185  { RES_BACKGROUND , "BACKGROUND" },
186  { RES_BOX , "BOX" },
187  { RES_SHADOW , "SHADOW" },
188  { RES_FRMMACRO , "FRMMACRO" },
189  { RES_COL , "COL" },
190  { RES_KEEP , "KEEP" },
191  { RES_URL , "URL" },
192  { RES_EDIT_IN_READONLY , "EDIT_IN_READONLY" },
193  { RES_LAYOUT_SPLIT , "LAYOUT_SPLIT" },
194  { RES_CHAIN , "CHAIN" },
195  { RES_TEXTGRID , "TEXTGRID" },
196  { RES_LINENUMBER , "LINENUMBER" },
197  { RES_FTN_AT_TXTEND , "FTN_AT_TXTEND" },
198  { RES_END_AT_TXTEND , "END_AT_TXTEND" },
199  { RES_COLUMNBALANCE , "COLUMNBALANCE" },
200  { RES_FRAMEDIR , "FRAMEDIR" },
201  { RES_HEADER_FOOTER_EAT_SPACING , "HEADER_FOOTER_EAT_SPACING" },
202  { RES_ROW_SPLIT , "ROW_SPLIT" },
203  { RES_GRFATR_MIRRORGRF , "GRFATR_MIRRORGRF" },
204  { RES_GRFATR_CROPGRF , "GRFATR_CROPGRF" },
205  { RES_GRFATR_ROTATION , "GRFATR_ROTATION" },
206  { RES_GRFATR_LUMINANCE , "GRFATR_LUMINANCE" },
207  { RES_GRFATR_CONTRAST , "GRFATR_CONTRAST" },
208  { RES_GRFATR_CHANNELR , "GRFATR_CHANNELR" },
209  { RES_GRFATR_CHANNELG , "GRFATR_CHANNELG" },
210  { RES_GRFATR_CHANNELB , "GRFATR_CHANNELB" },
211  { RES_GRFATR_GAMMA , "GRFATR_GAMMA" },
212  { RES_GRFATR_INVERT , "GRFATR_INVERT" },
213  { RES_GRFATR_TRANSPARENCY , "GRFATR_TRANSPARENCY" },
214  { RES_GRFATR_DRAWMODE , "GRFATR_DRAWMODE" },
215  { RES_BOXATR_FORMAT , "BOXATR_FORMAT" },
216  { RES_BOXATR_FORMULA , "BOXATR_FORMULA" },
217  { RES_BOXATR_VALUE , "BOXATR_VALUE" },
218  };
219 
220  return aItemWhichMap;
221 }
222 
223 static OUString lcl_dbg_out(const SfxPoolItem & rItem)
224 {
225  OUString aStr("[ ");
226 
227  if (GetItemWhichMap().find(rItem.Which()) != GetItemWhichMap().end())
228  aStr += GetItemWhichMap()[rItem.Which()];
229  else
230  aStr += OUString::number(rItem.Which());
231 
232  aStr += " ]";
233 
234  return aStr;
235 }
236 
237 const char * dbg_out(const SfxPoolItem & rItem)
238 {
239  return dbg_out(lcl_dbg_out(rItem));
240 }
241 
242 const char * dbg_out(const SfxPoolItem * pItem)
243 {
244  return dbg_out(pItem ? lcl_dbg_out(*pItem) : OUString("(nil)"));
245 }
246 
247 static OUString lcl_dbg_out(const SfxItemSet & rSet)
248 {
249  SfxItemIter aIter(rSet);
250  bool bFirst = true;
251  OUStringBuffer aStr = "[ ";
252 
253  for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
254  {
255  if (!bFirst)
256  aStr.append(", ");
257 
258  if (reinterpret_cast<sal_uIntPtr>(pItem) != SAL_MAX_SIZE)
259  aStr.append(lcl_dbg_out(*pItem));
260  else
261  aStr.append("invalid");
262 
263  bFirst = false;
264  }
265 
266  aStr.append(" ]");
267 
268  return aStr.makeStringAndClear();
269 }
270 
271 const char * dbg_out(const SfxItemSet & rSet)
272 {
273  return dbg_out(lcl_dbg_out(rSet));
274 }
275 
276 static OUString lcl_dbg_out(const SwTextAttr & rAttr)
277 {
278  OUString aStr =
279  "[ " +
280  OUString::number(rAttr.GetStart()) +
281  "->" +
282  OUString::number(*rAttr.End()) +
283  " " +
284  lcl_dbg_out(rAttr.GetAttr()) +
285  " ]";
286 
287  return aStr;
288 }
289 
290 const char * dbg_out(const SwTextAttr & rAttr)
291 {
292  return dbg_out(lcl_dbg_out(rAttr));
293 }
294 
295 static OUString lcl_dbg_out(const SwpHints & rHints)
296 {
297  OUStringBuffer aStr("[ SwpHints\n");
298 
299  for (size_t i = 0; i < rHints.Count(); ++i)
300  {
301  aStr.append(" ");
302  aStr.append(lcl_dbg_out(*rHints.Get(i)));
303  aStr.append("\n");
304  }
305 
306  aStr.append("]\n");
307 
308  return aStr.makeStringAndClear();
309 }
310 
311 const char * dbg_out(const SwpHints &rHints)
312 {
313  return dbg_out(lcl_dbg_out(rHints));
314 }
315 
316 static OUString lcl_dbg_out(const SwPosition & rPos)
317 {
318  OUString aStr =
319  "( " +
320  OUString::number(sal_Int32(rPos.nNode.GetIndex())) +
321  ", " +
322  OUString::number(rPos.nContent.GetIndex()) +
323  ": " +
324  OUString::number(reinterpret_cast<sal_IntPtr>(rPos.nContent.GetIdxReg()), 16) +
325  " )";
326 
327  return aStr;
328 }
329 
330 const char * dbg_out(const SwPosition & rPos)
331 {
332  return dbg_out(lcl_dbg_out(rPos));
333 }
334 
335 static OUString lcl_dbg_out(const SwPaM & rPam)
336 {
337  OUString aStr =
338  "[ Pt: " +
339  lcl_dbg_out(*rPam.GetPoint());
340 
341  if (rPam.HasMark())
342  {
343  aStr += ", Mk: " + lcl_dbg_out(*rPam.GetMark());
344  }
345 
346  aStr += " ]";
347 
348  return aStr;
349 }
350 
351 const char * dbg_out(const SwPaM & rPam)
352 {
353  return dbg_out(lcl_dbg_out(rPam));
354 }
355 
356 static OUString lcl_dbg_out(const SwNodeNum & )
357 {
358  return OUString();/*rNum.ToString();*/
359 }
360 
361 const char * dbg_out(const SwNodeNum & rNum)
362 {
363  return dbg_out(lcl_dbg_out(rNum));
364 }
365 
366 static OUString lcl_dbg_out(const SwRect & rRect)
367 {
368  OUString aResult =
369  "[ [" +
370  OUString::number(rRect.Left()) +
371  ", " +
372  OUString::number(rRect.Top()) +
373  "], [" +
374  OUString::number(rRect.Right()) +
375  ", " +
376  OUString::number(rRect.Bottom()) +
377  "] ]";
378 
379  return aResult;
380 }
381 
382 const char * dbg_out(const SwRect & rRect)
383 {
384  return dbg_out(lcl_dbg_out(rRect));
385 }
386 
387 static OUString lcl_dbg_out(const SwFrameFormat & rFrameFormat)
388 {
389  char sBuffer[256];
390  sprintf(sBuffer, "%p", &rFrameFormat);
391 
392  OUString aResult = "[ " +
393  OUString(sBuffer, strlen(sBuffer), RTL_TEXTENCODING_ASCII_US) +
394  "(" +
395  rFrameFormat.GetName() + ")";
396 
397  if (rFrameFormat.IsAuto())
398  aResult += "*";
399 
400  aResult += " ," + lcl_dbg_out(rFrameFormat.FindLayoutRect()) + " ]";
401 
402  return aResult;
403 }
404 
405 const char * dbg_out(const SwFrameFormat & rFrameFormat)
406 {
407  return dbg_out(lcl_dbg_out(rFrameFormat));
408 }
409 
410 static OUString lcl_AnchoredFrames(const SwNode & rNode)
411 {
412  OUStringBuffer aResult("[");
413 
414  const SwDoc& rDoc = rNode.GetDoc();
415  const SwFrameFormats * pFrameFormats = rDoc.GetSpzFrameFormats();
416 
417  if (pFrameFormats)
418  {
419  bool bFirst = true;
420  for (SwFrameFormats::const_iterator i(pFrameFormats->begin());
421  i != pFrameFormats->end(); ++i)
422  {
423  const SwFormatAnchor & rAnchor = (*i)->GetAnchor();
424  const SwPosition * pPos = rAnchor.GetContentAnchor();
425 
426  if (pPos && &pPos->nNode.GetNode() == &rNode)
427  {
428  if (! bFirst)
429  aResult.append(", ");
430 
431  if (*i)
432  aResult.append(lcl_dbg_out(**i));
433  bFirst = false;
434  }
435  }
436  }
437 
438  aResult.append("]");
439 
440  return aResult.makeStringAndClear();
441 }
442 
443 static OUString lcl_dbg_out_NumType(sal_Int16 nType)
444 {
445  OUString aTmpStr;
446 
447  switch (nType)
448  {
449  case SVX_NUM_NUMBER_NONE:
450  aTmpStr += " NONE";
451 
452  break;
454  aTmpStr += " CHARS_UPPER_LETTER";
455 
456  break;
458  aTmpStr += " CHARS_LOWER_LETTER";
459 
460  break;
461  case SVX_NUM_ROMAN_UPPER:
462  aTmpStr += " ROMAN_UPPER";
463 
464  break;
465  case SVX_NUM_ROMAN_LOWER:
466  aTmpStr += " ROMAN_LOWER";
467 
468  break;
469  case SVX_NUM_ARABIC:
470  aTmpStr += " ARABIC";
471 
472  break;
473  default:
474  aTmpStr += " ??";
475 
476  break;
477  }
478 
479  return aTmpStr;
480 }
481 
482 static OUString lcl_dbg_out(const SwNode & rNode)
483 {
484  char aBuffer[128];
485  sprintf(aBuffer, "%p", &rNode);
486 
487  OUString aTmpStr = "<node "
488  "index=\"" +
489  OUString::number(sal_Int32(rNode.GetIndex())) +
490  "\""
491  " serial=\"" +
492  OUString::number(rNode.GetSerial()) +
493  "\""
494  " type=\"" +
495  OUString::number(sal_Int32( rNode.GetNodeType() ) ) +
496  "\""
497  " pointer=\"" +
498  OUString(aBuffer, strlen(aBuffer), RTL_TEXTENCODING_ASCII_US) +
499  "\">";
500 
501  const SwTextNode * pTextNode = rNode.GetTextNode();
502 
503  if (rNode.IsTextNode())
504  {
505  const SfxItemSet * pAttrSet = pTextNode->GetpSwAttrSet();
506 
507  aTmpStr += "<txt>" + (pTextNode->GetText().getLength() > 10 ? pTextNode->GetText().copy(0, 10) : pTextNode->GetText()) + "</txt>";
508 
509  if (rNode.IsTableNode())
510  aTmpStr += "<tbl/>";
511 
512  aTmpStr += "<outlinelevel>" + OUString::number(pTextNode->GetAttrOutlineLevel()-1) + "</outlinelevel>";
513 
514  const SwNumRule * pNumRule = pTextNode->GetNumRule();
515 
516  if (pNumRule != nullptr)
517  {
518  aTmpStr += "<number>";
519  if ( pTextNode->GetNum() )
520  {
521  aTmpStr += lcl_dbg_out(*(pTextNode->GetNum()));
522  }
523  aTmpStr += "</number><rule>" +
524  pNumRule->GetName();
525 
526  const SwNumRuleItem * pItem = nullptr;
527 
528  if (pAttrSet &&
529  (pItem = pAttrSet->GetItemIfSet(RES_PARATR_NUMRULE, false)))
530  {
531  aTmpStr += "(" + pItem->GetValue() + ")*";
532  }
533 
534  const SwNumFormat * pNumFormat = nullptr;
535  aTmpStr += "</rule>";
536 
537  if (pTextNode->GetActualListLevel() > 0)
538  pNumFormat = pNumRule->GetNumFormat( static_cast< sal_uInt16 >(pTextNode->GetActualListLevel()) );
539 
540  if (pNumFormat)
541  {
542  aTmpStr += "<numformat>" +
543  lcl_dbg_out_NumType(pNumFormat->GetNumberingType()) + "</numformat>";
544  }
545  }
546 
547  if (pTextNode->IsCountedInList())
548  aTmpStr += "<counted/>";
549 
550  SwFormatColl * pColl = pTextNode->GetFormatColl();
551 
552  if (pColl)
553  {
554  aTmpStr += "<coll>" + pColl->GetName() + "(";
555 
556  SwTextFormatColl *pTextColl = static_cast<SwTextFormatColl*>(pColl);
557  if (pTextColl->IsAssignedToListLevelOfOutlineStyle())
558  {
559  aTmpStr += OUString::number(pTextColl->GetAssignedOutlineStyleLevel());
560  }
561  else
562  {
563  aTmpStr += OUString::number(-1);
564  }
565 
566  const SwNumRuleItem & rItem =
568  const OUString& sNumruleName = rItem.GetValue();
569 
570  if (!sNumruleName.isEmpty())
571  {
572  aTmpStr += ", " + sNumruleName;
573  }
574  aTmpStr += ")"
575  "</coll>";
576  }
577 
578  SwFormatColl * pCColl = pTextNode->GetCondFormatColl();
579 
580  if (pCColl)
581  {
582  aTmpStr += "<ccoll>" + pCColl->GetName() + "</ccoll>";
583  }
584 
585  aTmpStr += "<frms>" + lcl_AnchoredFrames(rNode) + "</frms>";
586 
588  {
589  aTmpStr += "<attrs>" + lcl_dbg_out(pTextNode->GetSwAttrSet()) + "</attrs>";
590  }
591  }
592  else if (rNode.IsStartNode())
593  {
594  aTmpStr += "<start end=\"";
595 
596  const SwStartNode * pStartNode = dynamic_cast<const SwStartNode *> (&rNode);
597  if (pStartNode != nullptr)
598  aTmpStr += OUString::number(sal_Int32(pStartNode->EndOfSectionNode()->GetIndex()));
599 
600  aTmpStr += "\"/>";
601  }
602  else if (rNode.IsEndNode())
603  aTmpStr += "<end/>";
604 
605  aTmpStr += "</node>";
606 
607  return aTmpStr;
608 }
609 
610 const char * dbg_out(const SwNode & rNode)
611 {
612  return dbg_out(lcl_dbg_out(rNode));
613 }
614 
615 const char * dbg_out(const SwNode * pNode)
616 {
617  if (nullptr != pNode)
618  return dbg_out(*pNode);
619  else
620  return nullptr;
621 }
622 
623 const char * dbg_out(const SwContentNode * pNode)
624 {
625  if (nullptr != pNode)
626  return dbg_out(*pNode);
627  else
628  return nullptr;
629 }
630 
631 const char * dbg_out(const SwTextNode * pNode)
632 {
633  if (nullptr != pNode)
634  return dbg_out(*pNode);
635  else
636  return nullptr;
637 }
638 
639 static OUString lcl_dbg_out(const SwUndo & rUndo)
640 {
641  return "[ " + OUString::number(static_cast<int>(rUndo.GetId()))
642  + ": " + rUndo.GetComment() + " ]";
643 }
644 
645 const char * dbg_out(const SwUndo & rUndo)
646 {
647  return dbg_out(lcl_dbg_out(rUndo));
648 }
649 
650 static OUString lcl_dbg_out(SwOutlineNodes const & rNodes)
651 {
652  OUStringBuffer aStr("[\n");
653 
654  for (size_t i = 0; i < rNodes.size(); i++)
655  {
656  aStr.append(lcl_dbg_out(*rNodes[i]));
657  aStr.append("\n");
658  }
659 
660  aStr.append("]\n");
661 
662  return aStr.makeStringAndClear();
663 }
664 
665 const char * dbg_out( SwOutlineNodes const & rNodes)
666 {
667  return dbg_out(lcl_dbg_out(rNodes));
668 }
669 
670 static OUString lcl_dbg_out(const SvxNumberFormat & rFormat)
671 {
672  OUString aResult = lcl_dbg_out_NumType(rFormat.GetNumberingType());
673  return aResult;
674 }
675 
676 static OUString lcl_dbg_out(const SwNumRule & rRule)
677 {
678  OUStringBuffer aResult("[ ");
679 
680  aResult.append(rRule.GetName());
681  aResult.append(" [");
682 
683  for (sal_uInt8 n = 0; n < MAXLEVEL; n++)
684  {
685  if (n > 0)
686  aResult.append(", ");
687 
688  aResult.append(lcl_dbg_out(rRule.Get(n)));
689  }
690 
691  aResult.append("]");
692 
693  aResult.append("]");
694 
695  return aResult.makeStringAndClear();
696 }
697 
698 const char * dbg_out(const SwNumRule & rRule)
699 {
700  return dbg_out(lcl_dbg_out(rRule));
701 }
702 
703 static OUString lcl_dbg_out(const SwTextFormatColl & rFormat)
704 {
705  return rFormat.GetName() + "(" +
706  OUString::number(rFormat.GetAttrOutlineLevel()) + ")";
707 }
708 
709 const char * dbg_out(const SwTextFormatColl & rFormat)
710 {
711  return dbg_out(lcl_dbg_out(rFormat));
712 }
713 
714 static OUString lcl_dbg_out(const SwFrameFormats & rFrameFormats)
715 {
716  return lcl_dbg_out_SvPtrArr<SwFrameFormats>(rFrameFormats);
717 }
718 
719 const char * dbg_out(const SwFrameFormats & rFrameFormats)
720 {
721  return dbg_out(lcl_dbg_out(rFrameFormats));
722 }
723 
724 static OUString lcl_dbg_out(const SwNumRuleTable & rTable)
725 {
726  OUStringBuffer aResult("[");
727 
728  for (size_t n = 0; n < rTable.size(); n++)
729  {
730  if (n > 0)
731  aResult.append(", ");
732 
733  aResult.append(rTable[n]->GetName());
734 
735  char sBuffer[256];
736  sprintf(sBuffer, "(%p)", rTable[n]);
737  aResult.appendAscii(sBuffer);
738  }
739 
740  aResult.append("]");
741 
742  return aResult.makeStringAndClear();
743 }
744 
745 const char * dbg_out(const SwNumRuleTable & rTable)
746 {
747  return dbg_out(lcl_dbg_out(rTable));
748 }
749 
750 static OUString lcl_TokenType2Str(FormTokenType nType)
751 {
752  switch(nType)
753  {
754  case TOKEN_ENTRY_NO:
755  return "NO";
756  case TOKEN_ENTRY_TEXT:
757  return "ENTRY_TEXT";
758  case TOKEN_ENTRY:
759  return "ENTRY";
760  case TOKEN_TAB_STOP:
761  return "TAB_STOP";
762  case TOKEN_TEXT:
763  return "TOKEN_TEXT";
764  case TOKEN_PAGE_NUMS:
765  return "NUMS";
766  case TOKEN_CHAPTER_INFO:
767  return "CHAPTER_INFO";
768  case TOKEN_LINK_START:
769  return "LINK_START";
770  case TOKEN_LINK_END:
771  return "LINK_END";
772  case TOKEN_AUTHORITY:
773  return "AUTHORITY";
774  case TOKEN_END:
775  return "END";
776  default:
777  OSL_FAIL("should not be reached");
778  return "??";
779  }
780 }
781 
782 static OUString lcl_dbg_out(const SwFormToken & rToken)
783 {
784  return rToken.GetString();
785 }
786 
787 const char * dbg_out(const SwFormToken & rToken)
788 {
789  return dbg_out(lcl_dbg_out(rToken));
790 }
791 
792 static OUString lcl_dbg_out(const SwFormTokens & rTokens)
793 {
794  OUStringBuffer aStr("[");
795 
796  SwFormTokens::const_iterator aIt;
797 
798  for (aIt = rTokens.begin(); aIt != rTokens.end(); ++aIt)
799  {
800  if (aIt != rTokens.begin())
801  aStr.append(", ");
802 
803  aStr.append(lcl_TokenType2Str(aIt->eTokenType));
804  aStr.append(": ");
805  aStr.append(lcl_dbg_out(*aIt));
806  }
807 
808  aStr.append("]");
809 
810  return aStr.makeStringAndClear();
811 }
812 
813 const char * dbg_out(const SwFormTokens & rTokens)
814 {
815  return dbg_out(lcl_dbg_out(rTokens));
816 }
817 
818 static OUString lcl_dbg_out(const SwNodeRange & rRange)
819 {
820  OUString aStr =
821  "[" +
822  lcl_dbg_out(SwPosition(rRange.aStart)) +
823  ", " +
824  lcl_dbg_out(SwPosition(rRange.aEnd)) +
825  "]";
826 
827  return aStr;
828 }
829 
830 const char * dbg_out(const SwNodeRange & rRange)
831 {
832  return dbg_out(lcl_dbg_out(rRange));
833 }
834 
835 #endif // DEBUG
836 
837 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SvxNumType GetNumberingType() const
const SwEndNode * EndOfSectionNode() const
Definition: node.hxx:692
std::vector< SwFormToken > SwFormTokens
Vector of tokens.
Definition: tox.hxx:284
Starts a section of nodes in the document model.
Definition: node.hxx:313
constexpr TypedWhichId< SvxProtectItem > RES_PROTECT(100)
constexpr TypedWhichId< SvxFrameDirectionItem > RES_FRAMEDIR(120)
constexpr TypedWhichId< SvxBlinkItem > RES_CHRATR_BLINK(18)
constexpr TypedWhichId< SwFormatEndAtTextEnd > RES_END_AT_TXTEND(118)
constexpr TypedWhichId< SwFormatPageDesc > RES_PAGEDESC(93)
constexpr TypedWhichId< SvxCrossedOutItem > RES_CHRATR_CROSSEDOUT(5)
constexpr TypedWhichId< SwFormatSurround > RES_SURROUND(101)
constexpr TypedWhichId< SwFormatFillOrder > RES_FILL_ORDER(RES_FRMATR_BEGIN)
void Right(const tools::Long nRight)
Definition: swrect.hxx:202
constexpr TypedWhichId< SwHeaderAndFooterEatSpacingItem > RES_HEADER_FOOTER_EAT_SPACING(121)
int GetAssignedOutlineStyleLevel() const
Definition: fmtcol.cxx:604
Represents the style of a paragraph.
Definition: fmtcol.hxx:56
const T * GetItemIfSet(TypedWhichId< T > nWhich, bool bSrchInParent=true) const
Marks a position in the document model.
Definition: pam.hxx:36
constexpr TypedWhichId< SvxTabStopItem > RES_PARATR_TABSTOP(68)
constexpr TypedWhichId< SvxParaGridItem > RES_PARATR_SNAPTOGRID(77)
constexpr TypedWhichId< SvxFontItem > RES_CHRATR_CTL_FONT(27)
constexpr TypedWhichId< SvxEscapementItem > RES_CHRATR_ESCAPEMENT(6)
const SwNodeNum * GetNum(SwRootFrame const *pLayout=nullptr) const
Definition: ndtxt.cxx:3994
constexpr TypedWhichId< SvxPrintItem > RES_PRINT(98)
constexpr TypedWhichId< SwFormatMeta > RES_TXTATR_METAFIELD(49)
static OUString lcl_dbg_out_SvPtrArr(const T &rArr)
Definition: dbgoutsw.cxx:51
constexpr TypedWhichId< SwTableBoxNumFormat > RES_BOXATR_FORMAT(RES_BOXATR_BEGIN)
const OUString & GetText() const
Definition: ndtxt.hxx:218
constexpr TypedWhichId< SwFormatHeader > RES_HEADER(96)
constexpr TypedWhichId< SwFormatEditInReadonly > RES_EDIT_IN_READONLY(112)
constexpr TypedWhichId< SwFormatCol > RES_COL(109)
SwFormatColl * GetCondFormatColl() const
Definition: node.hxx:712
constexpr TypedWhichId< SwFormatMeta > RES_TXTATR_META(48)
constexpr TypedWhichId< SvxFormatKeepItem > RES_KEEP(110)
void Left(const tools::Long nLeft)
Definition: swrect.hxx:197
SwNodeIndex nNode
Definition: pam.hxx:38
const_iterator begin() const
constexpr TypedWhichId< SwFormatFrameSize > RES_FRM_SIZE(89)
static OString aDbgOutResult
Definition: dbgoutsw.cxx:46
SVX_NUM_NUMBER_NONE
constexpr TypedWhichId< SwTransparencyGrf > RES_GRFATR_TRANSPARENCY(143)
constexpr TypedWhichId< SvxLanguageItem > RES_CHRATR_LANGUAGE(10)
constexpr TypedWhichId< SwNumRuleItem > RES_PARATR_NUMRULE(72)
SwRect FindLayoutRect(const bool bPrtArea=false, const Point *pPoint=nullptr) const
Definition: atrfrm.cxx:2710
constexpr TypedWhichId< SvxFontHeightItem > RES_CHRATR_FONTSIZE(8)
const SwPosition * GetMark() const
Definition: pam.hxx:210
constexpr TypedWhichId< SvxPaperBinItem > RES_PAPER_BIN(90)
SVX_NUM_CHARS_UPPER_LETTER
constexpr TypedWhichId< SwRegisterItem > RES_PARATR_REGISTER(71)
sal_Int64 n
Definition: doc.hxx:187
constexpr TypedWhichId< SwChannelRGrf > RES_GRFATR_CHANNELR(138)
constexpr sal_uInt8 MAXLEVEL
Definition: swtypes.hxx:92
constexpr TypedWhichId< SvxFormatBreakItem > RES_BREAK(94)
constexpr TypedWhichId< SvxUnderlineItem > RES_CHRATR_UNDERLINE(14)
constexpr TypedWhichId< SvxAutoKernItem > RES_CHRATR_AUTOKERN(17)
SwNode & GetNode() const
Definition: ndindex.hxx:119
const OUString & GetName() const
Definition: numrule.hxx:224
constexpr TypedWhichId< SvxHangingPunctuationItem > RES_PARATR_HANGINGPUNCTUATION(74)
constexpr TypedWhichId< SvxOpaqueItem > RES_OPAQUE(99)
constexpr TypedWhichId< SwContrastGrf > RES_GRFATR_CONTRAST(137)
constexpr TypedWhichId< SvxBoxItem > RES_CHRATR_BOX(40)
Of course Writer needs its own rectangles.
Definition: swrect.hxx:34
constexpr TypedWhichId< SwTableBoxValue > RES_BOXATR_VALUE(152)
const_iterator end() const
SwUndoId GetId() const
Definition: undobj.hxx:101
constexpr TypedWhichId< SvxPostureItem > RES_CHRATR_CJK_POSTURE(25)
int GetActualListLevel() const
Returns the actual list level of this text node, when it is a list item.
Definition: ndtxt.cxx:4139
constexpr TypedWhichId< SvxFontItem > RES_CHRATR_FONT(7)
const SwFrameFormats * GetSpzFrameFormats() const
Definition: doc.hxx:743
constexpr TypedWhichId< SvxTwoLinesItem > RES_CHRATR_TWO_LINES(34)
constexpr TypedWhichId< SwLuminanceGrf > RES_GRFATR_LUMINANCE(136)
int GetAttrOutlineLevel() const
Returns outline level of this text node.
Definition: ndtxt.cxx:4059
constexpr TypedWhichId< SwFormatLayoutSplit > RES_LAYOUT_SPLIT(113)
constexpr TypedWhichId< SvxCaseMapItem > RES_CHRATR_CASEMAP(RES_CHRATR_BEGIN)
OSQLColumns::const_iterator find(const OSQLColumns::const_iterator &first, const OSQLColumns::const_iterator &last, std::u16string_view _rVal, const ::comphelper::UStringMixEqual &_rCase)
constexpr TypedWhichId< SwFormatVertOrient > RES_VERT_ORIENT(102)
const SfxPoolItem * NextItem()
bool IsAssignedToListLevelOfOutlineStyle() const
Definition: fmtcol.hxx:120
SwNodeType GetNodeType() const
Definition: node.hxx:146
constexpr TypedWhichId< SwFormatHoriOrient > RES_HORI_ORIENT(103)
constexpr TypedWhichId< SwFormatFootnote > RES_TXTATR_FTN(59)
SwIndex nContent
Definition: pam.hxx:39
constexpr TypedWhichId< SvxShadowItem > RES_CHRATR_SHADOW(41)
SwNodeIndex aStart
Definition: ndindex.hxx:132
static OUString lcl_AnchoredFrames(const SwNode &rNode)
Definition: dbgoutsw.cxx:410
constexpr TypedWhichId< SvxLanguageItem > RES_CHRATR_CTL_LANGUAGE(29)
A wrapper around SfxPoolItem to store the start position of (usually) a text portion, with an optional end.
Definition: txatbase.hxx:43
const OUString & GetName() const
Definition: format.hxx:131
constexpr TypedWhichId< SwFormatDrop > RES_PARATR_DROP(70)
SVX_NUM_ARABIC
sal_Int32 GetStart() const
Definition: txatbase.hxx:88
bool IsStartNode() const
Definition: node.hxx:634
SVX_NUM_ROMAN_UPPER
constexpr TypedWhichId< SwFormatRuby > RES_TXTATR_CJK_RUBY(53)
constexpr TypedWhichId< SwFormatCharFormat > RES_TXTATR_CHARFMT(52)
SVX_NUM_ROMAN_LOWER
constexpr TypedWhichId< SvxCharReliefItem > RES_CHRATR_RELIEF(36)
SwNodeOffset GetIndex() const
Definition: ndindex.hxx:152
virtual OUString GetName() const override
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
constexpr TypedWhichId< SwFormatAutoFormat > RES_TXTATR_AUTOFMT(50)
size_type size() const
constexpr TypedWhichId< SwFormatINetFormat > RES_TXTATR_INETFMT(51)
Specific frame formats (frames, DrawObjects).
constexpr TypedWhichId< SvxHyphenZoneItem > RES_PARATR_HYPHENZONE(69)
constexpr TypedWhichId< SvxWeightItem > RES_CHRATR_WEIGHT(15)
constexpr TypedWhichId< SvxParaVertAlignItem > RES_PARATR_VERTALIGN(76)
constexpr TypedWhichId< SwChannelBGrf > RES_GRFATR_CHANNELB(140)
constexpr TypedWhichId< SwFormatRowSplit > RES_ROW_SPLIT(122)
constexpr TypedWhichId< SfxBoolItem > RES_TXTATR_DUMMY1(62)
bool bDbgOutStdErr
Definition: dbgoutsw.cxx:47
constexpr TypedWhichId< SwRotationGrf > RES_GRFATR_ROTATION(135)
PaM is Point and Mark: a selection of the document model.
Definition: pam.hxx:137
OUString GetString() const
Definition: tox.cxx:655
const SwAttrSet * GetpSwAttrSet() const
Definition: node.hxx:457
constexpr TypedWhichId< SwFormatField > RES_TXTATR_FIELD(RES_TXTATR_NOEND_BEGIN)
Style of a layout element.
Definition: frmfmt.hxx:59
SVX_NUM_CHARS_LOWER_LETTER
size_t Count() const
Definition: ndhints.hxx:142
SwTextAttr * Get(size_t nPos) const
Definition: ndhints.hxx:144
int i
SwDoc & GetDoc()
Definition: node.hxx:213
const SwPosition * GetPoint() const
Definition: pam.hxx:208
bool bDbgOutPrintAttrSet
Definition: dbgoutsw.cxx:48
constexpr TypedWhichId< SvxMacroItem > RES_FRMMACRO(108)
const SwPosition * GetContentAnchor() const
Definition: fmtanchr.hxx:67
constexpr TypedWhichId< SwFormatFlyCnt > RES_TXTATR_FLYCNT(58)
constexpr TypedWhichId< SwFormatURL > RES_URL(111)
constexpr TypedWhichId< SwCropGrf > RES_GRFATR_CROPGRF(134)
SwNodeOffset GetIndex() const
Definition: node.hxx:292
const OUString & GetValue() const
FlyAnchors.
Definition: fmtanchr.hxx:34
bool HasMark() const
A PaM marks a selection if Point and Mark are distinct positions.
Definition: pam.hxx:206
constexpr TypedWhichId< SvxShadowedItem > RES_CHRATR_SHADOWED(13)
constexpr TypedWhichId< SwFormatLineBreak > RES_TXTATR_LINEBREAK(61)
size_t size() const
Definition: docary.hxx:87
const char * dbg_out(const void *pVoid)
Definition: dbgoutsw.cxx:71
SwNumRule * GetNumRule(bool bInParent=true) const
Returns numbering rule of this text node.
Definition: ndtxt.cxx:2833
constexpr TypedWhichId< SvxLineSpacingItem > RES_PARATR_LINESPACING(RES_PARATR_BEGIN)
bool IsEndNode() const
Definition: node.hxx:642
constexpr TypedWhichId< SvxOverlineItem > RES_CHRATR_OVERLINE(38)
constexpr TypedWhichId< SvxEmphasisMarkItem > RES_CHRATR_EMPHASIS_MARK(33)
virtual OUString GetComment() const override
Returns textual comment for this undo object.
Definition: undobj.cxx:662
constexpr TypedWhichId< SwFormatContent > RES_CNTNT(95)
constexpr TypedWhichId< SvxCharScaleWidthItem > RES_CHRATR_SCALEW(35)
constexpr TypedWhichId< SvxCharHiddenItem > RES_CHRATR_HIDDEN(37)
static std::map< sal_uInt16, OUString > & GetItemWhichMap()
Definition: dbgoutsw.cxx:92
static OUString lcl_dbg_out(const SfxPoolItem &rItem)
Definition: dbgoutsw.cxx:223
constexpr TypedWhichId< SwFormatField > RES_TXTATR_ANNOTATION(60)
constexpr TypedWhichId< SvxColorItem > RES_CHRATR_COLOR(3)
constexpr TypedWhichId< SvxScriptSpaceItem > RES_PARATR_SCRIPTSPACE(73)
const SwNumFormat & Get(sal_uInt16 i) const
Definition: number.cxx:86
constexpr TypedWhichId< SwMirrorGrf > RES_GRFATR_MIRRORGRF(RES_GRFATR_BEGIN)
void Bottom(const tools::Long nBottom)
Definition: swrect.hxx:211
constexpr TypedWhichId< SvxBrushItem > RES_CHRATR_BACKGROUND(21)
SwTextNode is a paragraph in the document model.
Definition: ndtxt.hxx:79
constexpr TypedWhichId< SwFormatChain > RES_CHAIN(114)
std::unique_ptr< char[]> aBuffer
constexpr TypedWhichId< SwFormatContentControl > RES_TXTATR_CONTENTCONTROL(56)
constexpr TypedWhichId< SwTextGridItem > RES_TEXTGRID(115)
constexpr TypedWhichId< SvxOrphansItem > RES_PARATR_ORPHANS(66)
An SwTextAttr container, stores all directly formatted text portions for a text node.
Definition: ndhints.hxx:67
constexpr TypedWhichId< SvxBrushItem > RES_BACKGROUND(105)
ByPos::const_iterator const_iterator
constexpr TypedWhichId< SvxWeightItem > RES_CHRATR_CJK_WEIGHT(26)
constexpr TypedWhichId< SvxFormatSplitItem > RES_PARATR_SPLIT(65)
unsigned char sal_uInt8
constexpr TypedWhichId< SwChannelGGrf > RES_GRFATR_CHANNELG(139)
constexpr TypedWhichId< SvxWordLineModeItem > RES_CHRATR_WORDLINEMODE(16)
constexpr TypedWhichId< SwInvertGrf > RES_GRFATR_INVERT(142)
constexpr TypedWhichId< SvxWeightItem > RES_CHRATR_CTL_WEIGHT(31)
constexpr TypedWhichId< SvxForbiddenRuleItem > RES_PARATR_FORBIDDEN_RULES(75)
constexpr TypedWhichId< SwFormatNoBalancedColumns > RES_COLUMNBALANCE(119)
sal_Int32 GetIndex() const
Definition: index.hxx:91
bool IsCountedInList() const
Definition: ndtxt.cxx:4276
constexpr TypedWhichId< SwDrawModeGrf > RES_GRFATR_DRAWMODE(144)
constexpr TypedWhichId< SvxFontItem > RES_CHRATR_CJK_FONT(22)
constexpr TypedWhichId< SwTableBoxFormula > RES_BOXATR_FORMULA(151)
constexpr TypedWhichId< SvxPostureItem > RES_CHRATR_CTL_POSTURE(30)
SwNodeIndex aEnd
Definition: ndindex.hxx:133
void Top(const tools::Long nTop)
Definition: swrect.hxx:206
static OUString lcl_dbg_out_NumType(sal_Int16 nType)
Definition: dbgoutsw.cxx:443
constexpr TypedWhichId< SvxColorItem > RES_CHRATR_CHARSETCOLOR(2)
const sal_Int32 * End() const
Definition: txatbase.hxx:156
const SfxPoolItem & GetFormatAttr(sal_uInt16 nWhich, bool bInParents=true) const
If bInParents is FALSE, search only in this format for attribute.
Definition: format.cxx:367
constexpr TypedWhichId< SwTOXMark > RES_TXTATR_TOXMARK(47)
constexpr TypedWhichId< SvxLRSpaceItem > RES_LR_SPACE(91)
constexpr TypedWhichId< SwFormatField > RES_TXTATR_INPUTFIELD(55)
constexpr TypedWhichId< SvxBoxItem > RES_BOX(106)
const SwAttrSet & GetSwAttrSet() const
Does node has already its own auto-attributes? Access to SwAttrSet.
Definition: node.hxx:724
const SfxPoolItem & GetAttr() const
Definition: txatbase.hxx:167
constexpr TypedWhichId< SwFormatFooter > RES_FOOTER(97)
bool IsTableNode() const
Definition: node.hxx:650
static OUString lcl_TokenType2Str(FormTokenType nType)
Definition: dbgoutsw.cxx:750
constexpr TypedWhichId< SwFormatLineNumber > RES_LINENUMBER(116)
SwFormatColl * GetFormatColl() const
Definition: node.hxx:461
constexpr TypedWhichId< SvxCharRotateItem > RES_CHRATR_ROTATE(32)
constexpr TypedWhichId< SvxNoHyphenItem > RES_CHRATR_NOHYPHEN(19)
constexpr TypedWhichId< SwFormatRefMark > RES_TXTATR_REFMARK(RES_TXTATR_WITHEND_BEGIN)
int GetAttrOutlineLevel() const
Definition: fmtcol.cxx:599
const SwIndexReg * GetIdxReg() const
Definition: index.hxx:97
constexpr TypedWhichId< SwParaConnectBorderItem > RES_PARATR_CONNECT_BORDER(78)
tools::Long GetSerial() const
Definition: node.hxx:127
constexpr TypedWhichId< SvxFontHeightItem > RES_CHRATR_CTL_FONTSIZE(28)
bool IsTextNode() const
Definition: node.hxx:646
constexpr TypedWhichId< SvxBrushItem > RES_CHRATR_HIGHLIGHT(42)
constexpr TypedWhichId< SvxFontHeightItem > RES_CHRATR_CJK_FONTSIZE(23)
constexpr TypedWhichId< SvxKerningItem > RES_CHRATR_KERNING(9)
bool IsAuto() const
Query / set AutoFormat-flag.
Definition: format.hxx:178
aStr
FormTokenType
Definition: tox.hxx:226
constexpr TypedWhichId< SwFormatFootnoteAtTextEnd > RES_FTN_AT_TXTEND(117)
constexpr TypedWhichId< SvxULSpaceItem > RES_UL_SPACE(92)
constexpr TypedWhichId< SvxPostureItem > RES_CHRATR_POSTURE(11)
sal_uInt16 Which() const
constexpr TypedWhichId< SvxAdjustItem > RES_PARATR_ADJUST(64)
constexpr TypedWhichId< SvxLanguageItem > RES_CHRATR_CJK_LANGUAGE(24)
constexpr TypedWhichId< SvxShadowItem > RES_SHADOW(107)
constexpr TypedWhichId< SvxWidowsItem > RES_PARATR_WIDOWS(67)
constexpr TypedWhichId< SvXMLAttrContainerItem > RES_TXTATR_UNKNOWN_CONTAINER(54)
const SfxPoolItem * GetCurItem() const
constexpr TypedWhichId< SwFormatAnchor > RES_ANCHOR(104)
SwTextNode * GetTextNode()
Inline methods from Node.hxx.
Definition: ndtxt.hxx:864
Base class of the Writer document model elements.
Definition: node.hxx:81
constexpr TypedWhichId< SvxContourItem > RES_CHRATR_CONTOUR(4)
constexpr TypedWhichId< SwGammaGrf > RES_GRFATR_GAMMA(141)