From eb096e97d63c3bdbb2913dc0bb8abacef5ee3bf1 Mon Sep 17 00:00:00 2001 From: neoraider Date: Sat, 3 May 2008 00:05:05 +0000 Subject: zoomedit: * Implemented MapView --- src/Gui/RenderArea.cpp | 8 ++++++++ src/Gui/RenderArea.h | 1 + src/Gui/Window.cpp | 12 ++++++++++++ src/Gui/Window.h | 5 ++++- 4 files changed, 25 insertions(+), 1 deletion(-) (limited to 'src/Gui') diff --git a/src/Gui/RenderArea.cpp b/src/Gui/RenderArea.cpp index 0cec471..2611102 100644 --- a/src/Gui/RenderArea.cpp +++ b/src/Gui/RenderArea.cpp @@ -44,6 +44,7 @@ RenderArea::RenderArea(BaseObjectType *cobject, const Glib::RefPtrbutton == 1) + view->click(this, event->x, event->y); + + return true; +} + bool RenderArea::onEnterNotifyEvent(GdkEventCrossing *event) { inWindow = true; xHover = event->x; diff --git a/src/Gui/RenderArea.h b/src/Gui/RenderArea.h index 08cb841..6aa66df 100644 --- a/src/Gui/RenderArea.h +++ b/src/Gui/RenderArea.h @@ -55,6 +55,7 @@ class RenderArea : public Gtk::DrawingArea { bool onConfigureEvent(GdkEventConfigure*); bool onExposeEvent(GdkEventExpose*); bool onScrollEvent(GdkEventScroll *event); + bool onButtonPressEvent(GdkEventButton *event); bool onEnterNotifyEvent(GdkEventCrossing *event); bool onLeaveNotifyEvent(GdkEventCrossing*); bool onMotionNotifyEvent(GdkEventMotion *event); diff --git a/src/Gui/Window.cpp b/src/Gui/Window.cpp index f1af3cd..df20876 100644 --- a/src/Gui/Window.cpp +++ b/src/Gui/Window.cpp @@ -28,11 +28,23 @@ Window::Window(BaseObjectType *cobject, const Glib::RefPtr &x xml->connect_clicked("MenuItemQuit", sigc::mem_fun(this, &Window::hide)); xml->get_widget_derived("RenderArea", renderArea); + xml->get_widget_derived("MapArea", mapArea); + + if(renderArea) + renderArea->signal_expose_event().connect_notify(sigc::mem_fun(this, &Window::updateMap)); } Window::~Window() { if(renderArea) delete renderArea; + + if(mapArea) + delete mapArea; +} + +void Window::updateMap(GdkEventExpose*) { + if(mapArea) + mapArea->queue_draw(); } } diff --git a/src/Gui/Window.h b/src/Gui/Window.h index ae22d42..9b4f4ef 100644 --- a/src/Gui/Window.h +++ b/src/Gui/Window.h @@ -30,13 +30,16 @@ class RenderArea; class Window : public Gtk::Window { private: - RenderArea *renderArea; + RenderArea *renderArea, *mapArea; + + void updateMap(GdkEventExpose*); public: Window(BaseObjectType *cobject, const Glib::RefPtr &xml); virtual ~Window(); RenderArea* getRenderArea() const {return renderArea;} + RenderArea* getMapArea() const {return mapArea;} }; } -- cgit v1.2.3