diff options
author | Thales1330 <thaleslima.ufu@gmail.com> | 2016-08-01 18:05:11 -0300 |
---|---|---|
committer | Thales1330 <thaleslima.ufu@gmail.com> | 2016-08-01 18:05:11 -0300 |
commit | 5e0be3d0a505781c31b3d23450fd92d4cc7b7ce7 (patch) | |
tree | c3fd7d83e604abaf5f62ab732e9a2383c0def5e0 /Project/Workspace.h | |
parent | 3a246308dcd76f70a1b6c3e6b08f0d597b255dba (diff) | |
download | PSP.git-5e0be3d0a505781c31b3d23450fd92d4cc7b7ce7.tar.gz PSP.git-5e0be3d0a505781c31b3d23450fd92d4cc7b7ce7.tar.xz PSP.git-5e0be3d0a505781c31b3d23450fd92d4cc7b7ce7.zip |
Attempt to implement Event Handler in Workspace
fail
Diffstat (limited to 'Project/Workspace.h')
-rw-r--r-- | Project/Workspace.h | 42 |
1 files changed, 38 insertions, 4 deletions
diff --git a/Project/Workspace.h b/Project/Workspace.h index 193d370..ca4245f 100644 --- a/Project/Workspace.h +++ b/Project/Workspace.h @@ -6,12 +6,19 @@ #include <wx/dcclient.h> #include <wx/msgdlg.h> +class MouseEventsHandler; + #include "WorkspaceBase.h" +//#include "MouseEventsHandler.h" #include "Bus.h" +class Camera; + class Workspace : public WorkspaceBase { protected: + virtual void OnMouseMotion(wxMouseEvent& event); + virtual void OnKeyDown(wxKeyEvent& event) = 0; virtual void OnLeftClickDown(wxMouseEvent& event); virtual void OnPaint(wxPaintEvent& event); @@ -19,17 +26,44 @@ class Workspace : public WorkspaceBase wxGLContext* m_glContext; wxString m_name; - - std::vector<Element*> m_elementList; + + bool m_insertMode = false; + bool m_dragMode = false; + + std::vector<Element*> m_elementList; public: Workspace(wxWindow* parent, wxString name = wxEmptyString); ~Workspace(); - - void Redraw() { this->Refresh(); } + + MouseEventsHandler* m_mouseEventsHandler; + Camera* m_camera; wxString GetName() const { return m_name; } void SetName(wxString name) { m_name = name; } + void SetDragMode(bool dragMode) { this->m_dragMode = dragMode; } + void SetInsertMode(bool insertMode) { this->m_insertMode = insertMode; } + bool IsDragMode() const { return m_dragMode; } + const std::vector<Element*>& GetElementList() const { return m_elementList; } + bool IsInsertMode() const { return m_insertMode; } + void Redraw() { this->Refresh(); } +}; + +class Camera +{ + private: + wxPoint2DDouble m_translation; + double m_scale; + + public: + Camera(); + ~Camera(); + + void SetScale(double scale) { this->m_scale = scale; } + void SetTranslation(const wxPoint2DDouble& translation) { this->m_translation = translation; } + double GetScale() const { return m_scale; } + const wxPoint2DDouble GetTranslation() const { return m_translation; } + wxPoint2DDouble ScreenToWorld(wxPoint2DDouble screenCoords); }; #endif // WORKSPACE_H |