Skip to main content

The Private Struct Reference

Declaration

struct FTVHelp::Private { ... }

Public Constructors Index

Private (bool TLI)

Public Member Functions Index

voidgenerateTree (TextStream &t, const FTVNodes &nl, int level, int maxLevel, int &index)
voidgenerateLink (TextStream &t, const FTVNodePtr &n)

Public Member Attributes Index

std::vector< FTVNodes >indentNodes
intindent = 0
booltopLevelIndex

Definition at line 105 of file ftvhelp.cpp.

Public Constructors

Private()

FTVHelp::Private::Private (bool TLI)
inline

Definition at line 107 of file ftvhelp.cpp.

107 Private(bool TLI) : topLevelIndex(TLI) { indentNodes.resize(1); }

References indentNodes and topLevelIndex.

Public Member Functions

generateLink()

void FTVHelp::Private::generateLink (TextStream & t, const FTVNodePtr & n)

Definition at line 113 of file ftvhelp.cpp.

283{
284 //printf("FTVHelp::generateLink(ref=%s,file=%s,anchor=%s\n",
285 // qPrint(n->ref),qPrint(n->file),qPrint(n->anchor));
286 bool setTarget = FALSE;
287 bool nameAsHtml = !n->nameAsHtml.isEmpty();
288 QCString text = nameAsHtml ? n->nameAsHtml : convertToHtml(n->name);
289 if (n->file.isEmpty()) // no link
290 {
291 t << "<b>" << text << "</b>";
292 }
293 else // link into other frame
294 {
295 if (!n->ref.isEmpty()) // link to entity imported via tag file
296 {
297 t << "<a class=\"elRef\" ";
299 if (result != "") setTarget = TRUE;
300 t << result;
301 }
302 else // local link
303 {
304 t << "<a class=\"el\" ";
305 }
306 t << "href=\"";
307 t << externalRef("",n->ref,TRUE);
308 t << node2URL(n);
309 if (!setTarget)
310 {
311 if (topLevelIndex)
312 t << "\" target=\"basefrm\">";
313 else
314 t << "\" target=\"_self\">";
315 }
316 else
317 {
318 t << "\">";
319 }
320 t << text;
321 t << "</a>";
322 if (!n->ref.isEmpty())
323 {
324 t << "&#160;[external]";
325 }
326 }
327}

References convertToHtml, externalLinkTarget, externalRef, FALSE, node2URL, topLevelIndex and TRUE.

generateTree()

void FTVHelp::Private::generateTree (TextStream & t, const FTVNodes & nl, int level, int maxLevel, int & index)

Definition at line 112 of file ftvhelp.cpp.

