summaryrefslogtreecommitdiffstats
path: root/Project/ControlEditor.h
diff options
context:
space:
mode:
authorThales1330 <thaleslima.ufu@gmail.com>2017-01-24 18:25:17 -0200
committerThales1330 <thaleslima.ufu@gmail.com>2017-01-24 18:25:17 -0200
commitbdb0625280d827ba7333b6fc9d6c6534e0720100 (patch)
tree6511dd5568556115db2affce10696efb7ff62c8f /Project/ControlEditor.h
parent56b93d40596cc6e39930faad0f6fdf347275ee49 (diff)
downloadPSP.git-bdb0625280d827ba7333b6fc9d6c6534e0720100.tar.gz
PSP.git-bdb0625280d827ba7333b6fc9d6c6534e0720100.tar.xz
PSP.git-bdb0625280d827ba7333b6fc9d6c6534e0720100.zip
Control editor implementation start
Diffstat (limited to 'Project/ControlEditor.h')
-rw-r--r--Project/ControlEditor.h59
1 files changed, 41 insertions, 18 deletions
diff --git a/Project/ControlEditor.h b/Project/ControlEditor.h
index 723831a..e121690 100644
--- a/Project/ControlEditor.h
+++ b/Project/ControlEditor.h
@@ -6,19 +6,14 @@
#include <wx/dcclient.h>
#include <wx/dcscreen.h>
#include <wx/graphics.h>
+#include <GL/gl.h>
+#include <GL/glu.h>
-enum ControlElementButtonID
-{
- ID_IO = 0,
- ID_TF,
- ID_SUM,
- ID_CONST,
- ID_LIMITER,
- ID_GAIN,
- ID_MULT,
- ID_SAT,
- ID_RATELIM
-};
+class Camera;
+class ControlElement;
+class TransferFunction;
+
+enum ControlElementButtonID { ID_IO = 0, ID_TF, ID_SUM, ID_CONST, ID_LIMITER, ID_GAIN, ID_MULT, ID_SAT, ID_RATELIM };
class ControlElementButton : public wxWindow
{
@@ -36,30 +31,58 @@ protected:
wxString m_label;
wxFont m_font;
wxPoint m_labelPosition;
-
+
wxImage m_image;
wxSize m_imageSize;
wxPoint m_imagePosition;
-
+
int m_borderSize = 2;
bool m_mouseAbove = false;
bool m_selected = false;
-
+
wxSize m_buttonSize;
};
class ControlEditor : public ControlEditorBase
{
public:
+ enum ControlEditorMode {
+ MODE_EDIT = 0,
+ MODE_MOVE_ELEMENT,
+ MODE_DRAG,
+ MODE_DRAG_INSERT,
+ MODE_INSERT,
+ MODE_SELECTION_RECT,
+ MODE_PASTE,
+ MODE_DRAG_PASTE
+ };
ControlEditor(wxWindow* parent);
virtual ~ControlEditor();
-
+
virtual void AddElement(ControlElementButtonID id);
+ virtual void Redraw() { m_glCanvas->Refresh(); }
protected:
- void BuildControlElementPanel();
+ virtual void OnDoubleClick(wxMouseEvent& event);
+ virtual void OnLeftClickDown(wxMouseEvent& event);
+ virtual void OnLeftClickUp(wxMouseEvent& event);
+ virtual void OnMiddleDown(wxMouseEvent& event);
+ virtual void OnMiddleUp(wxMouseEvent& event);
+ virtual void OnMouseMotion(wxMouseEvent& event);
+ virtual void OnPaint(wxPaintEvent& event);
virtual void LeftClickDown(wxMouseEvent& event);
- wxButton* m_tfButton;
+ void BuildControlElementPanel();
+ void SetViewport();
+
+ wxGLContext* m_glContext = NULL;
+ Camera* m_camera = NULL;
+
+ ControlEditorMode m_mode = MODE_EDIT;
+
+ wxRect2DDouble m_selectionRect;
+ wxPoint2DDouble m_startSelRect;
+
+ std::vector<ControlElement*> m_elementList;
};
#endif // CONTROLEDITOR_H