浏览该文件的文档.
32 #define MAP_CMD "cmapx"
47 std::ifstream f(baseName.
str()+
".md5",std::ifstream::in | std::ifstream::binary);
54 if (!f.fail() && md5==md5stored)
81 return file1Ok && file2Ok;
94 out <<
"<map name=\"" << mapLabel <<
"\" id=\"" << mapLabel <<
"\">\n";
118 bool generateImageMap,
147 term(
"Output dir %s does not exist!\n",
m_dir.
path().c_str());
155 MD5SigToString(md5_sig, sigStr);
172 std::ofstream f(
absDotName().str(),std::ofstream::out | std::ofstream::binary);
210 t <<
" <informalfigure>\n";
211 t <<
" <mediaobject>\n";
212 t <<
" <imageobject>\n";
214 t <<
" width=\"50%\" align=\"center\" valign=\"middle\" scalefit=\"0\" fileref=\"" <<
m_relPath <<
m_baseName <<
"." << imgExt <<
"\">";
215 t <<
"</imagedata>\n";
216 t <<
" </imageobject>\n";
217 t <<
" </mediaobject>\n";
218 t <<
" </informalfigure>\n";
225 if (!
m_noDivTag) t <<
"<div class=\"center\">";
237 t <<
"<!-- SVG " << mapId <<
" -->\n";
243 if (!
m_noDivTag) t <<
"<div class=\"center\">";
252 t <<
"<!-- MAP " << mapId <<
" -->\n";
263 t <<
"\n% FIG " << figId <<
"\n";
275 t <<
"\"Dot Graph\"";
285 t <<
" // INTERACTIVE_SVG=YES\n";
287 t <<
" // LATEX_PDF_SIZE\n";
290 t <<
" bgcolor=\"transparent\";\n";
292 t <<
" edge [fontname=\"" << fontName <<
"\","
293 "fontsize=\"" << fontSize <<
"\","
294 "labelfontname=\"" << fontName <<
"\","
295 "labelfontsize=\"" << fontSize <<
"\"];\n";
296 t <<
" node [fontname=\"" << fontName <<
"\","
297 "fontsize=\"" << fontSize <<
"\",shape=record];\n";
319 md5stream <<
" rankdir=\"" << rank <<
"\";\n";
325 for (
const auto &pn : root->
parents())
329 const auto &children = pn->children();
330 auto child_it = std::find(children.begin(),children.end(),root);
331 size_t index = child_it - children.begin();
336 &pn->edgeInfo()[index],
352 graphStr=md5stream.
str();
QCString getDotImageExtension()
static DotManager * instance()
static void computeGraph(DotNode *root, GraphType gt, GraphOutputFormat format, const QCString &rank, bool renderParents, bool backArrows, const QCString &title, QCString &graphStr)
const DotNodeRefVector & parents() const
bool m_doNotAddImageToIndex
Class representing a directory in the file system
Helper class to run dot from doxygen from multiple threads.
uint length() const
Returns the length of the string, not counting the 0-terminator.
virtual QCString getImgAltText() const
void write(TextStream &t, GraphType gt, GraphOutputFormat f, bool topDown, bool toChildren, bool backArrows) const
bool isEmpty() const
Returns TRUE iff the string is empty
QCString relImgName() const
static IndexList * indexList
DotRunner * createRunner(const QCString &absDotName, const QCString &md5Hash)
static bool writeVecGfxFigure(TextStream &out, const QCString &baseName, const QCString &figureName)
virtual QCString getMapLabel() const =0
QCString absBaseName() const
void generateCode(TextStream &t)
static void writeGraphFooter(TextStream &t)
QCString absDotName() const
void err(const char *fmt,...)
Text streaming class that buffers data.
static void writeGraphHeader(TextStream &t, const QCString &title=QCString())
bool empty() const
Returns true iff the buffer is empty
void addJob(const QCString &format, const QCString &output, const QCString &srcFile, int srcLine)
Adds an additional job to the run.
virtual QCString absMapName() const
#define Config_getInt(name)
EmbeddedOutputFormat m_textFormat
void addImageFile(const QCString &name)
static bool deliverablesPresent(const QCString &file1, const QCString &file2)
std::string absPath() const
#define Config_getEnumAsString(name)
static bool writeSVGFigureLink(TextStream &out, const QCString &relPath, const QCString &baseName, const QCString &absImgName)
Check if a reference to a SVG figure can be written and do so if possible.
GraphOutputFormat m_graphFormat
std::string str() const
Return the contents of the buffer as a std::string object
QCString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const QCString &path, const QCString &fileName, const QCString &relPath, bool writeImageMap=TRUE, int graphId=-1)
void writeArrow(TextStream &t, GraphType gt, GraphOutputFormat f, const DotNode *cn, const EdgeInfo *ei, bool topDown, bool pointBack=TRUE) const
static bool insertMapFile(TextStream &out, const QCString &mapFile, const QCString &relPath, const QCString &mapLabel)
QCString absImgName() const
#define Config_getBool(name)
virtual void computeTheGraph()=0
void term(const char *fmt,...)
Minimal replacement for QFileInfo.
const char * qPrint(const char *s)
virtual QCString getBaseName() const =0
#define Config_getString(name)
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string
QCString convertToXML(const QCString &s, bool keepEntities)
static bool convertMapFile(TextStream &t, const QCString &mapName, const QCString &relPath, bool urlOnly=FALSE, const QCString &context=QCString())
A bunch of utility functions.
static bool sameMd5Signature(const QCString &baseName, const QCString &md5)
QCString correctId(const QCString &s)
This is an alternative implementation of QCString.