/* client/audiosettingsmenu.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_AUDIOSETTINGSMENU_H__ #define __INCLUDED_CLIENT_AUDIOSETTINGSMENU_H__ #include "ui/window.h" namespace ui { class Button; class Checkbox; class IconButton; class Label; class Slider; } namespace client { /** * @brief the audio settings menu * */ class AudioSettingsMenu : public ui::Window { public: /** * @brief default constructor * */ AudioSettingsMenu(ui::Widget *parent = 0, const char *label = 0); /** * @brief default destructor * */ virtual ~AudioSettingsMenu(); /** * @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 *_mastervolumelabel; ui::Slider *_mastervolumeslider; ui::Label *_enginevolumelabel; ui::Slider *_enginevolumeslider; ui::Label *_optionslabel; ui::Checkbox *_dopplercheckbox; ui::Button *_applybutton; ui::Button *_resetbutton; }; } #endif // __INCLUDED_CLIENT_AUDIOSETTINGSMENU_H__