/* mapwidget.h This file is part of the Project::OSiRiON world editor and is distributed under the terms and conditions of the GNU General Public License version 2 */ #ifndef __INCLUDED_EDITOR_MAPWIDGET__ #define __INCLUDED_EDITOR_MAPWIDGET__ #include #include namespace editor { class MapEntity; /** * @brief MapWidget shows the zone map with the blue grid line * */ class MapWidget : public QWidget { Q_OBJECT public: MapWidget(QWidget *parent = 0); /** * @brief add an entity to the map * */ MapEntity *addEntity(); protected: /** * @brief handle draw events * */ virtual void paintEvent(QPaintEvent *event); /** * @brief handle resize events * */ virtual void resizeEvent(QResizeEvent *event); /** * @brief handle mouse button press events * */ virtual void mousePressEvent(QMouseEvent *event); /** * @brief handle mouse button press events * */ virtual void mouseReleaseEvent(QMouseEvent *event); /** * @brief handle mouse move press events * */ virtual void mouseMoveEvent(QMouseEvent *event); /** * @brief handle mousewheel events * */ virtual void wheelEvent(QWheelEvent *event); signals: /** * @brief the selected() signal is emitted if an entity on the map is selected * */ void selected(MapEntity *entity); private slots: /** * @brief called when an entity on the map has been clicked * */ void select(MapEntity *entity); private: void resizeChildren(); int mapwidget_zoom; int dragstart_x; int dragstart_y; int center_x; int center_y; bool is_dragging; QList mapwidget_enties; }; } #endif // __INCLUDED_EDITOR_MAPWIDGET__