/* client/controlsettingsmenu.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_CONTROLSETTINGSMENU_H__ #define __INCLUDED_CLIENT_CONTROLSETTINGSMENU_H__ #include "ui/window.h" namespace ui { class Label; class ListView; class IconButton; } namespace client { class ControlKeyWindow; /** * @brief the input control settings menu * */ class ControlSettingsMenu : public ui::Window { public: /** * @brief default constructor * */ ControlSettingsMenu(ui::Widget *parent = 0, const char *label = 0); /** * @brief default destructor * */ virtual ~ControlSettingsMenu(); /** * @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::ListView *_controlslistview; ControlKeyWindow *_controlkeywindow; }; } #endif // __INCLUDED_CLIENT_CONTROLSETTINGSMENU_H__