24 #include <qwaitcondition.h> 42 enum GraphOutputFormat { GOF_BITMAP, GOF_EPS };
43 enum EmbeddedOutputFormat { EOF_Html, EOF_LaTeX, EOF_Rtf, EOF_DocBook };
48 enum Colors { Blue=0, Green=1, Red=2, Purple=3, Grey=4, Orange=5, Orange2=6 };
49 enum Styles { Solid=0, Dashed=1 };
50 EdgeInfo() : m_color(0), m_style(0), m_labColor(0) {}
63 enum GraphType { Dependency, Inheritance, Collaboration, Hierarchy, CallGraph };
64 enum TruncState { Unknown, Truncated, Untruncated };
65 DotNode(
int n,
const char *lab,
const char *tip,
const char *url,
69 int edgeColor=EdgeInfo::Purple,
70 int edgeStyle=EdgeInfo::Solid,
71 const char *edgeLab=0,
72 const char *edgeURL=0,
80 void write(
FTextStream &t,GraphType gt,GraphOutputFormat f,
81 bool topDown,
bool toChildren,
bool backArrows);
83 void clearWriteFlag();
85 void writeDocbook(
FTextStream &t,
bool isClassGraph);
87 QCString label()
const {
return m_label; }
88 int number()
const {
return m_number; }
89 bool isVisible()
const {
return m_visible; }
90 TruncState isTruncated()
const {
return m_truncated; }
91 int distance()
const {
return m_distance; }
92 void renumberNodes(
int &number);
95 void colorConnectedNodes(
int curColor);
96 void writeBox(
FTextStream &t,GraphType gt,GraphOutputFormat f,
97 bool hasNonReachableChildren);
99 EdgeInfo *ei,
bool topDown,
bool pointBack=TRUE);
100 void setDistance(
int distance);
101 const DotNode *findDocNode()
const;
102 void markAsVisible(
bool b=TRUE) { m_visible=b; }
103 void markAsTruncated(
bool b=TRUE) { m_truncated=b ? Truncated : Untruncated; }
117 TruncState m_truncated;
126 friend class DotInheritanceGraph;
128 friend QCString computeMd5Signature(
131 bool lrRank,
bool renderParents,
154 void writeGraph(
FTextStream &t,
const char *path,
const char *fileName)
const;
155 void createGraph(
DotNode *rootNode,
FTextStream &t,
const char *path,
const char *fileName,
int id)
const;
156 const DotNodeList *subGraphs()
const {
return m_rootSubgraphs; }
163 QDict<DotNode> *m_usedNodes;
174 bool isTrivial()
const;
175 bool isTooBig()
const;
177 const char *path,
const char *fileName,
const char *relPath,
178 bool TBRank=TRUE,
bool imageMap=TRUE,
int graphId=-1)
const;
183 static void resetNumbering();
187 bool determineVisibleNodes(
DotNode *rootNode,
int maxNodes,
bool includeParents);
188 void determineTruncatedNodes(
QList<DotNode> &queue,
bool includeParents);
190 const char *usedName,
const char *templSpec,
191 bool base,
int distance);
194 QDict<DotNode> * m_usedNodes;
195 static int m_curNodeNumber;
196 DotNode::GraphType m_graphType;
209 const char *path,
const char *fileName,
const char *relPath,
210 bool writeImageMap=TRUE,
int graphId=-1)
const;
211 bool isTrivial()
const;
212 bool isTooBig()
const;
216 static void resetNumbering();
224 QDict<DotNode> *m_usedNodes;
225 static int m_curNodeNumber;
238 const char *path,
const char *fileName,
239 const char *relPath,
bool writeImageMap=TRUE,
240 int graphId=-1)
const;
242 bool isTrivial()
const;
243 bool isTooBig()
const;
246 static void resetNumbering();
250 static int m_curNodeNumber;
251 QDict<DotNode> *m_usedNodes;
263 bool isTrivial()
const;
265 GraphOutputFormat gf,
266 EmbeddedOutputFormat ef,
268 const char *fileName,
270 bool writeImageMap=TRUE,
272 bool linkRelations=TRUE)
const;
303 : pNStart(start), pNEnd(end), eType(type)
304 { links.setAutoDelete(TRUE); }
317 const char *path,
const char *fileName,
const char *relPath,
318 bool writeImageMap=TRUE,
int graphId=-1)
const;
320 bool isTrivial()
const;
321 static void resetNumbering();
331 static int m_curNodeNumber;
332 QDict<DotNode> *m_usedNodes;
345 const char *data()
const {
return m_str; }
346 bool isEmpty()
const {
return m_str==0 || m_str[0]==
'\0'; }
353 m_str=
new char[s.length()+1];
354 qstrcpy(m_str,s.data());
380 void addJob(
const char *format,
const char *output);
382 void addPostProcessing(
const char *cmd,
const char *args);
384 void preventCleanUp() { m_cleanUp = FALSE; }
388 const CleanupItem &cleanup()
const {
return m_cleanupItem; }
422 int addFigure(
const QCString &baseName,
423 const QCString &figureName,
bool heightCheck);
424 int addSVGConversion(
const QCString &relPath,
bool urlOnly,
425 const QCString &context,
bool zoomable,
int graphId);
468 const QCString &relPath,
bool urlOnly,
471 const QCString &figureName,
bool heightCheck);
473 bool urlOnly,
const QCString &context,
bool zoomable,
int graphId);
490 void generateGraphLegend(
const char *path);
492 void writeDotGraphFromFile(
const char *inFile,
const char *outDir,
493 const char *outFile,GraphOutputFormat format);
497 const QCString& context,
int graphId=-1);
499 void resetDotNodeNumbering();
Singleton that manages dot relation actions.
Definition: dot.h:462
The common base class of all entity definitions found in the sources.
Definition: definition.h:92
Helper class to run dot from doxygen.
Definition: dot.h:364
A model of a class/file/namespace member symbol.
Definition: memberdef.h:43
Minimal constant string class that is thread safe, once initialized.
Definition: dot.h:338
A node in a dot graph.
Definition: dot.h:60
Queue of dot jobs to run.
Definition: dot.h:437
A model of a file symbol.
Definition: filedef.h:64
Simplified and optimized version of QTextStream.
Definition: ftextstream.h:11
A sorted dictionary of ClassDef objects.
Definition: classlist.h:56
Definition: qwaitcondition.h:50
Represents a graphical class hierarchy.
Definition: dot.h:149
Ordered dictionary of elements of type T.
Definition: sortdict.h:73
Representation of a group collaboration graph.
Definition: dot.h:278
Helper class to insert a set of map file into an output file.
Definition: dot.h:406
A model of a directory symbol.
Definition: dirdef.h:44
Attributes of an edge of a dot graph.
Definition: dot.h:46
A list of MemberDef objects.
Definition: memberlist.h:32
Representation of an call graph.
Definition: dot.h:232
Representation of a class inheritance or dependency graph.
Definition: dot.h:169
Representation of an include dependency graph.
Definition: dot.h:203
Representation of an directory dependency graph.
Definition: dot.h:258
Worker thread to execute a dot run.
Definition: dot.h:450
This is an alternative implementation of QCString.
Definition: qcstring.h:131
A model of a group of symbols.
Definition: groupdef.h:45
A class representing of a compound symbol.
Definition: classdef.h:59
Class representing a list of DotNode objects.
Definition: dot.h:139