summary refs log tree commit diff stats
path: root/tools/mapedit/src/frame.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/mapedit/src/frame.h')
-rw-r--r--tools/mapedit/src/frame.h30
1 files changed, 24 insertions, 6 deletions
diff --git a/tools/mapedit/src/frame.h b/tools/mapedit/src/frame.h index 067c848..b0f27e9 100644 --- a/tools/mapedit/src/frame.h +++ b/tools/mapedit/src/frame.h
@@ -14,6 +14,7 @@
14#include <wx/notebook.h> 14#include <wx/notebook.h>
15#include <memory> 15#include <memory>
16#include <wx/treectrl.h> 16#include <wx/treectrl.h>
17#include "undo.h"
17 18
18class MapPtrCtr : public wxTreeItemData { 19class MapPtrCtr : public wxTreeItemData {
19 public: 20 public:
@@ -37,7 +38,6 @@ class MapeditFrame : public wxFrame {
37 38
38 std::list<wxWindow*>::iterator closer; 39 std::list<wxWindow*>::iterator closer;
39 40
40 private:
41 static void LaunchWindow(std::unique_ptr<World> world); 41 static void LaunchWindow(std::unique_ptr<World> world);
42 void populateMapTree(wxTreeItemId node, std::list<std::shared_ptr<Map>> maps); 42 void populateMapTree(wxTreeItemId node, std::list<std::shared_ptr<Map>> maps);
43 void SelectMap(Map* map); 43 void SelectMap(Map* map);
@@ -60,7 +60,6 @@ class MapeditFrame : public wxFrame {
60 void OnAddRoot(wxCommandEvent& event); 60 void OnAddRoot(wxCommandEvent& event);
61 void OnAddChild(wxCommandEvent& event); 61 void OnAddChild(wxCommandEvent& event);
62 void OnDidSelectMap(wxTreeEvent& event); 62 void OnDidSelectMap(wxTreeEvent& event);
63 void OnWillSelectMap(wxTreeEvent& event);
64 void OnWillDragMap(wxTreeEvent& event); 63 void OnWillDragMap(wxTreeEvent& event);
65 void OnDidDragMap(wxTreeEvent& event); 64 void OnDidDragMap(wxTreeEvent& event);
66 void OnRightClickTree(wxTreeEvent& event); 65 void OnRightClickTree(wxTreeEvent& event);
@@ -69,25 +68,44 @@ class MapeditFrame : public wxFrame {
69 68
70 std::unique_ptr<World> world; 69 std::unique_ptr<World> world;
71 Map* currentMap; 70 Map* currentMap;
71
72 MapeditWidget* mapEditor; 72 MapeditWidget* mapEditor;
73 TileWidget* tileEditor; 73 TileWidget* tileEditor;
74 wxTextCtrl* titleBox; 74 wxToolBar* toolbar;
75 std::string filename; 75 wxMenu* menuFile;
76
77 // Notebook
76 wxNotebook* notebook; 78 wxNotebook* notebook;
77 wxChoice* entityTypeBox; 79 wxChoice* entityTypeBox;
78 wxButton* addEntityButton; 80 wxButton* addEntityButton;
79 wxButton* cancelEntityButton; 81 wxButton* cancelEntityButton;
80 wxToolBar* toolbar; 82
81 wxMenu* menuFile; 83 // Map tree
82 wxTreeCtrl* mapTree; 84 wxTreeCtrl* mapTree;
83 wxTreeItemId dragMap; 85 wxTreeItemId dragMap;
84 wxMenu* mapTreePopup; 86 wxMenu* mapTreePopup;
87 bool dontSelectMap = false;
88
89 // Property editor
90 UndoableTextBox* titleBox;
91 wxString prevTitle;
85 wxStaticText* startposLabel; 92 wxStaticText* startposLabel;
86 wxButton* setStartposButton; 93 wxButton* setStartposButton;
87 wxButton* cancelStartposButton; 94 wxButton* cancelStartposButton;
88 95
96 // Undo stuff
97 wxMenu* menuEdit;
98 std::list<std::shared_ptr<Undoable>> history;
99 std::list<std::shared_ptr<Undoable>>::iterator currentAction {begin(history)};
100 void OnUndo(wxCommandEvent& event);
101 void OnRedo(wxCommandEvent& event);
102 void UpdateUndoLabels();
103 void commitAction(std::shared_ptr<Undoable> action);
104 void commitAfter(std::shared_ptr<Undoable> action);
105
89 bool addingEntity = false; 106 bool addingEntity = false;
90 107
108 private:
91 wxDECLARE_EVENT_TABLE(); 109 wxDECLARE_EVENT_TABLE();
92}; 110};
93 111