/* client/mapwidget.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_CLIENT_MAPWIDGET_H__ #define __INCLUDED_CLIENT_MAPWIDGET_H__ #include "core/zone.h" #include "ui/widget.h" namespace client { class MapWidget : public ui::Widget { public: MapWidget(ui::Widget *parent = 0); virtual ~MapWidget(); void set_zoom(const float zoom); void set_zone(core::Zone *zone); void set_target(const core::Entity *entity); inline unsigned int hover() const { return mapwidget_hover_id; } inline const core::Entity *target() const { return mapwidget_target; } inline core::Zone *zone() const { return mapwidget_zone; } protected: /** * @brief draw event handler * */ virtual void draw(); /** * @brief mouse button press event handler * */ virtual bool on_mousepress(const unsigned int button); /** * @brief mouse button release event handler * */ virtual bool on_mouserelease(const unsigned int button); private: float mapwidget_zoom; core::Zone *mapwidget_zone; const core::Entity *mapwidget_target; unsigned int mapwidget_hover_id; }; // class MapWidget } // namespace client #endif // __INCLUDED_CLIENT_MAPWIDGET_H__