summaryrefslogtreecommitdiffstats
path: root/EditManager.cpp
diff options
context:
space:
mode:
authorneoraider <devnull@localhost>2007-10-05 01:38:05 +0200
committerneoraider <devnull@localhost>2007-10-05 01:38:05 +0200
commitb660b965bcb679e53cc89e7b8903190d2d162ff6 (patch)
tree31d2e3309e0906e03a8e415f430a99f8716b23b6 /EditManager.cpp
parentea3fc9f27f6feb14ea3b7cfc8b1e921195dd3c3f (diff)
downloadzoomedit-b660b965bcb679e53cc89e7b8903190d2d162ff6.tar
zoomedit-b660b965bcb679e53cc89e7b8903190d2d162ff6.zip
zoomedit: Gro?e Teile der GUI in Klassen gekapselt.
Diffstat (limited to 'EditManager.cpp')
-rw-r--r--EditManager.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/EditManager.cpp b/EditManager.cpp
new file mode 100644
index 0000000..34d53be
--- /dev/null
+++ b/EditManager.cpp
@@ -0,0 +1,40 @@
+#include "EditManager.h"
+#include "Window.h"
+#include "edit.h"
+
+
+EditManager::EditManager(Window *window) {
+ this->window = window;
+
+ mode = VIEW;
+}
+
+void EditManager::addRoom() {
+ //newRoom = Room();
+ mode = ADD;
+
+ startAddMode();
+
+ window->update();
+}
+
+void EditManager::finishRoom() {
+ mode = VIEW;
+
+ if(getActiveRoom() && getActiveRoom()->size() > 2 && isPolygonOk(getActiveRoom())) {
+ getLevel()->push_back(*getActiveRoom());
+ setActiveRoom(&getLevel()->back());
+
+ endAddMode();
+ }
+
+ window->update();
+}
+
+void EditManager::addVertex(const Vertex &v) {
+ if(mode != ADD || !getActiveRoom())
+ return;
+
+ getActiveRoom()->push_back(v);
+ window->update();
+}