75 DString tooltip = d->briefDescriptionAsTooltip();
76 nnode =
new DotNode(
this, d->groupTitle(), tooltip, url );
96 DString tooltip = def->briefDescriptionAsTooltip();
97 nnode =
new DotNode(
this, def->groupTitle(), tooltip, url );
130 for (
const auto &def : gd->
getFiles())
137 for (
const auto &def : gd->
getPages())
146 for(
const auto &def : gd->
getDirs())
157 if ( ml==
nullptr || ml->
empty() )
return;
158 for (
const auto &def : *ml)
171 [&_pNStart,&_pNEnd,&_eType](
const auto &edge)
172 { return edge->pNStart==_pNStart && edge->pNEnd==_pNEnd && edge->eType==_eType; });
176 m_edges.emplace_back(std::make_unique<Edge>(_pNStart,_pNEnd,_eType));
182 (*it)->links.emplace_back(_label,_url);
200 if ( nnode==
nullptr )
202 tmp_str = d->getReference()+
"$"+d->getOutputFileBase();
203 DString tooltip = d->briefDescriptionAsTooltip();
204 nnode =
new DotNode(
this, d->groupTitle(), tooltip, tmp_str );
227 node->clearWriteFlag();
237 for (
const auto &edge :
m_edges)
239 edge->write( md5stream );
255 bool generateImageMap,
int graphId)
259 return DotGraph::writeGraph(t, graphFormat, textFormat, path, fileName, relPath, generateImageMap, graphId);
264 const char* linkTypeColor[] = {
273 DString arrowStyle =
"dir=\"none\", style=\"dashed\"";
278 t <<
" [shape=plaintext";
298 const int maxLabels = 10;
299 for (
const auto &link :
links)
301 if (first) first=
false;
else t <<
"\\n";
305 if (count==maxLabels) t <<
"\\n...";
312 arrowStyle =
"dir=\"back\", style=\"solid\"";
315 t <<
", color=\"" << linkTypeColor[
static_cast<int>(
eType)] <<
"\"";
318 t <<
", " << arrowStyle;
340 t <<
" rankdir=LR;\n";
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
const std::string & str() const
The common base class of all entity definitions found in the sources.
virtual const DString & name() const =0
virtual DString briefDescriptionAsTooltip() const =0
virtual DString qualifiedName() const =0
virtual DString anchor() const =0
virtual DString getReference() const =0
virtual const GroupList & partOfGroups() const =0
virtual DString getOutputFileBase() const =0
static void writeGraphFooter(TextStream &t)
GraphOutputFormat m_graphFormat
bool m_doNotAddImageToIndex
DString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const DString &path, const DString &fileName, const DString &relPath, bool writeImageMap=true, int graphId=-1)
static void writeGraphHeader(TextStream &t, const DString &title=DString())
std::vector< std::unique_ptr< Edge > > m_edges
DotGroupCollaboration(const GroupDef *gd)
DString getMapLabel() const override
void addMemberList(class MemberList *ml)
void computeTheGraph() override
DString getBaseName() const override
void writeGraphHeader(TextStream &t, const DString &title) const
void addCollaborationMember(const Definition *def, DString &url, EdgeType eType)
DString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const DString &path, const DString &fileName, const DString &relPath, bool writeImageMap=true, int graphId=-1)
~DotGroupCollaboration() override
void buildGraph(const GroupDef *gd)
Edge * addEdge(DotNode *_pNStart, DotNode *_pNEnd, EdgeType _eType, const DString &_label, const DString &_url)
static DString convertLabel(const DString &, LabelStyle=LabelStyle::Plain)
void markAsVisible(bool b=true)
DotNode(DotGraph *graph, const DString &lab, const DString &tip, const DString &url, bool rootNode=false, const ClassDef *cd=nullptr)
A model of a group of symbols.
virtual DString groupTitle() const =0
virtual const DirList & getDirs() const =0
virtual const GroupList & getSubGroups() const =0
virtual const FileList & getFiles() const =0
virtual const PageLinkedRefMap & getPages() const =0
virtual const NamespaceLinkedRefMap & getNamespaces() const =0
virtual const ClassLinkedRefMap & getClasses() const =0
virtual MemberList * getMemberList(MemberListType lt) const =0
A list of MemberDef objects as shown in documentation sections.
bool empty() const noexcept
Text streaming class that buffers data.
std::string str() const
Return the contents of the buffer as a std::string object.
#define Config_getInt(name)
static void makeURL(const Definition *def, DString &url)
void write(TextStream &t) const
std::vector< Link > links
void addHtmlExtensionIfMissing(DString &fName)
DString escapeCharsInString(const DString &name, bool allowDots, bool allowUnderscore)
A bunch of utility functions.