/* 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" #include "client/galaxymapwidget.h" namespace client { class MapWindow : public ui::Window { public: enum Mode { ShowZone = 0, ShowWorld = 1 }; MapWindow(ui::Widget *parent = 0); virtual ~MapWindow(); /// 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: /// show zone information void show_zone_info(const core::Zone *zone); /// show target entity information void show_entity_info(const core::Entity *entity); /// update inforecord textpane void set_info(const core::Info *info); ui::Label *mapwindow_titlelabel; ui::Widget *mapwindow_pane_left; ui::Widget *mapwindow_pane_right; MapWidget *mapwindow_mapwidget; GalaxyMapWidget *mapwindow_galaxymapwidget; ui::Label *mapwindow_maplabel; ui::ModelView *mapwindow_modelview; ui::Label *mapwindow_targetlabel; ui::Label *mapwindow_infolabel; ui::ScrollPane *mapwindow_scrollpane; ui::IconButton *mapwindow_closebutton; ui::IconButton *mapwindow_zonebutton; ui::IconButton *mapwindow_galaxybutton; const core::Info *mapwindow_inforecord; unsigned long mapwindow_infotimestamp; ui::Text mapwindow_infotext; Mode mapwindow_mode; }; // class MapWindow } // namespace client #endif // __INCLUDED_CLIENT_MAPWINDOW_H__