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