From 5e68e62fb23f15f26e24823bf21b012ab4dfd1e0 Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Tue, 9 Jun 2020 18:33:54 -0300 Subject: Control Editor device context draw imp init --- Project/ControlEditorDC.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Project/ControlEditorDC.cpp (limited to 'Project/ControlEditorDC.cpp') 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) +{ +} -- cgit