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