57 t <<
" <div id=\"MSearchBox\" class=\"MSearchBoxInactive\">\n";
58 t <<
" <span class=\"left\">\n";
59 t <<
" <img id=\"MSearchSelect\" src=\"" << relPath <<
"search/mag_sel.png\"\n";
60 t <<
" onmouseover=\"return searchBox.OnSearchSelectShow()\"\n";
61 t <<
" onmouseout=\"return searchBox.OnSearchSelectHide()\"\n";
63 t <<
" <input type=\"text\" id=\"MSearchField\" value=\"" 65 t <<
" onfocus=\"searchBox.OnSearchFieldFocus(true)\" \n";
66 t <<
" onblur=\"searchBox.OnSearchFieldFocus(false)\" \n";
67 t <<
" onkeyup=\"searchBox.OnSearchFieldChange(event)\"/>\n";
68 t <<
" </span><span class=\"right\">\n";
69 t <<
" <a id=\"MSearchClose\" href=\"javascript:searchBox.CloseResultsWindow()\">" 70 <<
"<img id=\"MSearchCloseImg\" border=\"0\" src=\"" << relPath <<
"search/close.png\" alt=\"\"/></a>\n";
78 t <<
" <div id=\"MSearchBox\" class=\"MSearchBoxInactive\">\n";
79 t <<
" <div class=\"left\">\n";
80 t <<
" <form id=\"FSearchBox\" action=\"" << relPath;
89 t <<
"\" method=\"get\">\n";
90 t <<
" <img id=\"MSearchSelect\" src=\"" << relPath <<
"search/mag.png\" alt=\"\"/>\n";
93 t <<
" <input type=\"text\" id=\"MSearchField\" name=\"query\" value=\"" 95 t <<
" onfocus=\"searchBox.OnSearchFieldFocus(true)\" \n";
96 t <<
" onblur=\"searchBox.OnSearchFieldFocus(false)\"/>\n";
98 t <<
" </div><div class=\"right\"></div>\n";
108 if (s==0 || begin==0 || end==0)
return s;
113 for (p=s; (q=strstr(p,begin))!=0; p=q+endLen)
117 if ((q=strstr(p,end))==0)
128 for (r=result.
rawData(), p=
s; (q=strstr(p,begin))!=0; p=q+endLen)
134 if ((q=strstr(p,end))==0)
136 memcpy(r,begin,beginLen);
151 const QCString nobegin =
"<!--BEGIN !" + name +
"-->";
152 const QCString noend =
"<!--END !" + name +
"-->";
189 const char *
p=s.
data();
198 while (*e==
' ' || *e==
'\t') e++;
235 static bool serverBasedSearch =
Config_getBool(
"SERVER_BASED_SEARCH");
239 static bool hasProjectName = !projectName.
isEmpty();
240 static bool hasProjectNumber = !
Config_getString(
"PROJECT_NUMBER").isEmpty();
243 static bool titleArea = (hasProjectName || hasProjectBrief || hasProjectLogo || (disableIndex && searchEngine));
248 cssFile =
"doxygen.css";
259 cssFile =
"doxygen.css";
265 for (
uint i=0; i<extraCssFile.
count(); ++i)
273 extraCssText +=
"<link href=\"$relpath^"+
stripPath(
fileName)+
"\" rel=\"stylesheet\" type=\"text/css\"/>\n";
289 treeViewCssJs =
"<link href=\"$relpath^navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n" 290 "<script type=\"text/javascript\" src=\"$relpath^resize.js\"></script>\n" 291 "<script type=\"text/javascript\" src=\"$relpath^navtreedata.js\"></script>\n" 292 "<script type=\"text/javascript\" src=\"$relpath^navtree.js\"></script>\n" 293 "<script type=\"text/javascript\">\n" 294 " $(document).ready(initResizable);\n" 295 " $(window).load(resizeHeight);\n" 301 searchCssJs =
"<link href=\"$relpath^search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n";
302 if (!serverBasedSearch)
304 searchCssJs +=
"<script type=\"text/javascript\" src=\"$relpath^search/searchdata.js\"></script>\n";
306 searchCssJs +=
"<script type=\"text/javascript\" src=\"$relpath^search/search.js\"></script>\n";
308 if (!serverBasedSearch)
310 searchCssJs +=
"<script type=\"text/javascript\">\n" 311 " $(document).ready(function() { init_search(); });\n" 316 searchCssJs +=
"<script type=\"text/javascript\">\n" 317 " $(document).ready(function() {\n" 318 " if ($('.searchresults').length > 0) { searchBox.DOMSearchField().focus(); }\n" 323 searchCssJs +=
"<link rel=\"search\" href=\"" + relPath +
324 "search_opensearch.php?v=opensearch.xml\" " 325 "type=\"application/opensearchdescription+xml\" title=\"" +
326 (hasProjectName ? projectName :
QCString(
"Doxygen")) +
340 mathJaxJs =
"<script type=\"text/x-mathjax-config\">\n" 341 " MathJax.Hub.Config({\n" 342 " extensions: [\"tex2jax.js\"";
344 const char *s = mathJaxExtensions.
first();
347 mathJaxJs+=
", \""+
QCString(s)+
".js\"";
348 s = mathJaxExtensions.
next();
352 mathJaxFormat =
"HTML-CSS";
355 " jax: [\"input/TeX\",\"output/"+mathJaxFormat+
"\"],\n" 362 mathJaxJs +=
"</script>";
363 mathJaxJs +=
"<script type=\"text/javascript\" src=\"" + path +
"MathJax.js\"></script>\n";
373 result =
substitute(result,
"$navpath",navPath);
374 result =
substitute(result,
"$stylesheet",cssFile);
375 result =
substitute(result,
"$treeview",treeViewCssJs);
376 result =
substitute(result,
"$searchbox",searchBox);
377 result =
substitute(result,
"$search",searchCssJs);
378 result =
substitute(result,
"$mathjax",mathJaxJs);
379 result =
substitute(result,
"$generatedby",generatedBy);
380 result =
substitute(result,
"$extrastylesheet",extraCssText);
381 result =
substitute(result,
"$relpath$",relPath);
382 result =
substitute(result,
"$relpath^",relPath);
385 result =
selectBlock(result,
"DISABLE_INDEX",disableIndex);
386 result =
selectBlock(result,
"GENERATE_TREEVIEW",treeView);
387 result =
selectBlock(result,
"SEARCHENGINE",searchEngine);
388 result =
selectBlock(result,
"TITLEAREA",titleArea);
389 result =
selectBlock(result,
"PROJECT_NAME",hasProjectName);
390 result =
selectBlock(result,
"PROJECT_NUMBER",hasProjectNumber);
391 result =
selectBlock(result,
"PROJECT_BRIEF",hasProjectBrief);
392 result =
selectBlock(result,
"PROJECT_LOGO",hasProjectLogo);
402 : m_streamSet(
FALSE), m_col(0)
430 int spacesToNextTabStop;
436 case '\t': spacesToNextTabStop =
437 tabSize - (
m_col%tabSize);
439 m_col+=spacesToNextTabStop;
456 {
m_t <<
"<"; p++; }
458 {
m_t <<
">"; p++; }
482 case '<':
m_t <<
"<";
break;
483 case '>':
m_t <<
">";
break;
484 case '&':
m_t <<
"&";
break;
485 case '"':
m_t <<
""";
break;
488 {
m_t <<
"<"; p++; }
490 {
m_t <<
">"; p++; }
501 const char *anchor,
int l)
504 const int maxLineNrStr = 10;
505 char lineNumber[maxLineNrStr];
506 char lineAnchor[maxLineNrStr];
507 qsnprintf(lineNumber,maxLineNrStr,
"%5d",l);
508 qsnprintf(lineAnchor,maxLineNrStr,
"l%05d",l);
510 m_t <<
"<div class=\"line\">";
511 m_t <<
"<a name=\"" << lineAnchor <<
"\"></a><span class=\"lineno\">";
525 const char *anchor,
const char *
name,
534 const char *ref,
const char *
f,
535 const char *anchor,
const char *
name,
540 m_t <<
"<a class=\"" << className <<
"Ref\" ";
545 m_t <<
"<a class=\"" << className <<
"\" ";
550 if (anchor)
m_t <<
"#" << anchor;
560 const char *decl,
const char *
desc,
564 m_t <<
"<div class=\"ttc\" id=\"" <<
id <<
"\">";
565 m_t <<
"<div class=\"ttname\">";
585 m_t <<
"<div class=\"ttdeci\">";
591 m_t <<
"<div class=\"ttdoc\">";
597 m_t <<
"<div class=\"ttdef\"><b>Definition:</b> ";
618 m_t <<
"<div class=\"ttdecl\"><b>Declaration:</b> ";
645 if (!hasLineNumbers)
m_t <<
"<div class=\"line\">";
689 err(
"Could not create output directory %s\n",dname.
data());
732 QFile f(dname+
"/dynsections.js");
740 "$(document).ready(function() {\n" 741 " $('.code,.codeRef').each(function() {\n" 742 " $(this).data('powertip',$('#'+$(this).attr('href').replace(/.*\\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());\n" 743 " $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });\n" 783 static bool serverBasedSearch =
Config_getBool(
"SERVER_BASED_SEARCH");
793 if (serverBasedSearch)
807 QFile f(searchDirName+
"/search.css");
816 searchCss =
substitute(searchCss,
"margin-top: 8px;",
"margin-top: 0px;");
869 t <<
"<script type=\"text/javascript\">\n";
870 t <<
"var searchBox = new SearchBox(\"searchBox\", \"" 881 static bool serverBasedSearch =
Config_getBool(
"SERVER_BASED_SEARCH");
882 if (searchEngine && !serverBasedSearch)
885 t <<
"<!-- window showing the filter options -->\n";
886 t <<
"<div id=\"MSearchSelectWindow\"\n";
887 t <<
" onmouseover=\"return searchBox.OnSearchSelectShow()\"\n";
888 t <<
" onmouseout=\"return searchBox.OnSearchSelectHide()\"\n";
889 t <<
" onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n";
892 t <<
"<!-- iframe showing the search results (closed by default) -->\n";
893 t <<
"<div id=\"MSearchResultsWindow\">\n";
894 t <<
"<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n";
895 t <<
" name=\"MSearchResults\" id=\"MSearchResults\">\n";
923 result +=
" \n<a href=\"http://www.doxygen.org/index.html\">\n" 924 "<img class=\"footer\" src=\"";
926 result +=
"doxygen.png\" alt=\"doxygen\"/></a> ";
955 t <<
"<h3 class=\"version\">";
1001 for (
uint i=0; i<extraCssFile.
count(); ++i)
1017 const char *anchor,
const char *,
1020 t <<
"<a class=\"anchor\" id=\"" << anchor <<
"\"></a>";
1039 t <<
"</p>" <<
endl;
1054 t <<
"</li>" <<
endl;
1064 t <<
"<a class=\"elRef\" ";
1069 t <<
"<a class=\"el\" ";
1095 const char *path,
const char *
name)
1105 const char *anchor,
const char *
name)
1109 t <<
"<a class=\"elRef\" ";
1114 t <<
"<a class=\"el\" ";
1119 if (anchor)
t <<
"#" << anchor;
1129 if (anchor)
t <<
"#" << anchor;
1140 static bool generateTreeView =
Config_getBool(
"GENERATE_TREEVIEW");
1142 if (generateTreeView)
t <<
"target=\"top\" ";
1155 if (extraIndentLevel==2)
1157 t <<
"<h4 class=\"groupheader\">";
1159 else if (extraIndentLevel==1)
1161 t <<
"<h3 class=\"groupheader\">";
1165 t <<
"<h2 class=\"groupheader\">";
1171 if (extraIndentLevel==2)
1173 t <<
"</h4>" <<
endl;
1175 else if (extraIndentLevel==1)
1177 t <<
"</h3>" <<
endl;
1181 t <<
"</h2>" <<
endl;
1194 default:
ASSERT(0);
break;
1196 t <<
"<a class=\"anchor\" id=\"" << lab <<
"\"></a>";
1208 default:
ASSERT(0);
break;
1228 case '<':
t <<
"<";
break;
1229 case '>':
t <<
">";
break;
1230 case '&':
t <<
"&";
break;
1231 case '"':
t <<
""";
break;
1232 case '-':
if (inHtmlComment)
t <<
"-";
else t <<
"-";
break;
1235 {
t <<
"<"; p++; }
1237 {
t <<
">"; p++; }
1258 const QCString &relPath,
int sectionCount)
1261 static bool dynamicSections =
Config_getBool(
"HTML_DYNAMIC_SECTIONS");
1262 if (dynamicSections)
1264 t <<
"<div id=\"dynsection-" << sectionCount <<
"\" " 1265 "onclick=\"return toggleVisibility(this)\" " 1266 "class=\"dynheader closed\" " 1267 "style=\"cursor:pointer;\">" <<
endl;
1268 t <<
" <img id=\"dynsection-" << sectionCount <<
"-trigger\" src=\"" 1269 << relPath <<
"closed.png\" alt=\"+\"/> ";
1273 t <<
"<div class=\"dynheader\">" <<
endl;
1280 t <<
"</div>" <<
endl;
1286 static bool dynamicSections =
Config_getBool(
"HTML_DYNAMIC_SECTIONS");
1287 if (dynamicSections)
1289 t <<
"<div id=\"dynsection-" << sectionCount <<
"-summary\" " 1290 "class=\"dynsummary\" " 1291 "style=\"display:block;\">" <<
endl;
1298 static bool dynamicSections =
Config_getBool(
"HTML_DYNAMIC_SECTIONS");
1299 if (dynamicSections)
1301 t <<
"</div>" <<
endl;
1308 static bool dynamicSections =
Config_getBool(
"HTML_DYNAMIC_SECTIONS");
1309 if (dynamicSections)
1311 t <<
"<div id=\"dynsection-" << sectionCount <<
"-content\" " 1312 "class=\"dyncontent\" " 1313 "style=\"display:none;\">" <<
endl;
1317 t <<
"<div class=\"dyncontent\">" <<
endl;
1324 t <<
"</div>" <<
endl;
1341 t <<
" <div class=\"center\">" <<
endl;
1342 t <<
" <img src=\"";
1343 t << relPath << fileName <<
".png\" usemap=\"#" <<
convertToId(name);
1344 t <<
"_map\" alt=\"\"/>" <<
endl;
1346 t <<
"_map\" name=\"";
1348 t <<
"_map\">" <<
endl;
1376 t <<
"<table class=\"memberdecls\">" <<
endl;
1379 t <<
"<tr class=\"memitem:" << anchor;
1382 t <<
" inherit " << inheritId;
1387 case 0:
t <<
"<td class=\"memItemLeft\" align=\"right\" valign=\"top\">";
break;
1388 case 1:
t <<
"<td class=\"memItemLeft\" >";
break;
1389 case 2:
t <<
"<td class=\"memItemLeft\" valign=\"top\">";
break;
1390 default:
t <<
"<td class=\"memTemplParams\" colspan=\"2\">";
break;
1406 t <<
"</td></tr>" <<
endl;
1407 t <<
"<tr class=\"memitem:" << anchor;
1410 t <<
" inherit " << inheritId;
1412 t <<
"\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">";
1420 t <<
" </td><td class=\"" << className <<
"\" valign=\"bottom\">";
1428 t <<
"<table class=\"memberdecls\">" <<
endl;
1431 t <<
"<tr class=\"memdesc:" << anchor;
1434 t <<
" inherit " << inheritId;
1436 t <<
"\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">";
1442 t <<
"<br /></td></tr>" <<
endl;
1458 t <<
"</table>" <<
endl;
1472 t <<
"<table class=\"memberdecls\">" <<
endl;
1475 t <<
"<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\">";
1478 t <<
"<a name=\"" << anchor <<
"\"></a>" <<
endl;
1485 t <<
"</h2></td></tr>" <<
endl;
1491 t <<
"<tr><td class=\"ititle\" colspan=\"2\">";
1497 t <<
"</td></tr>" <<
endl;
1502 t <<
"<table>" <<
endl;
1507 t <<
"</table>" <<
endl;
1513 t <<
" <tr><td class=\"indexkey\">";
1524 t <<
"<td class=\"indexvalue\">";
1529 t <<
"</td></tr>" <<
endl;
1546 t <<
"\n<div class=\"memitem\">" <<
endl;
1547 t <<
"<div class=\"memproto\">" <<
endl;
1553 t <<
"<div class=\"memtemplate\">" <<
endl;
1559 t <<
"</div>" <<
endl;
1566 t <<
" <table class=\"memname\">" <<
endl;
1568 t <<
" <tr>" <<
endl;
1569 t <<
" <td class=\"memname\">";
1575 t <<
"</td>" <<
endl;
1582 if (openBracket)
t <<
"(";
1583 t <<
"</td>" <<
endl;
1591 t <<
" <td class=\"paramtype\">";
1596 t <<
" <tr>" <<
endl;
1597 t <<
" <td class=\"paramkey\">";
1599 t <<
"</td>" <<
endl;
1600 t <<
" <td></td>" <<
endl;
1601 t <<
" <td class=\"paramtype\">";
1608 t <<
" </td>" <<
endl;
1614 t <<
" <td class=\"paramname\">";
1624 if (closeBracket)
t <<
"</td><td>)";
1625 t <<
"</td>" <<
endl;
1630 t <<
" </td>" <<
endl;
1631 t <<
" </tr>" <<
endl;
1632 t <<
" <tr>" <<
endl;
1633 t <<
" <td></td>" <<
endl;
1635 if (closeBracket)
t <<
")";
1636 t <<
"</td>" <<
endl;
1637 t <<
" <td></td><td>";
1642 t <<
"</td>" <<
endl;
1643 t <<
" </tr>" <<
endl;
1650 t <<
"</td>" <<
endl;
1651 t <<
" </tr>" <<
endl;
1657 t <<
"</td>" <<
endl;
1658 t <<
" </tr>" <<
endl;
1659 t <<
" <tr>" <<
endl;
1660 t <<
" <td align=\"right\">";
1663 t << prefix <<
"</td><td>(</td><td colspan=\"2\">";
1664 else if (closeBracket)
1665 t <<
"</td><td>)</td><td></td><td>";
1667 t <<
"</td><td></td><td colspan=\"2\">";
1675 t <<
" </tr>" <<
endl;
1677 t <<
" </table>" <<
endl;
1696 if (generateLegend && !umlLook)
1698 t <<
"<center><span class=\"legend\">[";
1702 t <<
"]</span></center>";
1788 t <<
"<tr><td colspan=\"2\"><div class=\"groupHeader\">";
1793 t <<
"</div></td></tr>" <<
endl;
1798 t <<
"<tr><td colspan=\"2\"><div class=\"groupText\">";
1803 t <<
"</div></td></tr>" <<
endl;
1818 t <<
"<div class=\"memdoc\">\n";
1841 const char *
filename,
const char *anchor,
1889 t <<
" <div id=\"navrow1\" class=\"tabs\">\n";
1893 t <<
" <div id=\"navrow2\" class=\"tabs2\">\n";
1895 t <<
" <ul class=\"tablist\">\n";
1923 t <<
" class=\"current\"";
1926 if (l) t <<
"<a href=\"" <<
correctURL(l,relPath) <<
"\">";
1971 for (li.toFirst();(entry=li.
current());++li)
1978 for (li.toFirst();(entry=li.
current());++li)
1983 t <<
"<li><a href=\"" << relPath << url <<
"\"><span>";
1985 t <<
"</span></a>\n";
1998 bool highlightParent,
bool highlightSearch)
2011 for (li.toFirst();(entry=li.
current());++li)
2018 for (li.toFirst();(entry=li.
current());++li)
2025 (entry->children().
count()>0 ||
2026 (entry->kind()==kind && !highlightParent)
2036 static bool serverBasedSearch =
Config_getBool(
"SERVER_BASED_SEARCH");
2040 if (!serverBasedSearch)
2048 if (!highlightSearch)
2054 if (!highlightSearch)
2076 bool highlightParent=
FALSE;
2094 highlightParent =
TRUE;
break;
2096 highlightParent =
TRUE;
break;
2098 highlightParent =
TRUE;
break;
2110 highlightParent=
TRUE;
2135 t <<
"</div><!-- top -->" <<
endl;
2140 static bool generateTreeView =
Config_getBool(
"GENERATE_TREEVIEW");
2143 if (generateTreeView)
2146 "<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n" 2147 " <div id=\"nav-tree\">\n" 2148 " <div id=\"nav-tree-contents\">\n" 2149 " <div id=\"nav-sync\" class=\"sync\"></div>\n" 2152 " <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n" 2153 " class=\"ui-resizable-handle\">\n" 2156 "<script type=\"text/javascript\">\n" 2157 "$(document).ready(function(){initNavTree('") +
2162 "<div id=\"doc-content\">\n");
2179 t <<
"<div class=\"contents\">" <<
endl;
2184 t <<
"</div><!-- contents -->" <<
endl;
2195 static bool generateTreeView =
Config_getBool(
"GENERATE_TREEVIEW");
2201 QCString configFileName = htmlOutput+
"/search_config.php";
2202 QFile cf(configFileName);
2206 t <<
"<script language=\"php\">\n\n";
2207 t <<
"$config = array(\n";
2208 t <<
" 'PROJECT_NAME' => \"" <<
convertToHtml(projectName) <<
"\",\n";
2209 t <<
" 'GENERATE_TREEVIEW' => " << (generateTreeView?
"true":
"false") <<
",\n";
2210 t <<
" 'DISABLE_INDEX' => " << (disableIndex?
"true":
"false") <<
",\n";
2212 t <<
"$translator = array(\n";
2214 t <<
" 'search_results' => array(\n";
2240 t <<
"<script type=\"text/javascript\">\n";
2241 t <<
"var searchBox = new SearchBox(\"searchBox\", \"" 2250 t <<
"</div>" <<
endl;
2253 t <<
"<script language=\"php\">\n";
2254 t <<
"require_once \"search_functions.php\";\n";
2259 if (generateTreeView)
2261 t <<
"</div><!-- doc-contents -->\n";
2268 QCString scriptName = htmlOutput+
"/search/search.js";
2269 QFile sf(scriptName);
2277 err(
"Failed to open file '%s' for writing...\n",scriptName.
data());
2283 static bool generateTreeView =
Config_getBool(
"GENERATE_TREEVIEW");
2293 t <<
"<script type=\"text/javascript\">\n";
2294 t <<
"var searchBox = new SearchBox(\"searchBox\", \"" 2300 t <<
" <input type=\"text\" id=\"MSearchField\" name=\"query\" value=\"\" size=\"20\" accesskey=\"S\" onfocus=\"searchBox.OnSearchFieldFocus(true)\" onblur=\"searchBox.OnSearchFieldFocus(false)\"/>\n";
2302 t <<
" </div><div class=\"right\"></div>\n";
2311 t <<
"</div>" <<
endl;
2314 t <<
"<div class=\"header\">" <<
endl;
2315 t <<
" <div class=\"headertitle\">" <<
endl;
2317 t <<
" </div>" <<
endl;
2318 t <<
"</div>" <<
endl;
2319 t <<
"<div class=\"contents\">" <<
endl;
2321 t <<
"<div id=\"searchresults\"></div>" <<
endl;
2322 t <<
"</div>" <<
endl;
2324 if (generateTreeView)
2326 t <<
"</div><!-- doc-contents -->" <<
endl;
2332 QFile sf(scriptName);
2336 t <<
"var searchResultsText=[" 2341 t <<
"var tagMap = {" <<
endl;
2345 char *ml=extraSearchMappings.
first();
2349 int eqPos = mapLine.
find(
'=');
2356 if (!first) t <<
"," <<
endl;
2357 t <<
" \"" << tagName <<
"\": \"" << destName <<
"\"";
2361 ml=extraSearchMappings.
next();
2363 if (!first) t <<
endl;
2364 t <<
"};" << endl <<
endl;
2367 t <<
"$(document).ready(function() {" <<
endl;
2368 t <<
" var query = trim(getURLParameter('query'));" <<
endl;
2369 t <<
" if (query) {" <<
endl;
2370 t <<
" searchFor(query,0,20);" <<
endl;
2371 t <<
" } else {" <<
endl;
2372 t <<
" var results = $('#results');" <<
endl;
2379 err(
"Failed to open file '%s' for writing...\n",scriptName.
data());
2385 t <<
"<div class=\"typeconstraint\">" <<
endl;
2386 t <<
"<dl><dt><b>" << header <<
"</b></dt><dd>" <<
endl;
2387 t <<
"<table border=\"0\" cellspacing=\"2\" cellpadding=\"0\">" <<
endl;
2392 t <<
"<tr><td valign=\"top\"><em>";
2402 t <<
"<td> :</td><td valign=\"top\"><em>";
2417 t <<
"</td></tr>" <<
endl;
2422 t <<
"</table>" <<
endl;
2423 t <<
"</dd>" <<
endl;
2424 t <<
"</dl>" <<
endl;
2425 t <<
"</div>" <<
endl;
2432 t <<
"<br class=\"" << style <<
"\" />" <<
endl;
2436 t <<
"<br />" <<
endl;
2442 t <<
"<div class=\"header\">" <<
endl;
2447 t <<
" <div class=\"headertitle\">" <<
endl;
2454 t <<
" </div>" <<
endl;
2459 t <<
"</div><!--header-->" <<
endl;
2466 t <<
"<table class=\"memberdecls\">" <<
endl;
2469 t <<
"<tr><td colspan=\"2\"><h3>";
2474 t <<
"</h3></td></tr>" <<
endl;
2480 t <<
"<table class=\"fieldtable\">" <<
endl;
2487 t <<
"</table>" <<
endl;
2493 t <<
"<tr><td class=\"fieldtype\">" <<
endl;
2499 t <<
"</td>" <<
endl;
2505 t <<
"<td class=\"fieldname\">" <<
endl;
2511 t <<
"</td>" <<
endl;
2517 t <<
"<td class=\"fielddoc\">" <<
endl;
2523 t <<
"</td></tr>" <<
endl;
2529 t <<
"<span class=\"mlabels\">";
2537 t <<
"<span class=\"mlabel\">" << l <<
"</span>";
2547 const char *
id,
const char *ref,
2548 const char *
file,
const char *anchor,
2549 const char *title,
const char *
name)
2551 DBG_HTML(
t <<
"<!-- writeInheritedSectionTitle -->" <<
endl;)
2553 if (!
a.isEmpty())
a.prepend(
"#");
2565 t <<
"<tr class=\"inherit_header " <<
id <<
"\">" 2566 <<
"<td colspan=\"2\" onclick=\"javascript:toggleInherit('" <<
id <<
"')\">" 2567 <<
"<img src=\"" << relPath <<
"closed.png\" alt=\"-\"/> " 2569 <<
"</td></tr>" <<
endl;
2576 t <<
" <div class=\"summary\">\n";
2585 t << relPath <<
file;
2600 t <<
"<tr class=\"separator:" << anchor;
2603 t <<
" inherit " << inheritId;
2605 t <<
"\"><td class=\"memSeparator\" colspan=\"2\"> </td></tr>\n";
static void endSectionContent(FTextStream &t)
Traverses directory structures and contents in a platform-independent way.
void writeFooter(const char *navPath)
void codify(const char *text)
end
while True: pbar.update(maxval-len(onlies[E][S])) #print iS, "/", len(onlies[E][S]) found = False for...
static void startSectionContent(FTextStream &t, int sectionCount)
static QCString writeSplitBarAsString(const char *name, const char *relpath)
static void writeDefaultQuickLinks(FTextStream &t, bool compact, HighlightedItem hli, const char *file, const QCString &relPath)
void insertMemberAlign(bool)
void startMemberSections()
void endInlineMemberDoc()
void writeCodeLink(const char *ref, const char *file, const char *anchor, const char *name, const char *tooltip)
QCString fileToString(const char *name, bool filter, bool isSourceCode)
QCString substituteKeywords(const QCString &s, const char *title, const char *projName, const char *projNum, const char *projBrief)
QCString getAsString(const char *name) const
QCString stripWhiteSpace() const
void writeQuickLinks(bool compact, HighlightedItem hli, const char *file)
LayoutNavEntry * find(LayoutNavEntry::Kind k, const char *file=0) const
void addIndexItem(const char *, const char *)
void endParameterName(bool last, bool emptyList, bool closeBracket)
static constexpr double g
static PageSDict * exampleSDict
static void writeFooterFile(QFile &f)
void endMemberGroup(bool)
static void writeHeaderFile(QFile &f, const char *cssname)
static void writeExternalSearchPage()
virtual QCString trInheritedFrom(const char *members, const char *what)=0
int documentedFileMembers[FMHL_Total]
void writeDoc(DocNode *, Definition *, MemberDef *)
void endCallGraph(const DotCallGraph &g)
void lineBreak(const char *style)
void startGroupHeader(int)
static void writeStyleSheetFile(QFile &f)
static QCString htmlFileExtension
static void writeTabData()
Additional initialization after indices have been created.
void startInlineMemberName()
int documentedClassMembers[CMHL_Total]
Concrete visitor implementation for HTML output.
static void startSectionHeader(FTextStream &t, const QCString &relPath, int sectionCount)
void endDoxyAnchor(const char *fName, const char *anchor)
void setDevice(QIODevice *)
void endMemberGroupDocs()
virtual QCString trSearchMatches()=0
virtual QCString trSearchResultsTitle()=0
void endMemberTemplateParams(const char *anchor, const char *inheritId)
void endMemberDocPrefixItem()
static void endSectionHeader(FTextStream &t)
void writeNavigationPath(const char *s)
static LayoutDocManager & instance()
bool copyResource(const char *name, const char *targetDir) 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
static ResourceMgr & instance()
void startConstraintParam()
void startHtmlLink(const char *url)
void endDirDepGraph(const DotDirDeps &g)
void startMemberDescription(const char *anchor, const char *inheritId)
static QCString stripPath(const QCString &s)
void endGroupCollaboration(const DotGroupCollaboration &g)
static bool quickLinkVisible(LayoutNavEntry::Kind kind)
static QCString className
#define Config_getList(val)
QCString left(uint len) const
void startConstraintList(const char *)
void endInlineMemberType()
QCString relativePathToRoot(const char *name)
Simplified and optimized version of QTextStream.
static void renderQuickLinksAsTree(FTextStream &t, const QCString &relPath, LayoutNavEntry *root)
int find(char c, int index=0, bool cs=TRUE) const
void endMemberDocSimple()
void endSection(const char *, SectionInfo::SectionType)
void writeInheritedSectionTitle(const char *id, const char *ref, const char *file, const char *anchor, const char *title, const char *name)
void setTextStream(FTextStream &t)
const QList< LayoutNavEntry > & children() const
QCString correctURL(const QCString &url, const QCString &relPath)
void startMemberGroupHeader(bool)
void startParameterName(bool)
Base class for the layout of a navigation item at the top of the HTML pages.
void endTitleHead(const char *, const char *)
#define Config_getEnum(val)
QCString convertToId(const char *s)
void startProjectNumber()
#define Config_getInt(val)
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
void endDotGraph(const DotClassGraph &g)
virtual QCString trSearchResults(int numDocuments)=0
void startMemberSubtitle()
void docify(const char *str)
virtual bool mkdir(const QString &dirName, bool acceptAbsPath=TRUE) const
void startIndexItem(const char *ref, const char *file)
static SearchIndexIntf * searchIndex
Q_EXPORT uint qstrlen(const char *str)
void writeCodeAnchor(const char *anchor)
static QCString removeEmptyLines(const QCString &s)
void startPlainFile(const char *name)
void writeLabel(const char *l, bool isLast)
virtual QCString trGeneratedBy()=0
static void writeSearchData(const char *dir)
void writeImage(FTextStream &t, const char *path, const char *relPath, const char *file, bool generateMap=TRUE) const
void writeLineNumber(const char *, const char *, const char *, int)
void startInlineMemberType()
void startHeaderSection()
Singleton for managing resources compiled into an executable.
void startMemberDocName(bool)
QCString convertToHtml(const char *s, bool keepEntities)
QCString right(uint len) const
const char * writeUtf8Char(FTextStream &t, const char *s)
void endConstraintParam()
static void startQuickIndexList(FTextStream &t, bool compact, bool topLevel=TRUE)
virtual void addWord(const char *word, bool hiPriority)=0
void startMemberGroupDocs()
void addStyleSheetFile(const char *name)
void startIndexValue(bool)
void writeObjectLink(const char *ref, const char *file, const char *anchor, const char *name)
QCString & prepend(const char *s)
QCString clearBlock(const char *s, const char *begin, const char *end)
Clear a text block s from begin to end markers.
void endIndexItem(const char *ref, const char *file)
A bunch of utility functions.
void writeGraphicalHierarchy(const DotGfxHierarchyTable &g)
const char * data() const
void startMemberDocList()
void addImageFile(const char *name)
QCString dateToString(bool includeTime)
#define Config_getString(val)
void _writeCodeLink(const char *className, const char *ref, const char *file, const char *anchor, const char *name, const char *tooltip)
void startFontClass(const char *s)
#define Config_getBool(val)
static void writeSearchPage()
QIODevice * device() const
void endIndexValue(const char *, bool)
QCString selectBlock(const QCString &s, const QCString &name, bool enable)
void startMemberDoc(const char *, const char *, const char *, const char *, bool)
void startFile(const char *name, const char *manName, const char *title)
void startMemberTemplateParams()
void err(const char *fmt,...)
void startParamList(ParamListTypes, const char *)
Buffer used to store strings.
The QFile class is an I/O device that operates on files.
void endClassDiagram(const ClassDiagram &, const char *, const char *)
LayoutNavEntry * rootNavEntry() const
static void writeServerSearchBox(FTextStream &t, const char *relPath, bool highlightSearch)
void startGroupCollaboration()
virtual QCString trGeneratedAt(const char *date, const char *projName)=0
void endMemberGroupHeader()
void writeString(const char *text)
QCString writeGraph(FTextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const char *path, const char *fileName, const char *relPath, bool writeImageMap=TRUE, int graphId=-1) const
static void renderQuickLinksAsTabs(FTextStream &t, const QCString &relPath, LayoutNavEntry *hlEntry, LayoutNavEntry::Kind kind, bool highlightParent, bool highlightSearch)
void writeNonBreakableSpace(int)
QCString fixSpaces(const QCString &s)
void writeGraph(FTextStream &t, const char *path, const char *fileName) const
int documentedNamespaceMembers[NMHL_Total]
static QCString getSearchBox(bool serverSide, QCString relPath, bool highlightSearch)
virtual QCString trSearch()=0
static void endSectionSummary(FTextStream &t)
static QCString writeLogoAsString(const char *path)
static void writePageFooter(FTextStream &t, const QCString &, const QCString &, const QCString &)
void writeStartAnnoItem(const char *type, const char *file, const char *path, const char *name)
static QCString substituteHtmlKeywords(const QCString &s, const QCString &title, const QCString &relPath, const QCString &navPath=QCString())
static void endQuickIndexItem(FTextStream &t, const char *l)
void startParameterList(bool)
void startMemberHeader(const char *)
void endMemberDescription()
static QCString g_mathjax_code
void endInclDepGraph(const DotInclDepGraph &g)
Q_EXPORT char * qstrcpy(char *dst, const char *src)
virtual void setCurrentDoc(Definition *ctx, const char *anchor, bool isSourceFile)=0
virtual void exceptionEntry(const char *, bool)
static void startQuickIndexItem(FTextStream &t, const char *l, bool hl, bool, const QCString &relPath)
void writeStyleInfo(int part)
void startConstraintDocs()
static void startSectionSummary(FTextStream &t, int sectionCount)
Translator * theTranslator
void startMemberDocPrefixItem()
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 docify(const char *text)
virtual QCString trCompoundMembers()=0
void startMemberDocSimple()
decltype(auto) constexpr begin(T &&obj)
ADL-aware version of std::begin.
void createSubDirs(QDir &d)
void addIndexFile(const char *name)
void setCurrentDoc(Definition *context, const char *anchor, bool isSourceFile)
QCString replaceColorMarkers(const char *str)
void startDoxyAnchor(const char *fName, const char *manName, const char *anchor, const char *name, const char *args)
static void endQuickIndexList(FTextStream &t, bool compact)
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 addWord(const char *word, bool hiPriority)
void setRelativePath(const QCString &path)
The QFileInfo class provides system-independent file information.
void startConstraintType()
virtual QCString trLegend()=0
LayoutNavEntry * parent() const
void endMemberDeclaration(const char *anchor, const char *inheritId)
void startParameterType(bool first, const char *key)
void endInlineMemberName()
void startMemberItem(const char *anchor, int, const char *inheritId)
void startSection(const char *, const char *, SectionInfo::SectionType)
QCString externalLinkTarget()
void startSimpleSect(SectionTypes, const char *, const char *, const char *)
static void writeClientSearchBox(FTextStream &t, const char *relPath)
void startTitleHead(const char *)
virtual void accept(DocVisitor *v)=0
void writeSummaryLink(const char *file, const char *anchor, const char *title, bool first)
virtual bool exists() const
union ptb::content::word::word word
void writeSplitBar(const char *name)
static IndexList * indexList
void writeTooltip(const char *id, const DocLinkInfo &docInfo, const char *decl, const char *desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo)
QCString substitute(const QCString &s, const QCString &src, const QCString &dst)
substitute all occurrences of src in s by dst
void startTextLink(const char *file, const char *anchor)
void startInlineMemberDoc()
QTextStream & endl(QTextStream &s)
QCString externalRef(const QCString &relPath, const QCString &ref, bool href)
HtmlCodeGenerator m_codeGen
QCString filterTitle(const QCString &title)
void startIndexListItem()