/* client/mapwindow.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_MAPWINDOW_H__ #define __INCLUDED_CLIENT_MAPWINDOW_H__ #include "core/entity.h" #include "core/info.h" #include "ui/iconbutton.h" #include "ui/label.h" #include "ui/modelview.h" #include "ui/scrollpane.h" #include "ui/window.h" #include "client/mapwidget.h" namespace client { class MapWindow : public ui::Window { public: MapWindow(ui::Widget *parent = 0); virtual ~MapWindow(); /// toggle the map window void toggle(); /// hide the map window virtual void hide(); /// show the map window virtual void show(); protected: /// called when the widget receives a key press virtual bool on_keypress(const int key, const unsigned int modifier); /// called if the widget receives an emit evet virtual bool on_emit(ui::Widget *sender, const ui::Widget::Event event, void *data); virtual void resize(); virtual void draw(); private: /// set the map target void set_target(const core::Entity *entity); ui::Label *mapwindow_titlelabel; MapWidget *mapwindow_mapwidget; ui::Label *mapwindow_maplabel; ui::ModelView *mapwindow_modelview; ui::Label *mapwindow_targetlabel; ui::ScrollPane *mapwindow_scrollpane; ui::IconButton *mapwindow_closebutton; const core::Entity *mapwindow_target; const core::Info *mapwindow_inforecord; unsigned long mapwindow_infotimestamp; ui::Text mapwindow_infotext; }; // class MapWindow } // namespace client #endif // __INCLUDED_CLIENT_MAPWINDOW_H__