1 #pragma once |
1 #pragma once |
2 #include <QWidget> |
2 #include <QWidget> |
3 #include <glm/glm.hpp> |
3 #include <glm/glm.hpp> |
|
4 #include "ui_vec3editor.h" |
4 |
5 |
5 namespace Ui |
6 class VectorInput : public QWidget |
6 { |
|
7 class Vec3Editor; |
|
8 } |
|
9 |
|
10 class Vec3Editor : public QWidget |
|
11 { |
7 { |
12 Q_OBJECT |
8 Q_OBJECT |
|
9 Ui_Vec3Editor ui; |
13 public: |
10 public: |
14 enum Flag |
11 enum Flag |
15 { |
12 { |
16 NoMultiplyButton = 0x1 |
13 NoMultiplyButton = 0x1 |
17 }; |
14 }; |
18 explicit Vec3Editor(const glm::vec3& value, QWidget* parent = nullptr, QFlags<Flag> flags = {}); |
15 explicit VectorInput(const glm::vec3& value, QWidget* parent = nullptr, QFlags<Flag> flags = {}); |
19 ~Vec3Editor(); |
16 explicit VectorInput(QWidget* parent = nullptr, QFlags<Flag> flags = {}); |
|
17 ~VectorInput(); |
20 glm::vec3 value() const; |
18 glm::vec3 value() const; |
21 void setValue(const glm::vec3& value); |
19 void setValue(const glm::vec3& value); |
22 Q_SIGNALS: |
20 Q_SIGNALS: |
23 void valueChanged(const glm::vec3& value); |
21 void valueChanged(const glm::vec3& value); |
24 private: |
22 private: |
25 std::array<class DoubleSpinBox*, 3> spinboxes(); |
23 std::array<class DoubleSpinBox*, 3> spinboxes(); |
26 Q_SLOT void multiplyPressed(); |
24 Q_SLOT void multiplyPressed(); |
27 std::unique_ptr<Ui::Vec3Editor> ui; |
|
28 }; |
25 }; |
29 |
26 |
30 Q_DECLARE_OPERATORS_FOR_FLAGS(QFlags<Vec3Editor::Flag>) |
27 Q_DECLARE_OPERATORS_FOR_FLAGS(QFlags<VectorInput::Flag>) |