/* client/playersettingsmenu.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_PLAYERSETTINGSMENU_H__ #define __INCLUDED_CLIENT_PLAYERSETTINGSMENU_H__ #include "ui/window.h" namespace ui { class Button; class ColorPicker; class IconButton; class InputBox; class Label; } namespace client { /** * @brief the player settings menu * */ class PlayerSettingsMenu : public ui::Window { public: /** * @brief default constructor * */ PlayerSettingsMenu(ui::Widget *parent = 0, const char *label = 0); /** * @brief default destructor * */ virtual ~PlayerSettingsMenu(); /** * @brief show window * */ virtual void show(); protected: /** * @brief emit event handler * */ virtual bool on_emit(ui::Widget *sender, const ui::Widget::Event event, void *data); /** * @brief resize event handler * */ virtual void resize(); private: /** * @brief refresh widget content * */ void refresh(); /** * @brief apply changes * */ void apply(); ui::Label *_titlelabel; ui::IconButton *_closebutton; ui::Widget *_frame; ui::Label *_playernamelabel; ui::InputBox *_playernameinput; ui::Label *_primarycolorlabel; ui::ColorPicker *_primarycolorpicker; ui::Label *_secondarycolorlabel; ui::ColorPicker *_secondarycolorpicker; ui::Button *_applybutton; ui::Button *_resetbutton; }; } #endif // __INCLUDED_CLIENT_PLAYERSETTINGSMENU_H__