diff options
author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2015-03-16 16:53:05 -0400 |
---|---|---|
committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2015-03-16 16:53:05 -0400 |
commit | 0d30e9b57229905f78e7bd60fe5d3cde72851f28 (patch) | |
tree | 4ca2abff9fb1933685f570e97a8b9e88a976c95f /tools/mapedit/src/frame.h | |
parent | 36536297aac5c07e3d5fb96abed74570fc7615e9 (diff) | |
download | therapy-0d30e9b57229905f78e7bd60fe5d3cde72851f28.tar.gz therapy-0d30e9b57229905f78e7bd60fe5d3cde72851f28.tar.bz2 therapy-0d30e9b57229905f78e7bd60fe5d3cde72851f28.zip |
Rewrote map editor so a single file contains all maps
Maps are viewed in a tree control on the left. They can be dragged and dropped. Maps are bolded when they are dirty. Saving saves expansion status and order of maps in tree.
Diffstat (limited to 'tools/mapedit/src/frame.h')
-rw-r--r-- | tools/mapedit/src/frame.h | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/tools/mapedit/src/frame.h b/tools/mapedit/src/frame.h index 4aa44c5..f1e4efc 100644 --- a/tools/mapedit/src/frame.h +++ b/tools/mapedit/src/frame.h | |||
@@ -12,24 +12,36 @@ | |||
12 | #include "tile_widget.h" | 12 | #include "tile_widget.h" |
13 | #include <list> | 13 | #include <list> |
14 | #include <wx/notebook.h> | 14 | #include <wx/notebook.h> |
15 | #include <memory> | ||
16 | #include <wx/treectrl.h> | ||
17 | |||
18 | class MapPtrCtr : public wxTreeItemData { | ||
19 | public: | ||
20 | Map* map; | ||
21 | |||
22 | MapPtrCtr(Map* map) : map(map) {} | ||
23 | }; | ||
15 | 24 | ||
16 | class MapeditFrame : public wxFrame { | 25 | class MapeditFrame : public wxFrame { |
17 | public: | 26 | public: |
18 | MapeditFrame() {} | 27 | MapeditFrame() {} |
19 | MapeditFrame(Map map, std::string filename); | 28 | MapeditFrame(std::unique_ptr<World> world); |
20 | 29 | ||
21 | MapeditWidget* GetMapEditor(); | 30 | MapeditWidget* GetMapEditor(); |
22 | void StartAddingEntity(); | 31 | void StartAddingEntity(); |
23 | void FinishAddingEntity(); | 32 | void FinishAddingEntity(); |
24 | void MapDirtyDidChange(bool dirty); | 33 | void MapDirtyDidChange(bool dirty); |
25 | 34 | ||
26 | static void NewMap(); | 35 | static void NewWorld(); |
27 | static void OpenMap(const char* filename); | 36 | static void OpenWorld(std::string filename); |
28 | 37 | ||
29 | std::list<wxWindow*>::iterator closer; | 38 | std::list<wxWindow*>::iterator closer; |
30 | 39 | ||
31 | private: | 40 | private: |
32 | static void LaunchWindow(Map map, const char* filename); | 41 | static void LaunchWindow(std::unique_ptr<World> world); |
42 | void populateMapTree(wxTreeItemId node, std::list<std::shared_ptr<Map>> maps); | ||
43 | void SelectMap(Map* map); | ||
44 | wxTreeItemId MoveTreeNode(wxTreeItemId toCopy, wxTreeItemId newParent); | ||
33 | 45 | ||
34 | void ZoomIn(wxCommandEvent& event); | 46 | void ZoomIn(wxCommandEvent& event); |
35 | void ZoomOut(wxCommandEvent& event); | 47 | void ZoomOut(wxCommandEvent& event); |
@@ -44,8 +56,15 @@ class MapeditFrame : public wxFrame { | |||
44 | void OnTabChanging(wxBookCtrlEvent& event); | 56 | void OnTabChanging(wxBookCtrlEvent& event); |
45 | void OnAddEntity(wxCommandEvent& event); | 57 | void OnAddEntity(wxCommandEvent& event); |
46 | void OnCancelAddEntity(wxCommandEvent& event); | 58 | void OnCancelAddEntity(wxCommandEvent& event); |
59 | void OnAddRoot(wxCommandEvent& event); | ||
60 | void OnAddChild(wxCommandEvent& event); | ||
61 | void OnDidSelectMap(wxTreeEvent& event); | ||
62 | void OnWillSelectMap(wxTreeEvent& event); | ||
63 | void OnWillDragMap(wxTreeEvent& event); | ||
64 | void OnDidDragMap(wxTreeEvent& event); | ||
47 | 65 | ||
48 | Map map; | 66 | std::unique_ptr<World> world; |
67 | Map* currentMap; | ||
49 | MapeditWidget* mapEditor; | 68 | MapeditWidget* mapEditor; |
50 | TileWidget* tileEditor; | 69 | TileWidget* tileEditor; |
51 | wxTextCtrl* titleBox; | 70 | wxTextCtrl* titleBox; |
@@ -55,6 +74,9 @@ class MapeditFrame : public wxFrame { | |||
55 | wxButton* addEntityButton; | 74 | wxButton* addEntityButton; |
56 | wxButton* cancelEntityButton; | 75 | wxButton* cancelEntityButton; |
57 | wxToolBar* toolbar; | 76 | wxToolBar* toolbar; |
77 | wxMenu* menuFile; | ||
78 | wxTreeCtrl* mapTree; | ||
79 | wxTreeItemId dragMap; | ||
58 | 80 | ||
59 | bool addingEntity = false; | 81 | bool addingEntity = false; |
60 | 82 | ||