diff options
author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2015-03-15 19:08:46 -0400 |
---|---|---|
committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2015-03-15 19:08:46 -0400 |
commit | c125c1acc0b20c3e405dddb5c835d9734aa0472c (patch) | |
tree | 65d57aa9f4b0324506080210448fce212e407cc7 | |
parent | 91640f2f35d703898edb14abaae7dd63f5346027 (diff) | |
download | therapy-c125c1acc0b20c3e405dddb5c835d9734aa0472c.tar.gz therapy-c125c1acc0b20c3e405dddb5c835d9734aa0472c.tar.bz2 therapy-c125c1acc0b20c3e405dddb5c835d9734aa0472c.zip |
Added ability to edit title in map editor
-rw-r--r-- | tools/mapedit/src/frame.cpp | 49 | ||||
-rw-r--r-- | tools/mapedit/src/frame.h | 2 | ||||
-rw-r--r-- | tools/mapedit/src/map.cpp | 14 | ||||
-rw-r--r-- | tools/mapedit/src/map.h | 2 | ||||
-rw-r--r-- | tools/mapedit/src/tile_widget.cpp | 6 | ||||
-rw-r--r-- | tools/mapedit/src/tile_widget.h | 2 |
6 files changed, 50 insertions, 25 deletions
diff --git a/tools/mapedit/src/frame.cpp b/tools/mapedit/src/frame.cpp index 3cd1c15..b3808e2 100644 --- a/tools/mapedit/src/frame.cpp +++ b/tools/mapedit/src/frame.cpp | |||
@@ -43,28 +43,36 @@ MapeditFrame::MapeditFrame(Map map, std::string filename) : wxFrame(NULL, wxID_A | |||
43 | 43 | ||
44 | SetMenuBar(menuBar); | 44 | SetMenuBar(menuBar); |
45 | 45 | ||
46 | wxBoxSizer* sizermain = new wxBoxSizer(wxVERTICAL); | 46 | // Layout 1: Splitter between map tree and layout 2 |
47 | wxSplitterWindow* splitter = new wxSplitterWindow(this, wxID_ANY); | 47 | // Layout 2: Non-splitter between layout 3 and tile chooser |
48 | splitter->SetSashGravity(0.0); | 48 | // Layout 3: Splitter between map editor and properties editor |
49 | splitter->SetMinimumPaneSize(50); | ||
50 | sizermain->Add(splitter, 1, wxEXPAND, 0); | ||
51 | 49 | ||
52 | wxPanel* tileEditorPanel = new wxPanel(splitter, wxID_ANY); | 50 | wxSplitterWindow* layout3 = new wxSplitterWindow(this, wxID_ANY); |
53 | tileEditor = new TileWidget(tileEditorPanel, wxID_ANY, 6, 6, wxPoint(0,0)); | 51 | layout3->SetSashGravity(1.0); |
54 | wxBoxSizer* tileSizer = new wxBoxSizer(wxVERTICAL); | 52 | layout3->SetMinimumPaneSize(20); |
55 | tileSizer->Add(tileEditor, 1, wxEXPAND, 0); | ||
56 | tileEditorPanel->SetSizer(tileSizer); | ||
57 | 53 | ||
58 | wxPanel* mapEditorPanel = new wxPanel(splitter, wxID_ANY); | 54 | tileEditor = new TileWidget(this, wxID_ANY, 6, 6, wxPoint(0,0), wxSize(TILE_WIDTH*6*7,TILE_HEIGHT*10*6)); |
59 | mapEditor = new MapeditWidget(mapEditorPanel, wxID_ANY, &this->map, tileEditor, wxPoint(0,0)); | 55 | mapEditor = new MapeditWidget(layout3, wxID_ANY, &this->map, tileEditor, wxPoint(0,0), wxSize(GAME_WIDTH*2, GAME_HEIGHT*2)); |
60 | wxBoxSizer* mapSizer = new wxBoxSizer(wxVERTICAL); | ||
61 | mapSizer->Add(mapEditor, 1, wxEXPAND, 0); | ||
62 | mapEditorPanel->SetSizer(mapSizer); | ||
63 | 56 | ||
64 | splitter->SplitVertically(tileEditorPanel, mapEditorPanel); | 57 | wxPanel* propertyEditor = new wxPanel(layout3, wxID_ANY); |
58 | titleBox = new wxTextCtrl(propertyEditor, wxID_ANY, map.getTitle()); | ||
59 | titleBox->Bind(wxEVT_TEXT, &MapeditFrame::OnTitleChange, this); | ||
65 | 60 | ||
66 | this->SetSizer(sizermain); | 61 | wxStaticText* titleLabel = new wxStaticText(propertyEditor, wxID_ANY, "Title:"); |
67 | sizermain->SetSizeHints(this); | 62 | |
63 | wxFlexGridSizer* propertySizer = new wxFlexGridSizer(1, 2, 9, 25); | ||
64 | propertySizer->Add(titleLabel); | ||
65 | propertySizer->Add(titleBox, 1, wxEXPAND); | ||
66 | propertyEditor->SetSizer(propertySizer); | ||
67 | propertySizer->SetSizeHints(propertyEditor); | ||
68 | |||
69 | layout3->SplitHorizontally(mapEditor, propertyEditor); | ||
70 | |||
71 | wxBoxSizer* sizer2 = new wxBoxSizer(wxHORIZONTAL); | ||
72 | sizer2->Add(layout3, 1, wxEXPAND, 0); | ||
73 | sizer2->Add(tileEditor, 0, wxALIGN_TOP | wxALIGN_CENTER_HORIZONTAL | wxLEFT, 2); | ||
74 | this->SetSizer(sizer2); | ||
75 | sizer2->SetSizeHints(this); | ||
68 | } | 76 | } |
69 | 77 | ||
70 | void MapeditFrame::OnExit(wxCloseEvent& event) | 78 | void MapeditFrame::OnExit(wxCloseEvent& event) |
@@ -156,3 +164,8 @@ void MapeditFrame::OnQuit(wxCommandEvent& event) | |||
156 | { | 164 | { |
157 | // TODO | 165 | // TODO |
158 | } | 166 | } |
167 | |||
168 | void MapeditFrame::OnTitleChange(wxCommandEvent& event) | ||
169 | { | ||
170 | map.setTitle(titleBox->GetLineText(0).ToStdString()); | ||
171 | } | ||
diff --git a/tools/mapedit/src/frame.h b/tools/mapedit/src/frame.h index 53d8998..11990b1 100644 --- a/tools/mapedit/src/frame.h +++ b/tools/mapedit/src/frame.h | |||
@@ -27,10 +27,12 @@ class MapeditFrame : public wxFrame { | |||
27 | void OnClose(wxCommandEvent& event); | 27 | void OnClose(wxCommandEvent& event); |
28 | void OnExit(wxCloseEvent& event); | 28 | void OnExit(wxCloseEvent& event); |
29 | void OnQuit(wxCommandEvent& event); | 29 | void OnQuit(wxCommandEvent& event); |
30 | void OnTitleChange(wxCommandEvent& event); | ||
30 | 31 | ||
31 | Map map; | 32 | Map map; |
32 | MapeditWidget* mapEditor; | 33 | MapeditWidget* mapEditor; |
33 | TileWidget* tileEditor; | 34 | TileWidget* tileEditor; |
35 | wxTextCtrl* titleBox; | ||
34 | std::string filename; | 36 | std::string filename; |
35 | 37 | ||
36 | wxDECLARE_EVENT_TABLE(); | 38 | wxDECLARE_EVENT_TABLE(); |
diff --git a/tools/mapedit/src/map.cpp b/tools/mapedit/src/map.cpp index 7976419..3a24ace 100644 --- a/tools/mapedit/src/map.cpp +++ b/tools/mapedit/src/map.cpp | |||
@@ -6,7 +6,6 @@ | |||
6 | Map::Map() | 6 | Map::Map() |
7 | { | 7 | { |
8 | mapdata = (int*) calloc(MAP_WIDTH * MAP_HEIGHT, sizeof(int)); | 8 | mapdata = (int*) calloc(MAP_WIDTH * MAP_HEIGHT, sizeof(int)); |
9 | dirty = true; | ||
10 | } | 9 | } |
11 | 10 | ||
12 | Map::Map(std::string filename) | 11 | Map::Map(std::string filename) |
@@ -59,8 +58,6 @@ Map::Map(std::string filename) | |||
59 | } | 58 | } |
60 | 59 | ||
61 | xmlFreeDoc(doc); | 60 | xmlFreeDoc(doc); |
62 | |||
63 | dirty = false; | ||
64 | } | 61 | } |
65 | 62 | ||
66 | Map::Map(const Map& map) | 63 | Map::Map(const Map& map) |
@@ -172,3 +169,14 @@ int Map::getTileAt(int x, int y) const | |||
172 | { | 169 | { |
173 | return mapdata[x+y*MAP_WIDTH]; | 170 | return mapdata[x+y*MAP_WIDTH]; |
174 | } | 171 | } |
172 | |||
173 | std::string Map::getTitle() const | ||
174 | { | ||
175 | return title; | ||
176 | } | ||
177 | |||
178 | void Map::setTitle(std::string title) | ||
179 | { | ||
180 | dirty = true; | ||
181 | this->title = title; | ||
182 | } | ||
diff --git a/tools/mapedit/src/map.h b/tools/mapedit/src/map.h index 66e4596..45ec7e1 100644 --- a/tools/mapedit/src/map.h +++ b/tools/mapedit/src/map.h | |||
@@ -49,6 +49,8 @@ class Map { | |||
49 | Map& operator= (Map other); | 49 | Map& operator= (Map other); |
50 | friend void swap(Map& first, Map& second); | 50 | friend void swap(Map& first, Map& second); |
51 | 51 | ||
52 | std::string getTitle() const; | ||
53 | void setTitle(std::string title); | ||
52 | void save(std::string name); | 54 | void save(std::string name); |
53 | bool hasUnsavedChanges() const; | 55 | bool hasUnsavedChanges() const; |
54 | void setTileAt(int x, int y, int tile); | 56 | void setTileAt(int x, int y, int tile); |
diff --git a/tools/mapedit/src/tile_widget.cpp b/tools/mapedit/src/tile_widget.cpp index 3dccecb..3b00e59 100644 --- a/tools/mapedit/src/tile_widget.cpp +++ b/tools/mapedit/src/tile_widget.cpp | |||
@@ -1,9 +1,9 @@ | |||
1 | #include "tile_widget.h" | 1 | #include "tile_widget.h" |
2 | #include "map.h" | 2 | #include "map.h" |
3 | 3 | ||
4 | IMPLEMENT_DYNAMIC_CLASS(TileWidget,wxScrolledWindow) | 4 | IMPLEMENT_DYNAMIC_CLASS(TileWidget,wxScrolledCanvas) |
5 | 5 | ||
6 | BEGIN_EVENT_TABLE(TileWidget, wxScrolledWindow) | 6 | BEGIN_EVENT_TABLE(TileWidget, wxScrolledCanvas) |
7 | EVT_PAINT(TileWidget::OnPaint) | 7 | EVT_PAINT(TileWidget::OnPaint) |
8 | EVT_LEFT_DOWN(TileWidget::OnClick) | 8 | EVT_LEFT_DOWN(TileWidget::OnClick) |
9 | END_EVENT_TABLE() | 9 | END_EVENT_TABLE() |
@@ -14,7 +14,7 @@ TileWidget::TileWidget() | |||
14 | } | 14 | } |
15 | 15 | ||
16 | TileWidget::TileWidget(wxWindow* parent, wxWindowID winid, int width, int scale, const wxPoint& pos, const wxSize& size) | 16 | TileWidget::TileWidget(wxWindow* parent, wxWindowID winid, int width, int scale, const wxPoint& pos, const wxSize& size) |
17 | : wxScrolledWindow(parent, winid, pos, size), numTilesWidth(width), scale(scale) | 17 | : wxScrolledCanvas(parent, winid, pos, size), numTilesWidth(width), scale(scale) |
18 | { | 18 | { |
19 | Init(); | 19 | Init(); |
20 | } | 20 | } |
diff --git a/tools/mapedit/src/tile_widget.h b/tools/mapedit/src/tile_widget.h index f4bbc07..2f1872d 100644 --- a/tools/mapedit/src/tile_widget.h +++ b/tools/mapedit/src/tile_widget.h | |||
@@ -9,7 +9,7 @@ | |||
9 | 9 | ||
10 | #include "map.h" | 10 | #include "map.h" |
11 | 11 | ||
12 | class TileWidget : public wxScrolledWindow { | 12 | class TileWidget : public wxScrolledCanvas { |
13 | public: | 13 | public: |
14 | TileWidget(); | 14 | TileWidget(); |
15 | TileWidget(wxWindow* parent, wxWindowID winid, int width, int scale, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize); | 15 | TileWidget(wxWindow* parent, wxWindowID winid, int width, int scale, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize); |