21 #ifndef TULIPMETATYPES_H
22 #define TULIPMETATYPES_H
24 #include <QtCore/QFileInfo>
25 #include <QtCore/QVariant>
26 #include <QtCore/QStringList>
28 #include <tulip/DataSet.h>
29 #include <tulip/Graph.h>
30 #include <tulip/DataSet.h>
31 #include <tulip/Color.h>
32 #include <tulip/Coord.h>
33 #include <tulip/Size.h>
34 #include <tulip/BooleanProperty.h>
35 #include <tulip/DoubleProperty.h>
36 #include <tulip/ColorProperty.h>
37 #include <tulip/SizeProperty.h>
38 #include <tulip/StringProperty.h>
39 #include <tulip/LayoutProperty.h>
40 #include <tulip/GraphProperty.h>
41 #include <tulip/IntegerProperty.h>
42 #include <tulip/ColorScale.h>
43 #include <tulip/GlGraphStaticData.h>
44 #include <tulip/GlLabel.h>
45 #include <tulip/TulipFont.h>
46 #include <tulip/PropertyTypes.h>
51 struct TulipFileDescriptor {
52 enum FileType {File,Directory};
54 TulipFileDescriptor() {}
55 TulipFileDescriptor(
const QString& absolutePath,FileType fileType):absolutePath(absolutePath),type(fileType) {}
56 TulipFileDescriptor(
const TulipFileDescriptor& d) {
57 absolutePath = d.absolutePath;
62 QString fileFilterPattern;
67 unsigned int nodeShapeId;
68 NodeShape(
unsigned int nodeShapeId=0):nodeShapeId(nodeShapeId) {}
69 operator unsigned int()
const {
74 struct EdgeExtremityShape {
75 unsigned int edgeExtremityShapeId;
76 EdgeExtremityShape(
unsigned int edgeExtremityShapeId=0):edgeExtremityShapeId(edgeExtremityShapeId) {}
77 operator unsigned int()
const {
78 return edgeExtremityShapeId;
85 Q_DECLARE_METATYPE(tlp::DoubleProperty*)
86 Q_DECLARE_METATYPE(tlp::DoubleVectorProperty*)
87 Q_DECLARE_METATYPE(std::vector<
double>)
89 Q_DECLARE_METATYPE(tlp::Color)
90 Q_DECLARE_METATYPE(tlp::ColorProperty*)
91 Q_DECLARE_METATYPE(tlp::ColorVectorProperty*)
92 Q_DECLARE_METATYPE(std::vector<tlp::Color>)
94 Q_DECLARE_METATYPE(tlp::Size)
95 Q_DECLARE_METATYPE(tlp::SizeProperty*)
96 Q_DECLARE_METATYPE(tlp::SizeVectorProperty*)
97 Q_DECLARE_METATYPE(std::vector<tlp::Size>)
99 Q_DECLARE_METATYPE(std::
string)
100 Q_DECLARE_METATYPE(tlp::StringProperty*)
101 Q_DECLARE_METATYPE(tlp::StringVectorProperty*)
102 Q_DECLARE_METATYPE(std::vector<std::
string>)
105 Q_DECLARE_METATYPE(tlp::LayoutProperty*)
106 Q_DECLARE_METATYPE(tlp::CoordVectorProperty*)
109 Q_DECLARE_METATYPE(tlp::Graph*)
110 Q_DECLARE_METATYPE(tlp::GraphProperty*)
112 Q_DECLARE_METATYPE(tlp::IntegerProperty*)
113 Q_DECLARE_METATYPE(tlp::IntegerVectorProperty*)
114 Q_DECLARE_METATYPE(std::vector<
int>)
116 Q_DECLARE_METATYPE(tlp::BooleanProperty*)
117 Q_DECLARE_METATYPE(tlp::BooleanVectorProperty*)
118 Q_DECLARE_METATYPE(std::vector<
bool>)
120 Q_DECLARE_METATYPE(std::set<tlp::edge>)
122 Q_DECLARE_METATYPE(tlp::PropertyInterface*)
124 Q_DECLARE_METATYPE(tlp::ColorScale)
126 Q_DECLARE_METATYPE(tlp::StringCollection)
128 Q_DECLARE_METATYPE(TulipFileDescriptor)
130 Q_DECLARE_METATYPE(NodeShape)
131 Q_DECLARE_METATYPE(tlp::EdgeShape)
132 Q_DECLARE_METATYPE(EdgeExtremityShape)
134 Q_DECLARE_METATYPE(tlp::LabelPosition)
135 Q_DECLARE_METATYPE(tlp::TulipFont)
137 Q_DECLARE_METATYPE(QStringList)
140 class TLP_QT_SCOPE TulipMetaTypes {
148 result = *((T*)dm->
value);
150 return QVariant::fromValue<T>(result);
155 static QVariant dataTypeToQvariant(
tlp::DataType *,
const std::string& paramName);
158 class TLP_QT_SCOPE QStringListType:
public TypeInterface<QStringList> {
160 static void write(std::ostream&,
const RealType&);
161 static bool read(std::istream&, RealType&);
162 FORWARD_STRING_METHODS(QStringListType)
165 class TLP_QT_SCOPE QStringType:
public TypeInterface<QString> {
167 static void write(std::ostream&,
const RealType&);
168 static bool read(std::istream&, RealType&);
169 static std::string toString(
const RealType &);
170 static bool fromString(RealType &,
const std::string &);
173 extern void initQTypeSerializers();
177 #endif // TULIPMETATYPES_H