54 result.
sprintf(
"\\yr%d\\mo%d\\dy%d\\hr%d\\min%d\\sec%d",
100 t <<
"# This file describes styles used for generating RTF output.\n";
101 t <<
"# All text after a hash (#) is considered a comment and will be ignored.\n";
102 t <<
"# Remove a hash to activate a line.\n\n";
117 t <<
"# This file describes extensions used for generating RTF output.\n";
118 t <<
"# All text after a hash (#) is considered a comment and will be ignored.\n";
119 t <<
"# Remove a hash to activate a line.\n\n";
121 t <<
"# Overrides the project title.\n";
123 t <<
"#Title = \n\n";
125 t <<
"# Name of the company that produced this document.\n";
126 t <<
"#Company = \n\n";
128 t <<
"# Filename of a company or project logo.\n";
129 t <<
"#LogoFilename = \n\n";
131 t <<
"# Author of the document.\n";
132 t <<
"#Author = \n\n";
134 t <<
"# Type of document (e.g. Design Specification, User Manual, etc.).\n";
135 t <<
"#DocumentType = \n\n";
137 t <<
"# Document tracking number.\n";
138 t <<
"#DocumentId = \n\n";
140 t <<
"# Name of the author's manager.\n";
141 t <<
"# This field is not displayed in the document itself, but it is \n";
142 t <<
"# available in the information block of the rtf file. In Microsoft \n";
143 t <<
"# Word, it is available under File:Properties.\n";
144 t <<
"#Manager = \n\n";
146 t <<
"# Subject of the document.\n";
147 t <<
"# This field is not displayed in the document itself, but it is \n";
148 t <<
"# available in the information block of the rtf file. In Microsoft \n";
149 t <<
"# Word, it is available under File:Properties.\n";
150 t <<
"#Subject = \n\n";
152 t <<
"# Comments regarding the document.\n";
153 t <<
"# This field is not displayed in the document itself, but it is \n";
154 t <<
"# available in the information block of the rtf file. In Microsoft \n";
155 t <<
"# Word, it is available under File:Properties.\n";
156 t <<
"#Comments = \n\n";
158 t <<
"# Keywords associated with the document.\n";
159 t <<
"# This field is not displayed in the document itself, but it is \n";
160 t <<
"# available in the information block of the rtf file. In Microsoft \n";
161 t <<
"# Word, it is available under File:Properties.\n";
162 t <<
"#Keywords = \n\n";
172 err(
"Could not create output directory %s\n",dir.
data());
182 err(
"Internal: rtf_Style_Default[%s] has no definition.\n", def->
name);
190 if (!rtfStyleSheetFile.
isEmpty())
197 if (!rtfExtensionsFile.
isEmpty())
208 result+=(char)(i+
'0');
218 t <<
"\\uc1 \\deff0\\deflang1033\\deflangfe1033\n";
220 DBG_RTF(
t <<
"{\\comment Beginning font list}\n")
223 t <<
"\\fprq2{\\*\\panose 02020603050405020304}Times New Roman;}\n";
225 t <<
"\\fprq2{\\*\\panose 020b0604020202020204}Arial;}\n";
227 t <<
"\\fprq1{\\*\\panose 02070309020205020404}Courier New;}\n";
228 t <<
"{\\f3\\froman\\fcharset2\\fprq2{\\*\\panose 05050102010706020507}Symbol;}\n";
230 DBG_RTF(
t <<
"{\\comment begin colors}\n")
232 t <<
"\\red0\\green0\\blue0;";
233 t <<
"\\red0\\green0\\blue255;";
234 t <<
"\\red0\\green255\\blue255;";
235 t <<
"\\red0\\green255\\blue0;";
236 t <<
"\\red255\\green0\\blue255;";
237 t <<
"\\red255\\green0\\blue0;";
238 t <<
"\\red255\\green255\\blue0;";
239 t <<
"\\red255\\green255\\blue255;";
240 t <<
"\\red0\\green0\\blue128;";
241 t <<
"\\red0\\green128\\blue128;";
242 t <<
"\\red0\\green128\\blue0;";
243 t <<
"\\red128\\green0\\blue128;";
244 t <<
"\\red128\\green0\\blue0;";
245 t <<
"\\red128\\green128\\blue0;";
246 t <<
"\\red128\\green128\\blue128;";
247 t <<
"\\red192\\green192\\blue192;}" <<
endl;
249 DBG_RTF(
t <<
"{\\comment Beginning style list}\n")
250 t <<
"{\\stylesheet\n";
251 t <<
"{\\widctlpar\\adjustright \\fs20\\cgrid \\snext0 Normal;}\n";
256 QDictIterator<StyleData> iter(
rtf_Style);
258 for(; (style = iter.current()); ++iter)
265 array.
resize((index + 1 + 7) & ~7);
269 if (array.
at(index) != 0)
272 msg(
"Style '%s' redefines \\s%d.\n",
key.data(),
index);
274 array.
at(index) = style;
279 for(
unsigned i = 0; i <
size; i++)
288 t <<
"{\\comment begin body}" <<
endl;
295 DBG_RTF(
t <<
"{\\comment BeginRTFChapter}\n")
302 t <<
"\\sect\\sbknone\n";
306 t <<
"\\sect\\sbkpage\n";
309 t <<
rtf_Style[
"Heading1"]->reference <<
"\n";
315 DBG_RTF(
t <<
"{\\comment BeginRTFSection}\n")
322 t <<
"\\sect\\sbknone\n";
326 t <<
"\\sect\\sbkpage\n";
329 t <<
rtf_Style[
"Heading2"]->reference <<
"\n";
338 if (fileName.
right(4)!=
".rtf" ) fileName+=
".rtf";
345 DBG_RTF(
t <<
"{\\comment endFile}\n")
375 t <<
"{\\title {\\comment ";
410 DBG_RTF(
t <<
"{\\comment start classhierarchy}\n")
431 for (gli.toFirst();(gd=gli.current()) && !found;++gli)
447 for (dli.toFirst();(dd=dli.current()) && !found;++dli)
463 for (nli.toFirst();(nd=nli.current()) && !found;++nli)
479 for (cli.toFirst();(cd=cli.current()) && !found;++
cli)
502 for (;(fd=fni.
current());++fni)
553 t <<
"}" << projectName;
559 DBG_RTF(
t <<
"{\\comment end of infoblock}\n");
562 t <<
"\\sectd\\pgnlcrm\n";
563 t <<
"{\\footer "<<
rtf_Style[
"Footer"]->reference <<
"{\\chpgn}}\n";
565 DBG_RTF(
t <<
"{\\comment begin title page}\n")
570 t <<
"\\vertalc\\qc\\par\\par\\par\\par\\par\\par\\par\n";
574 t <<
"\" \\\\d \\\\*MERGEFORMAT} {\\fldrslt IMAGE }}\\par\\par\n";
584 t <<
"{\\field\\fldedit {\\*\\fldinst " << rtf_title <<
" \\\\*MERGEFORMAT}{\\fldrslt " << rtf_title <<
"}}\\par" <<
endl;
588 t <<
"{\\field\\fldedit {\\*\\fldinst TITLE \\\\*MERGEFORMAT}{\\fldrslt ";
590 t <<
"}}\\par" <<
endl;
604 t <<
"\\par\\par\\par\\par\\par\\par\\par\\par\\par\\par\\par\\par\n";
608 t <<
"{\\field\\fldedit {\\*\\fldinst AUTHOR \\\\*MERGEFORMAT}{\\fldrslt "<<
rtf_author <<
" }}\\par" <<
endl;
610 t <<
"{\\field\\fldedit {\\*\\fldinst AUTHOR \\\\*MERGEFORMAT}{\\fldrslt AUTHOR}}\\par" <<
endl;
613 t <<
"{\\field\\fldedit {\\*\\fldinst CREATEDATE \\\\*MERGEFORMAT}" 616 DBG_RTF(
t <<
"{\\comment End title page}" << endl)
619 DBG_RTF(
t <<
"{\\comment Table of contents}\n")
621 t << rtf_Style_Reset <<
endl;
624 t << rtf_Style_Reset <<
"\\par" <<
endl;
625 t <<
"{\\field\\fldedit {\\*\\fldinst TOC \\\\f \\\\*MERGEFORMAT}{\\fldrslt Table of contents}}\\par\n";
626 t << rtf_Style_Reset <<
endl;
639 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
642 t <<
".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
652 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"modules.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
657 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"dirs.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
670 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"namespaces.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
675 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"hierarchy.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
691 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"annotated.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
696 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"files.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
701 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"pages.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
708 for (gli.toFirst();(gd=gli.current());++gli)
713 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
715 t <<
".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
725 for (dli.toFirst();(dd=dli.current());++dli)
730 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
732 t <<
".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
742 for (nli.toFirst();(nd=nli.current()) && !found;++nli)
747 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
749 t <<
".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
753 while ((nd=nli.current()))
759 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
761 t <<
".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
780 for (cli.toFirst();(cd=cli.current()) && !found;++
cli)
788 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
790 t <<
".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
794 for (;(cd=cli.current());++
cli)
803 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
805 t <<
".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
821 for (;(fd=fni.
current());++fni)
828 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
830 t <<
".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
834 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"" << fd->
getSourceFileBase() <<
".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
842 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
844 t <<
".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
848 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"" << fd->
getSourceFileBase() <<
".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
865 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
867 t <<
".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
869 for (++pdi;(pd=pdi.current());++pdi)
873 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
875 t <<
".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
912 t <<
"{\\field\\fldedit {\\*\\fldinst INDEX \\\\c2 \\\\*MERGEFORMAT}{\\fldrslt INDEX}}\n";
921 t <<
"{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
923 t <<
".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
928 DBG_RTF(
t <<
"{\\comment Beginning Body of RTF Document}\n")
930 t <<
"\\sect \\sbkpage \\pgndec \\pgnrestart\n";
931 t <<
"\\sect \\sectd \\sbknone\n";
934 t <<
"{\\footer "<<
rtf_Style[
"Footer"]->reference <<
"{\\chpgn}}\n";
946 t <<
"\\par" <<
endl;
959 t <<
"\\par" <<
endl;
1020 DBG_RTF(
t <<
"{\\comment (startItemListItem)}" <<
endl)
1047 t <<
"\\par" <<
endl;
1080 t <<
"{\\field {\\*\\fldinst { HYPERLINK \"";
1083 t <<
"}{\\fldrslt {\\cs37\\ul\\cf2 ";
1111 const char *path,
const char *
name)
1113 DBG_RTF(
t <<
"{\\comment (writeStartAnnoItem)}" <<
endl)
1118 t <<
"{\\field {\\*\\fldinst { HYPERLINK \\\\l \"";
1121 t <<
"}{\\fldrslt {\\cs37\\ul\\cf2 ";
1165 if (hasBrief)
t <<
"(";
1171 if (hasBrief)
t <<
")";
1191 DBG_RTF(
t <<
"{\\comment Begin SubSection}\n")
1193 t <<
rtf_Style[
"Heading3"]->reference <<
"\n";
1206 DBG_RTF(
t <<
"{\\comment Begin SubSubSection}\n")
1308 t <<
"{\\field {\\*\\fldinst { HYPERLINK \\\\l \"";
1311 t <<
"}{\\fldrslt {\\cs37\\ul\\cf2 ";
1324 const char *anchor,
const char *text)
1339 t <<
"{\\field {\\*\\fldinst { HYPERLINK \\\\l \"";
1342 t <<
"}{\\fldrslt {\\cs37\\ul\\cf2 ";
1380 const char *anchor,
const char *
name,
1396 t <<
"{\\field {\\*\\fldinst { HYPERLINK \\\\l \"";
1399 t <<
"}{\\fldrslt {\\cs37\\ul\\cf2 ";
1426 t <<
"{\\tc\\tcl2 \\v ";
1463 else if (extraIndent==1)
1477 t <<
"\\par" <<
endl;
1482 const char *memname,
1488 if (memname && memname[0]!=
'@')
1513 const char *,
const char *,
1534 t <<
"{\\bkmkstart ";
1608 DBG_RTF(
t <<
"{\\comment (startMemberDescription)}" <<
endl)
1617 DBG_RTF(
t <<
"{\\comment (endMemberDescription)}" <<
endl)
1647 DBG_RTF(
t <<
"{\\comment (startDescForItem) }" <<
endl)
1678 default:
ASSERT(0);
break;
1681 heading.
sprintf(
"Heading%d",num);
1685 t <<
"{\\tc\\tcl" << num <<
" \\v ";
1746 const unsigned char *
p=(
const unsigned char *)str;
1757 t << getMultiByte( c );
1764 t << getMultiByte( c );
1771 case '{':
t <<
"\\{";
break;
1772 case '}':
t <<
"\\}";
break;
1773 case '\\':
t <<
"\\\\";
break;
1794 const unsigned char *
p=(
const unsigned char *)str;
1796 int spacesToNextTabStop;
1808 col+=spacesToNextTabStop;
1813 case '{':
t <<
"\\{";
col++;
break;
1814 case '}':
t <<
"\\}";
col++;
break;
1815 case '\\':
t <<
"\\\\";
col++;
break;
1816 default: p=(
const unsigned char *)
writeUtf8Char(
t,(
const char *)p-1);
col++;
break;
1846 t <<
"\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE \"";
1847 t << fileName <<
".png\"";
1848 t <<
" \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" <<
endl;
1876 if (fileName && name)
1885 DBG_RTF(
t <<
"{\\comment writeAnchor (" << anchor <<
")}" <<
endl)
1892 t <<
"{\\field\\fldedit {\\*\\fldinst PAGEREF ";
1894 t <<
" \\\\*MERGEFORMAT}{\\fldrslt pagenum}}";
1899 DBG_RTF(
t <<
"{\\comment (startCodeFragment) }" <<
endl)
1926 DBG_RTF(
t <<
"{\\comment (startMemberList) }" << endl)
1930 t <<
"\\begin{CompactItemize}" <<
endl;
1940 t <<
"\\end{CompactItemize}" <<
endl;
2007 DBG_RTF(
t <<
"{\\comment (startDescTableTitle) }" <<
endl)
2014 DBG_RTF(
t <<
"{\\comment (endDescTableTitle) }" <<
endl)
2022 DBG_RTF(
t <<
"{\\comment (startDescTableData) }" <<
endl)
2028 DBG_RTF(
t <<
"{\\comment (endDescTableData) }" <<
endl)
2050 err(
"Negative indent level while generating RTF output!\n");
2123 t <<
"\\par" <<
endl;
2138 t <<
"}\\par" <<
endl;
2144 DBG_RTF(
t <<
"{\\comment startMemberSubtitle}" <<
endl)
2273 if (codePage ==
"932")
2275 result = (0x81<=c && c<=0x9f) || (0xe0<=c && c<=0xfc);
2277 else if (codePage ==
"936")
2279 result = 0x81<=c && c<=0xFE;
2281 else if (codePage ==
"949")
2283 result = 0x81<=c && c<=0xFE;
2285 else if (codePage ==
"950")
2287 result = 0x81<=c && c<=0xFE;
2303 bool converted=
FALSE;
2312 if (cd!=(
void *)(-1))
2315 size_t oLeft=enc.
size();
2316 char *inputPtr = (
char*)s;
2317 char *outputPtr = enc.
data();
2332 bool multiByte =
FALSE;
2334 for (i=0;i<enc.
size();i++)
2338 if (c>=0x80 || multiByte)
2341 sprintf(esc,
"\\'%X",c);
2369 err(
"problems opening rtf file %s for reading\n",infName.
data());
2373 const int maxLineLength = 10240;
2374 static QCString lineBuf(maxLineLength);
2383 lineBuf.
resize(maxLineLength);
2386 err(
"read error in %s before end of RTF header!\n",infName.
data());
2390 if (lineBuf.
find(
"\\comment begin body")!=-1)
break;
2395 lineBuf.
resize(maxLineLength);
2400 if ((pos=lineBuf.
find(
"INCLUDETEXT"))!=-1)
2402 int startNamePos = lineBuf.
find(
'"',pos)+1;
2403 int endNamePos = lineBuf.
find(
'"',startNamePos);
2405 DBG_RTF(t <<
"{\\comment begin include " << fileName <<
"}" <<
endl)
2407 DBG_RTF(t <<
"{\\comment end include " << fileName <<
"}" <<
endl)
2413 if (!f.
atEnd() || bIncludeHeader)
2421 int pos = lineBuf.
findRev(
'}');
2424 lineBuf.
at(pos) =
'\0';
2426 err(
"Strange, the last char was not a '}'\n");
2430 lineBuf.
resize(maxLineLength);
2453 t <<
"\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE \"";
2455 t << fn <<
"." << imgExt;
2456 t <<
"\" \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" <<
endl;
2459 DBG_RTF(
t <<
"{\\comment (endDotGraph)}" << endl)
2464 DBG_RTF(
t <<
"{\\comment (startInclDepGraph)}" <<
endl)
2477 t <<
"\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE \"";
2479 t << fn <<
"." << imgExt;
2480 t <<
"\" \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" <<
endl;
2482 DBG_RTF(
t <<
"{\\comment (endInclDepGraph)}" << endl)
2508 t <<
"\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE \"";
2510 t << fn <<
"." << imgExt;
2511 t <<
"\" \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" <<
endl;
2513 DBG_RTF(
t <<
"{\\comment (endCallGraph)}" << endl)
2531 t <<
"\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE \"";
2533 t << fn <<
"." << imgExt;
2534 t <<
"\" \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" <<
endl;
2536 DBG_RTF(
t <<
"{\\comment (endDirDepGraph)}" << endl)
2550 while ((c=f.
getch())!=-1)
2576 if (bcount==0)
return;
2578 err(
"RTF integrity test failed at line %d of %s due to a bracket mismatch.\n" 2579 " Please try to create a small code example that produces this error \n" 2580 " and send that to dimitri@stack.nl.\n",line,name);
2593 err(
"Output dir %s does not exist!\n",path);
2605 QFile outf(combinedName);
2608 err(
"Failed to open %s for writing!\n",combinedName.
data());
2618 thisDir.remove(combinedName);
2625 thisDir.remove(mainRTFName);
2626 thisDir.rename(combinedName,mainRTFName);
2636 DBG_RTF(
t <<
"{\\comment startMemberGroupHeader}" <<
endl)
2644 DBG_RTF(
t <<
"{\\comment endMemberGroupHeader}" <<
endl)
2651 DBG_RTF(
t <<
"{\\comment startMemberGroupDocs}" <<
endl)
2733 DBG_RTF(
t <<
"{\\comment (startParameterType)}" <<
endl)
2736 t <<
" " << key <<
" ";
2751 else if (closeBracket)
2766 DBG_RTF(
t <<
"{\\comment (rtfwriteRuler_doubleline)}" <<
endl)
2767 t <<
"{\\pard\\widctlpar\\brdrb\\brdrdb\\brdrw15\\brsp20 \\adjustright \\par}" <<
endl;
2772 DBG_RTF(
t <<
"{\\comment (rtfwriteRuler_emboss)}" <<
endl)
2773 t <<
"{\\pard\\widctlpar\\brdrb\\brdremboss\\brdrw15\\brsp20 \\adjustright \\par}" <<
endl;
2778 DBG_RTF(
t <<
"{\\comment (rtfwriteRuler_thick)}" <<
endl)
2779 t <<
"{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw75\\brsp20 \\adjustright \\par}" <<
endl;
2784 DBG_RTF(
t <<
"{\\comment (rtfwriteRuler_thin)}" <<
endl)
2785 t <<
"{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw5\\brsp20 \\adjustright \\par}" <<
endl;
2795 for (i=0;i<a.
size();i++)
2797 unsigned char c = (
unsigned char)a.
at(i);
2801 if (c>0x80 || (mbFlag && c!=
'\\' && c!=
'{' && c!=
'}'))
2804 sprintf(s,
"\\'%X",c);
2821 DBG_RTF(
t <<
"{\\comment (startConstraintList)}" <<
endl)
2836 DBG_RTF(
t <<
"{\\comment (startConstraintParam)}" <<
endl)
2842 DBG_RTF(
t <<
"{\\comment (endConstraintParam)}" <<
endl)
2849 DBG_RTF(
t <<
"{\\comment (startConstraintType)}" <<
endl)
2855 DBG_RTF(
t <<
"{\\comment (endConstraintType)}" <<
endl)
2862 DBG_RTF(
t <<
"{\\comment (startConstraintDocs)}" <<
endl)
2867 DBG_RTF(
t <<
"{\\comment (endConstraintDocs)}" <<
endl)
2873 DBG_RTF(
t <<
"{\\comment (endConstraintList)}" <<
endl)
2882 DBG_RTF(
t <<
"{\\comment (startIndexListItem)}" <<
endl)
2888 t <<
"\\par" <<
endl;
2893 DBG_RTF(
t <<
"{\\comment (startInlineHeader)}" <<
endl)
2909 DBG_RTF(
t <<
"{\\comment (startMemberDocSimple)}" <<
endl)
2910 t <<
"{\\par" <<
endl;
2914 t <<
"\\trowd \\trgaph108\\trleft426\\tblind426" 2915 "\\trbrdrt\\brdrs\\brdrw10\\brdrcf15 " 2916 "\\trbrdrl\\brdrs\\brdrw10\\brdrcf15 " 2917 "\\trbrdrb\\brdrs\\brdrw10\\brdrcf15 " 2918 "\\trbrdrr\\brdrs\\brdrw10\\brdrcf15 " 2919 "\\trbrdrh\\brdrs\\brdrw10\\brdrcf15 " 2920 "\\trbrdrv\\brdrs\\brdrw10\\brdrcf15 "<<
endl;
2921 int i,columnPos[3] = { 25, 50, 100 };
2924 t <<
"\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 " 2925 "\\clbrdrl\\brdrs\\brdrw10\\brdrcf15 " 2926 "\\clbrdrb\\brdrs\\brdrw10\\brdrcf15 " 2927 "\\clbrdrr \\brdrs\\brdrw10\\brdrcf15 " 2931 t <<
"\\pard \\widctlpar\\intbl\\adjustright" <<
endl;
2936 DBG_RTF(
t <<
"{\\comment (endMemberDocSimple)}" <<
endl)
2942 DBG_RTF(
t <<
"{\\comment (startInlineMemberType)}" <<
endl)
2948 DBG_RTF(
t <<
"{\\comment (endInlineMemberType)}" <<
endl)
2954 DBG_RTF(
t <<
"{\\comment (startInlineMemberName)}" <<
endl)
2960 DBG_RTF(
t <<
"{\\comment (endInlineMemberName)}" <<
endl)
2966 DBG_RTF(
t <<
"{\\comment (startInlineMemberDoc)}" <<
endl)
2972 DBG_RTF(
t <<
"{\\comment (endInlineMemberDoc)}" <<
endl)
2973 t <<
"\\cell }{\\row }" <<
endl;
2982 t <<
"{\\f2 [" << l <<
"]}";
2983 if (!isLast)
t <<
", ";
void startTextBlock(bool dense)
Traverses directory structures and contents in a platform-independent way.
static GroupSDict * groupSDict
static QCString dateToRTFDateString()
virtual QCString trHierarchicalIndex()=0
bool isLinkableInProject() const
void docify(const char *text)
virtual QCString trRTFTableOfContents()=0
void startInlineMemberName()
static constexpr double g
static PageSDict * exampleSDict
virtual bool remove(const QString &fileName, bool acceptAbsPath=TRUE)
void startFile(const char *name, const char *manName, const char *title)
void startGroupHeader(int)
void writePageLink(const char *, bool)
void startMemberDoc(const char *, const char *, const char *, const char *, bool)
void startTextLink(const char *f, const char *anchor)
void msg(const char *fmt,...)
static void writeExtensionsFile(QFile &file)
void testRTFOutput(const char *name)
bool generateSourceFile() const
void rtfwriteRuler_doubleline()
void startMemberDescription(const char *, const char *)
void endDotGraph(const DotClassGraph &)
QCString getOutputFileBase() const
virtual QCString trModuleIndex()=0
QDict< StyleData > rtf_Style
const char * rtf_Code_DepthStyle()
QCString rtf_documentType
virtual QCString trCompoundIndexFortran()=0
void startConstraintParam()
void endInlineMemberDoc()
virtual QCString trCompoundIndex()=0
const char * rtf_EList_DepthStyle()
void startMemberDocSimple()
size_t portable_iconv(void *cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
DocText * validatingParseText(const char *input)
void writeAnchor(const char *fileName, const char *name)
static FileNameList * inputNameList
void writeString(const char *text)
void decrementIndentLevel()
static bool preProcessFileInplace(const char *path, const char *name)
void endGroupCollaboration(const DotGroupCollaboration &g)
int readLine(char *data, uint maxlen)
const char * rtf_DList_DepthStyle()
void endDoxyAnchor(const char *, const char *)
QCString left(uint len) const
virtual bool isReference() const
void startTitleHead(const char *)
const char * rtf_BList_DepthStyle()
QCString relativePathToRoot(const char *name)
static QCString trDesignUnitIndex()
Simplified and optimized version of QTextStream.
int find(char c, int index=0, bool cs=TRUE) const
virtual QCString trModuleDocumentation()=0
void writeDoc(DocNode *, Definition *, MemberDef *)
virtual QString absPath() const
int findRev(char c, int index=-1, bool cs=TRUE) const
void startSimpleSect(SectionTypes, const char *, const char *, const char *)
void startInlineMemberType()
void endDirDepGraph(const DotDirDeps &g)
void loadStylesheet(const char *name, QDict< StyleData > &dict)
QCString getDefFileExtension() const
virtual QCString trPageIndex()=0
int portable_iconv_close(void *cd)
#define Config_getInt(val)
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
static NamespaceSDict * namespaceSDict
QCString writeGraph(FTextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const char *path, const char *fileName, const char *relPath, bool TBRank=TRUE, bool imageMap=TRUE, int graphId=-1) const
ClassDef * templateMaster() const
void startConstraintList(const char *)
RTFListItemInfo rtf_listItemInfo[rtf_maxIndentLevels]
void startConstraintType()
bool fill(const type &d, int size=-1)
void startIndexItem(const char *ref, const char *file)
void startSection(const char *, const char *, SectionInfo::SectionType)
void endMemberGroupDocs()
virtual bool mkdir(const QString &dirName, bool acceptAbsPath=TRUE) const
virtual QCString trMainPage()=0
static void encodeForOutput(FTextStream &t, const char *s)
const char * rtf_CList_DepthStyle()
Q_EXPORT uint qstrlen(const char *str)
void startPlainFile(const char *name)
void startMemberGroupHeader(bool)
virtual QCString trFileDocumentation()=0
bool isLinkableInProject() const
void writeImage(FTextStream &t, const char *path, const char *relPath, const char *file, bool generateMap=TRUE) const
virtual QCString trDirDocumentation()=0
void startDescTableData()
void rtfwriteRuler_thick()
virtual QCString trDirIndex()=0
QCString getSourceFileBase() const
QCString right(uint len) const
void endIndexItem(const char *ref, const char *file)
const char * writeUtf8Char(FTextStream &t, const char *s)
static DirSDict * directories
void startSubsubsection()
static QString currentDirPath()
void addIndexItem(const char *, const char *)
QCString rtf_logoFilename
void endPageRef(const char *, const char *)
void endInlineMemberType()
void writeRTFReference(const char *label)
virtual QCString trClassDocumentation()=0
const char * rtf_LCList_DepthStyle()
virtual QCString trFileIndex()=0
A bunch of utility functions.
Concrete visitor implementation for RTF output.
void startMemberSubtitle()
const char * data() const
bool isEmbeddedInOuterScope() const
void endSection(const char *, SectionInfo::SectionType)
void startDoxyAnchor(const char *, const char *, const char *, const char *, const char *)
QCString dateToString(bool includeTime)
#define Config_getString(val)
void * portable_iconv_open(const char *tocode, const char *fromcode)
virtual QCString trVersion()=0
#define Config_getBool(val)
virtual QCString trRTFansicp()=0
QCString getDotImageExtension(void)
void writeLabel(const char *l, bool isLast)
void endIndexValue(const char *, bool)
bool isLinkableInProject() const
void err(const char *fmt,...)
void startConstraintDocs()
void endTitleHead(const char *, const char *name)
QCString mid(uint index, uint len=0xffffffff) const
QCString getOutputFileBase() const
The QDateTime class provides date and time functions.
void lineBreak(const char *style=0)
void exceptionEntry(const char *, bool)
The QFile class is an I/O device that operates on files.
virtual QCString trExampleDocumentation()=0
virtual QCString trRTFCharSet()=0
QCString & sprintf(const char *format,...)
void rtfwriteRuler_emboss()
QCString getOutputFileBase() const
void startIndexSection(IndexSections)
auto array(Array const &a)
Returns a manipulator which will print the specified array.
void startParameterType(bool, const char *)
void endConstraintParam()
void writeObjectLink(const char *ref, const char *file, const char *anchor, const char *name)
QCString getOutputFileBase() const
QCString writeGraph(FTextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const char *path, const char *fileName, const char *relPath, bool writeImageMap=TRUE, int graphId=-1) const
void startDescList(SectionTypes)
virtual QCString trNamespaceIndex()=0
void codify(const char *text)
void startGroupCollaboration()
void endInclDepGraph(const DotInclDepGraph &)
void writeEndAnnoItem(const char *name)
void endMemberGroup(bool)
void startIndexListItem()
void startInlineMemberDoc()
A model of a page symbol.
static QDateTime currentDateTime()
void line(double t, double *p, double &x, double &y, double &z)
void startDescTable(const char *title)
static void writeStyleSheetFile(QFile &f)
Rtf_Style_Default rtf_Style_Default[]
void writeNonBreakableSpace(int)
void endMemberDescription()
void writeCodeLink(const char *ref, const char *file, const char *anchor, const char *name, const char *tooltip)
Q_EXPORT char * qstrcpy(char *dst, const char *src)
void startMemberItem(const char *, int, const char *)
Translator * theTranslator
QCString writeGraph(FTextStream &out, GraphOutputFormat gf, EmbeddedOutputFormat ef, const char *path, const char *fileName, const char *relPath, bool writeImageMap=TRUE, int graphId=-1, bool linkRelations=TRUE) const
void endCallGraph(const DotCallGraph &)
virtual QCString trCompoundMembers()=0
static bool preProcessFile(QDir &d, QCString &infName, FTextStream &t, bool bIncludeHeader=TRUE)
void endClassDiagram(const ClassDiagram &, const char *filename, const char *name)
void endInlineMemberName()
void writeStartAnnoItem(const char *type, const char *file, const char *path, const char *name)
static QCString makeIndexName(const char *s, int i)
void createSubDirs(QDir &d)
void endMemberGroupHeader()
void incrementIndentLevel()
QCString writeGraph(FTextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const char *path, const char *fileName, const char *relPath, bool writeImageMap=TRUE, int graphId=-1) const
void startHtmlLink(const char *url)
bool isLinkableInProject() const
void startDescTableTitle()
void startProjectNumber()
void loadExtensions(const char *name)
QCString getOutputFileBase() const
void startIndexValue(bool)
static ClassSDict * classSDict
QCString getOutputFileBase() const
void rtfwriteRuler_thin()
static PageDef * mainPage
virtual void accept(DocVisitor *v)=0
void endIndexSection(IndexSections)
virtual bool exists() const
virtual QCString trRTFGeneralIndex()=0
virtual QCString trTypeDocumentation()=0
Portable versions of functions that are platform dependent.
QCString rtfFormatBmkStr(const char *name)
QCString substitute(const QCString &s, const QCString &src, const QCString &dst)
substitute all occurrences of src in s by dst
static bool setCurrent(const QString &path)
QTextStream & endl(QTextStream &s)
virtual QCString trModulesIndex()=0
void endMemberDocSimple()
const int rtf_maxIndentLevels
void writeStyleInfo(int part)
void startMemberGroupDocs()
void startParamList(ParamListTypes, const char *)