373void FTVHelp::Private::generateTree(TextStream &t, const FTVNodes &nl,int level,int maxLevel,int &index)
374{
375 for (const auto &n : nl)
376 {
377 t << "<tr id=\"row_" << generateIndentLabel(n,0) << "\"";
378 if ((index&1)==0) // even row
379 t << " class=\"even\"";
380 else
381 t << " class=\"odd\"";
382 if (level>=maxLevel) // item invisible by default
383 t << " style=\"display:none;\"";
384 else // item visible by default
385 index++;
386 t << "><td class=\"entry\">";
387 bool nodeOpened = level+1<maxLevel;
388 generateIndent(t,n,nodeOpened);
389 if (n->isDir)
390 {
391 if (n->def && n->def->definitionType()==Definition::TypeGroup)
392 {
393 // no icon
394 }
395 else if (n->def && n->def->definitionType()==Definition::TypePage)
396 {
397 // no icon
398 }
399 else if (n->def && n->def->definitionType()==Definition::TypeNamespace)
400 {
401 if ((n->def->getLanguage() == SrcLangExt::Slice) || (n->def->getLanguage() == SrcLangExt::Fortran))
402 {
403 t << "<span class=\"icona\"><span class=\"icon\">M</span></span>";
404 }
405 else if ((n->def->getLanguage() == SrcLangExt::Java) || (n->def->getLanguage() == SrcLangExt::VHDL))
406 {
407 t << "<span class=\"icona\"><span class=\"icon\">P</span></span>";
408 }
409 else
410 {
411 t << "<span class=\"icona\"><span class=\"icon\">N</span></span>";
412 }
413 }
414 else if (n->def && n->def->definitionType()==Definition::TypeModule)
415 {
416 t << "<span class=\"icona\"><span class=\"icon\">M</span></span>";
417 }
418 else if (n->def && n->def->definitionType()==Definition::TypeClass)
419 {
420 char icon=compoundIcon(toClassDef(n->def));
421 t << "<span class=\"icona\"><span class=\"icon\">" << icon << "</span></span>";
422 }
423 else
424 {
425 t << "<span id=\"img_" << generateIndentLabel(n,0) << "\" class=\"iconfolder"
426 << "\" onclick=\"dynsection.toggleFolder('" << generateIndentLabel(n,0)
427 << "')\"><div class=\"folder-icon"
428 << (nodeOpened ? " open" : "")
429 << "\"></div></span>";
430 }
431 generateLink(t,n);
432 t << "</td><td class=\"desc\">";
433 if (n->def)
434 {
435 generateBriefDoc(t,n->def);
436 }
437 t << "</td></tr>\n";
438 folderId++;
439 generateTree(t,n->children,level+1,maxLevel,index);
440 }
441 else // leaf node
442 {
443 const FileDef *srcRef=nullptr;
444 if (n->def && n->def->definitionType()==Definition::TypeFile &&
445 (toFileDef(n->def))->generateSourceFile())
446 {
447 srcRef = toFileDef(n->def);
448 }
449 if (srcRef)
450 {
451 QCString fn=srcRef->getSourceFileBase();
453 t << "<a href=\"" << fn << "\">";
454 }
455 if (n->def && n->def->definitionType()==Definition::TypeGroup)
456 {
457 // no icon
458 }
459 else if (n->def && n->def->definitionType()==Definition::TypePage)
460 {
461 // no icon
462 }
463 else if (n->def && n->def->definitionType()==Definition::TypeNamespace)
464 {
465 if ((n->def->getLanguage() == SrcLangExt::Slice) || (n->def->getLanguage() == SrcLangExt::Fortran))
466 {
467 t << "<span class=\"icona\"><span class=\"icon\">M</span></span>";
468 }
469 else if ((n->def->getLanguage() == SrcLangExt::Java) || (n->def->getLanguage() == SrcLangExt::VHDL))
470 {
471 t << "<span class=\"icona\"><span class=\"icon\">P</span></span>";
472 }
473 else
474 {
475 t << "<span class=\"icona\"><span class=\"icon\">N</span></span>";
476 }
477 }
478 else if (n->def && n->def->definitionType()==Definition::TypeModule)
479 {
480 t << "<span class=\"icona\"><span class=\"icon\">M</span></span>";
481 }
482 else if (n->def && n->def->definitionType()==Definition::TypeClass)
483 {
484 char icon=compoundIcon(toClassDef(n->def));
485 t << "<span class=\"icona\"><span class=\"icon\">" << icon << "</span></span>";
486 }
487 else if (n->def && n->def->definitionType()==Definition::TypeConcept)
488 {
489 t << "<span class=\"icona\"><span class=\"icon\">R</span></span>";
490 }
491 else if (n->def && n->def->definitionType()==Definition::TypeDir)
492 {
493 t << "<span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>";
494 }
495 else
496 {
497 t << "<span class=\"icondoc\"><div class=\"doc-icon\"></div></span>";
498 }
499 if (srcRef)
500 {
501 t << "</a>";
502 }
503 generateLink(t,n);
504 t << "</td><td class=\"desc\">";
505 if (n->def)
506 {
507 generateBriefDoc(t,n->def);
508 }
509 t << "</td></tr>\n";
510 }
511 }
512}

References addHtmlExtensionIfMissing, compoundIcon, folderId, generateBriefDoc, generateIndent, generateIndentLabel, generateLink, generateTree, Definition::getSourceFileBase, toClassDef, toFileDef, Definition::TypeClass, Definition::TypeConcept, Definition::TypeDir, Definition::TypeFile, Definition::TypeGroup, Definition::TypeModule, Definition::TypeNamespace and Definition::TypePage.

Referenced by generateTree.

Public Member Attributes

indent

int FTVHelp::Private::indent = 0

Definition at line 109 of file ftvhelp.cpp.

109 int indent = 0;

indentNodes

std::vector<FTVNodes> FTVHelp::Private::indentNodes

Definition at line 108 of file ftvhelp.cpp.

108 std::vector<FTVNodes> indentNodes;

Referenced by Private.

topLevelIndex

bool FTVHelp::Private::topLevelIndex

Definition at line 110 of file ftvhelp.cpp.

Referenced by generateLink and Private.


The documentation for this struct was generated from the following file:


Generated via doxygen2docusaurus by Doxygen 1.14.0.