Doxygen
Loading...
Searching...
No Matches
msc.h File Reference

#include <src/msc.h>

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum class  MscOutputFormat { BITMAP , EPS , SVG }

Functions

void writeMscGraphFromFile (const DString &inFile, const DString &outDir, const DString &outFile, MscOutputFormat format, const DString &srcFile, int srcLine, bool toIndex)
DString getMscImageMapFromFile (const DString &inFile, const DString &outDir, const DString &relPath, const DString &context, const DString &srcFile, int srcLine)
void writeMscImageMapFromFile (TextStream &t, const DString &inFile, const DString &outDir, const DString &relPath, const DString &baseName, const DString &context, MscOutputFormat format, const DString &srcFile, int srcLine)

Enumeration Type Documentation

◆ MscOutputFormat

enum class MscOutputFormat
strong
Enumerator
BITMAP 
EPS 
SVG 

Definition at line 22 of file msc.h.

22{ BITMAP, EPS, SVG };

Function Documentation

◆ getMscImageMapFromFile()

DString getMscImageMapFromFile ( const DString & inFile,
const DString & outDir,
const DString & relPath,
const DString & context,
const DString & srcFile,
int srcLine )

◆ writeMscGraphFromFile()

void writeMscGraphFromFile ( const DString & inFile,
const DString & outDir,
const DString & outFile,
MscOutputFormat format,
const DString & srcFile,
int srcLine,
bool toIndex )

Definition at line 160 of file msc.cpp.

164{
165 DString absOutFile = outDir;
166 absOutFile+=Portable::pathSeparator();
167 absOutFile+=outFile;
168
169 mscgen_format_t msc_format = mscgen_format_png;
170 DString imgName = absOutFile;
171 switch (format)
172 {
174 msc_format = mscgen_format_png;
175 imgName+=".png";
176 break;
178 msc_format = mscgen_format_eps;
179 imgName+=".eps";
180 break;
182 msc_format = mscgen_format_svg;
183 imgName+=".svg";
184 break;
185 default:
186 return;
187 }
188 if (!do_mscgen_generate(inFile,imgName,msc_format,srcFile,srcLine))
189 {
190 return;
191 }
192
193 if ( (format==MscOutputFormat::EPS) && (Config_getBool(USE_PDFLATEX)) )
194 {
196 epstopdfArgs.sprintf("\"%s.eps\" --outfile=\"%s.pdf\"",
197 qPrint(absOutFile),qPrint(absOutFile));
198 if (Portable::system("epstopdf",epstopdfArgs)!=0)
199 {
200 err_full(srcFile,srcLine,"Problems running epstopdf when processing '{}.eps'. Check your TeX installation!", absOutFile);
201 }
202 else
203 {
204 Dir().remove((absOutFile + ".eps").data());
205 }
206 }
207
208 size_t i0 = imgName.rfind('/');
209 size_t i1 = imgName.rfind('\\');
210 size_t i = i0!=DString::npos && i1!=DString::npos ? std::max(i0,i1) :
211 i0!=DString::npos ? i0 : i1;
212 if (i!=DString::npos) // strip path
213 {
214 imgName=imgName.mid(i+1);
215 }
216 if (toIndex) Doxygen::indexList->addImageFile(imgName);
217
218}
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:84
size_t rfind(char c, size_t pos=npos) const
Definition dstring.h:244
DString mid(size_t index, size_t len=npos) const
Definition dstring.h:318
static constexpr size_t npos
value used to indicate 'not found' or 'to the end of the string', matching std::string::npos
Definition dstring.h:178
@ ExplicitSize
Definition dstring.h:131
Class representing a directory in the file system.
Definition dir.h:73
bool remove(const std::string &path, bool acceptsAbsPath=true) const
Definition dir.cpp:320
static IndexList * indexList
Definition doxygen.h:125
void addImageFile(const DString &name)
Definition indexlist.h:124
#define Config_getBool(name)
Definition config.h:33
const char * qPrint(const char *s)
Definition dstring.h:783
#define err_full(file, line, fmt,...)
Definition message.h:132
static bool do_mscgen_generate(const DString &inFile, const DString &outFile, mscgen_format_t msc_format, const DString &srcFile, int srcLine)
Definition msc.cpp:115
static const int maxCmdLine
Definition msc.cpp:33
int system(const DString &command, const DString &args, bool commandHasConsole=true)
Definition portable.cpp:121
DString pathSeparator()
Definition portable.cpp:390

References IndexList::addImageFile(), BITMAP, Config_getBool, do_mscgen_generate(), EPS, err_full, DString::ExplicitSize, Doxygen::indexList, maxCmdLine, DString::mid(), DString::npos, Portable::pathSeparator(), qPrint(), Dir::remove(), DString::rfind(), DString::sprintf(), SVG, and Portable::system().

Referenced by DocbookDocVisitor::startMscFile(), LatexDocVisitor::startMscFile(), DocbookDocVisitor::writeMscFile(), HtmlDocVisitor::writeMscFile(), LatexDocVisitor::writeMscFile(), and RTFDocVisitor::writeMscFile().

◆ writeMscImageMapFromFile()

void writeMscImageMapFromFile ( TextStream & t,
const DString & inFile,
const DString & outDir,
const DString & relPath,
const DString & baseName,
const DString & context,
MscOutputFormat format,
const DString & srcFile,
int srcLine )

Definition at line 239 of file msc.cpp.

248{
249 DString mapName = baseName+".map";
250 t << "<img src=\"" << relPath << baseName << ".";
251 switch (format)
252 {
254 t << "png";
255 break;
257 t << "eps";
258 break;
260 t << "svg";
261 break;
262 default:
263 t << "unknown";
264 }
265 DString imap = getMscImageMapFromFile(inFile,outDir,relPath,context,format==MscOutputFormat::SVG,srcFile,srcLine);
266 if (!imap.empty())
267 {
268 t << "\" alt=\""
269 << baseName << "\" border=\"0\" usemap=\"#" << mapName << "\"/>\n";
270 t << "<map name=\"" << mapName << "\" id=\"" << mapName << "\">" << imap << "</map>\n";
271 }
272 else
273 {
274 t << "\" alt=\"" << baseName << "\" border=\"0\"/>\n";
275 }
276}
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
Definition dstring.h:148
static DString getMscImageMapFromFile(const DString &inFile, const DString &, const DString &relPath, const DString &context, bool writeSVGMap, const DString &srcFile, int srcLine)
Definition msc.cpp:220

References BITMAP, DString::empty(), EPS, getMscImageMapFromFile(), and SVG.

Referenced by HtmlDocVisitor::writeMscFile().