summaryrefslogtreecommitdiffstats
path: root/Project/ControlEditorDC.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Project/ControlEditorDC.cpp')
-rw-r--r--Project/ControlEditorDC.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/Project/ControlEditorDC.cpp b/Project/ControlEditorDC.cpp
new file mode 100644
index 0000000..84e212d
--- /dev/null
+++ b/Project/ControlEditorDC.cpp
@@ -0,0 +1,31 @@
+#include "ControlEditorDC.h"
+#include "Camera.h"
+
+ControlEditorDC::ControlEditorDC(wxWindow* parent, int ioflags) : ControlEditor(parent, nullptr, ioflags)
+{
+ BuildControlElementPanel();
+ m_camera = new Camera();
+ m_selectionRect = wxRect2DDouble(0, 0, 0, 0);
+ // m_camera->SetScale(1.2);
+ m_ioFlags = ioflags;
+
+ this->GetSizer()->Remove(this->GetSizer()->GetChildren()[0]->GetId()); // remove m_glCanvas object from sizer
+
+ delete m_glCanvas; // Delete GLCanvas to allow drawing with wxDC
+ m_glCanvas = nullptr;
+ SetBackgroundColour(wxColour(255, 255, 255));
+ SetBackgroundStyle(wxBG_STYLE_PAINT); // To allow wxBufferedPaintDC works properly.
+ Redraw();
+}
+
+ControlEditorDC::~ControlEditorDC()
+{
+ // Recreate the GLCanvas. This is necessary to prevent WorkspaceBase destructor access nullpr.
+ // Also avoid the code editing of WorkspaceBase, since is automatically generated by wxCrafter.
+ // TODO(?): Find a better way to solve this problem.
+ m_glCanvas = new wxGLCanvas(this);
+}
+
+void ControlEditorDC::OnPaint(wxPaintEvent& event)
+{
+}