cctw  0.2.1
cctwdoublevector3dproperty.h
Go to the documentation of this file.
1 #ifndef CCTWDOUBLEVECTOR3DPROPERTY_H
2 #define CCTWDOUBLEVECTOR3DPROPERTY_H
3 
4 #include "qcepproperty.h"
5 #include "cctwvector3d.h"
6 
7 class CctwDoubleVector3DProperty : public QcepProperty
8 {
9  Q_OBJECT
10 public:
11  explicit CctwDoubleVector3DProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, CctwDoubleVector3D value, QString toolTip);
12  explicit CctwDoubleVector3DProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, double x, double y, double z, QString toolTip);
13 
14  CctwDoubleVector3D value() const;
16  QString toString(const CctwDoubleVector3D& mat);
17  double subValue(int axis) const;
18 
19  static void registerMetaTypes();
20  static QScriptValue toScriptValue(QScriptEngine *engine, const CctwDoubleVector3D &vec);
21  static void fromScriptValue(const QScriptValue &obj, CctwDoubleVector3D &vec);
22 
23  void linkTo(QDoubleSpinBox *xSpinBox, QDoubleSpinBox *ySpinBox, QDoubleSpinBox *zSpinBox);
24  void linkTo(int axis, QDoubleSpinBox *spinBox);
25 
26 public slots:
27  void setValue(CctwDoubleVector3D val, int index);
28  void setValue(CctwDoubleVector3D val);
29  void incValue(CctwDoubleVector3D step);
31  void resetValue();
32  void setSubValue(int axis, double value, int index);
33  void setSubValue(int axis, double value);
34 
35 signals:
36  void valueChanged(CctwDoubleVector3D val, int index);
37  void subValueChanged(int axis, double val, int index);
38 
39 private:
42 };
43 
45  Q_OBJECT
46 
47 public:
48  CctwDoubleVector3DPropertyDoubleSpinBoxHelper(QDoubleSpinBox *spinBox, CctwDoubleVector3DProperty *property, int axis);
49  void connect();
50 
51 public slots:
52  void setSubValue(int axis, double value, int index);
53  void setValue(double value);
54 
55 signals:
56  void subValueChanged(int axis, double value, int index);
57 
58 private:
59  QDoubleSpinBox *m_DoubleSpinBox;
61  int m_Axis;
62 };
63 
64 #define CCTW_DOUBLEVECTOR3D_PROPERTY(propname) \
65 public: \
66 CctwDoubleVector3D get_##propname() const \
67 { \
68  return m_##propname.value(); \
69 } \
70 \
71 void set_##propname(CctwDoubleVector3D val) \
72 { \
73  m_##propname.setValue(val); \
74 } \
75 \
76 CctwDoubleVector3D def_##propname() const \
77 { \
78  return m_##propname.defaultValue(); \
79 } \
80 \
81 void setdef_##propname(CctwDoubleVector3D val) \
82 { \
83  m_##propname.setDefaultValue(val); \
84 } \
85 \
86 void reset_##propname() \
87 { \
88  m_##propname.resetValue(); \
89 } \
90 \
91 CctwDoubleVector3DProperty *prop_##propname() { \
92  return &m_##propname; \
93 } \
94 \
95 private: \
96 CctwDoubleVector3DProperty m_##propname;
97 
98 #ifndef QT_NO_DATASTREAM
99 
100 extern QDataStream &operator<<(QDataStream &stream, const CctwDoubleVector3D &vec);
101 extern QDataStream &operator>>(QDataStream &stream, CctwDoubleVector3D &vec);
102 
103 #endif
104 
105 #endif // CCTWDOUBLEVECTOR3DPROPERTY_H
CctwDoubleVector3DProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, CctwDoubleVector3D value, QString toolTip)
void valueChanged(CctwDoubleVector3D val, int index)
QDataStream & operator>>(QDataStream &stream, CctwDoubleVector3D &vec)
void setSubValue(int axis, double value, int index)
void setValue(CctwDoubleVector3D val, int index)
void linkTo(QDoubleSpinBox *xSpinBox, QDoubleSpinBox *ySpinBox, QDoubleSpinBox *zSpinBox)
void subValueChanged(int axis, double value, int index)
static QScriptValue toScriptValue(QScriptEngine *engine, const CctwDoubleVector3D &vec)
CctwDoubleVector3DPropertyDoubleSpinBoxHelper(QDoubleSpinBox *spinBox, CctwDoubleVector3DProperty *property, int axis)
static void fromScriptValue(const QScriptValue &obj, CctwDoubleVector3D &vec)
void incValue(CctwDoubleVector3D step)
void setSubValue(int axis, double value, int index)
CctwDoubleVector3D value() const
QDataStream & operator<<(QDataStream &stream, const CctwDoubleVector3D &vec)
void subValueChanged(int axis, double val, int index)
CctwDoubleVector3D defaultValue() const
void setDefaultValue(CctwDoubleVector3D val)
QString toString(const CctwDoubleVector3D &mat)