/* client/hud.h This file is part of the Osirion project and is distributed under the terms and conditions of the GNU General Public License version 2 */ #ifndef __INCLUDED_CLIENT_HUD_H__ #define __INCLUDED_CLIENT_HUD_H__ #include "core/gameinterface.h" #include "ui/bitmap.h" #include "ui/toolbar.h" #include "ui/widget.h" namespace client { /// widget that contains HUD elements /** * The contains all user interface elements * that are only visible if the client is connected * and the core is running an interactive module **/ class HUD : public ui::Widget { public: /// create a new HUD widget HUD(ui::Widget *parent = 0); protected: /// draw hud elements virtual void draw(); /// rearrange child widgets virtual void resize(); /// receive keyboard events virtual bool on_keypress(const int key, const unsigned int modifier); private: void draw_offscreen_target(core::Entity *entity, bool is_active_target); void draw_target(core::Entity *entity, bool is_active_target); ui::Bitmap *hud_center; ui::Toolbar *hud_toolbar; }; } #endif // __INCLUDED_CLIENT_HUD_H__