diff options
author | neoraider <devnull@localhost> | 2008-04-06 15:29:03 +0200 |
---|---|---|
committer | neoraider <devnull@localhost> | 2008-04-06 15:29:03 +0200 |
commit | 356efaf89afdad141b313767e1a2b89de3c08d0a (patch) | |
tree | 37edb2a0fc0ea15f4f60e45ed411cbea7b4c12c5 /ToolAddPolygon.cpp | |
parent | 258eb984bafe0f667d1e76de61c8afaa23f39ef4 (diff) | |
download | zoomedit-356efaf89afdad141b313767e1a2b89de3c08d0a.tar zoomedit-356efaf89afdad141b313767e1a2b89de3c08d0a.zip |
zoomedit: Recreated ZoomEdit based on Glademm.
Diffstat (limited to 'ToolAddPolygon.cpp')
-rw-r--r-- | ToolAddPolygon.cpp | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/ToolAddPolygon.cpp b/ToolAddPolygon.cpp deleted file mode 100644 index 9730318..0000000 --- a/ToolAddPolygon.cpp +++ /dev/null @@ -1,86 +0,0 @@ -#include "ToolAddPolygon.h" -#include <GL/gl.h> - - -ToolAddPolygon::ToolAddPolygon(EditManager *editManager) : Renderer(editManager), sidebar(editManager) { - this->editManager = editManager; - - image = gtk_image_new_from_stock(GTK_STOCK_MISSING_IMAGE, GTK_ICON_SIZE_BUTTON); - g_object_ref_sink(G_OBJECT(image)); -} - -ToolAddPolygon::~ToolAddPolygon() { - g_object_unref(G_OBJECT(image)); -} - -void ToolAddPolygon::activate() { - newRoom = Room(); - - editManager->setSelectedObject(NULL); -} - -void ToolAddPolygon::deactivate() { - newRoom.close(); - editManager->addRoom(newRoom); -} - -void ToolAddPolygon::render(const Level &level, const Rectangle &rect, float scale) { - if(editManager->polygonOk(newRoom.getPolygon())) - glColor4f(0.0f, 0.7f, 1.0f, 0.2f); - else - glColor4f(1.0f, 0.3f, 0.3f, 0.2f); - - fillPolygon(newRoom.getPolygon()); - - glLineWidth(2.0f); - glColor4f(0.0f, 0.7f, 1.0f, 0.7f); - - glBegin(GL_LINES); - - for(size_t i = 0; i < newRoom.getEdgeCount(); i++) { - const Edge *edge = newRoom.getEdge(i); - glVertex2f(edge->getVertex1()->getX(), edge->getVertex1()->getY()); - glVertex2f(edge->getVertex2()->getX(), edge->getVertex2()->getY()); - } - - if(!newRoom.getPolygon().empty() && editManager->getHoveredVertex()) { - if(!editManager->vertexOk(*editManager->getHoveredVertex(), &newRoom)) - glColor4f(1.0f, 0.3f, 0.3f, 0.7f); - - glVertex2f(newRoom.getPolygon().back().getX(), newRoom.getPolygon().back().getY()); - glVertex2f(editManager->getHoveredVertex()->getX(), editManager->getHoveredVertex()->getY()); - } - - glEnd(); -} - -bool ToolAddPolygon::buttonPress(unsigned int button, const Vertex *v) { - if(button != 1) - return false; - - if(editManager->getHoveredObject() && editManager->getHoveredObject()->isOfType("LevelVertex")) { - LevelVertex *vertex = (LevelVertex*)editManager->getHoveredObject(); - - if(!vertex->canConnect()) - return false; - - if(!editManager->vertexOk(**vertex, &newRoom)) - return false; - - newRoom.addVertex(*vertex); - } - else { - if(!v) - return false; - - if(!editManager->vertexOk(*v, &newRoom)) - return false; - - newRoom.addVertex(*v); - } - - editManager->redraw(); - sidebar.update(); - - return true; -} |