23#include <graphviz/graph.h>
31Agraph_t *
GVUtils::_agopen(
const QString &name, Agdesc_t kind, Agdisc_t *disc)
37 return agopen(name.toLocal8Bit().data(), kind, disc);
39 return agopen(name.toLocal8Bit().data(), kind);
45 QString str = QString::fromUtf8(agget(
object, attr.toUtf8().data()));
55 return agattr(
object, AGNODE,
57 return agnodeattr(
object,
59 attr.toLocal8Bit().data(),
60 alt.toLocal8Bit().data());
66 return agattr(
object, AGEDGE,
68 return agedgeattr(
object,
70 attr.toLocal8Bit().data(),
71 alt.toLocal8Bit().data());
75void *GVUtils::_agbindrec(
void *obj,
const char *name,
unsigned int size,
int move_to_front)
77 return agbindrec(obj,
const_cast<char *
>(name), size, move_to_front);
84 Agnode_t *n = agnode(graph, attr.toLocal8Bit().data(), create);
85 _agbindrec(n,
"Agnodeinfo_t",
sizeof(Agnodeinfo_t),
MOVE_TO_FRONT);
89 return agnode(graph, attr)));
94 const QString &name,
bool create)
97 Agedge_t *e = agedge(graph, tail, head, name.toLocal8Bit().data(), create);
98 _agbindrec(e,
"Agedgeinfo_t",
sizeof(Agedgeinfo_t),
MOVE_TO_FRONT);
103 return agedge(graph, tail, head);
110 Agraph_t *g = agsubg(graph, attr.toLocal8Bit().data(), create);
111 _agbindrec(g,
"Agraphinfo_t",
sizeof(Agraphinfo_t),
MOVE_TO_FRONT);
115 return agsubg(graph, attr.toLocal8Bit().data());
121 return agsafeset(
object, attr.toLocal8Bit().data(),
122 value.toLocal8Bit().data(),
const_cast<char *
>(
""));
127 return gvLayout(gvc, g, engine);
constexpr int MOVE_TO_FRONT
Agsym_t * _agedgeattr(Agraph_t *object, const QString &attr, const QString &alt=QString())
int _agset(void *object, const QString &attr, const QString &value)
Directly use agsafeset which always works, contrarily to agset.
int _gvLayout(GVC_t *gvc, graph_t *g, const char *engine)
Agraph_t * _agopen(const QString &name, int kind)
The agopen method for opening a graph.
QString _agget(void *object, const QString &attr, const QString &alt=QString())
Add an alternative value parameter to the method for getting an object's attribute.
Agnode_t * _agnode(Agraph_t *graph, const QString &attr, bool create=true)
Agsym_t * _agnodeattr(Agraph_t *object, const QString &attr, const QString &alt=QString())
Agraph_t * _agsubg(Agraph_t *graph, const QString &attr, bool create=true)
Agedge_t * _agedge(Agraph_t *graph, Agnode_t *tail, Agnode_t *head, const QString &name=QString(), bool create=true)