From b6e20e04b519e50909331f537df2ea6114a137ee Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 23 Jul 2016 19:16:28 +0200 Subject: General ui code improvements, moved layout related variables to ui::UI, added ColorPicker widget. --- src/ui/colorpicker.h | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/ui/colorpicker.h (limited to 'src/ui/colorpicker.h') diff --git a/src/ui/colorpicker.h b/src/ui/colorpicker.h new file mode 100644 index 0000000..e2c0cb5 --- /dev/null +++ b/src/ui/colorpicker.h @@ -0,0 +1,71 @@ +/* + ui/colorpicker.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_UI_COLORPICKER_H__ +#define __INCLUDED_UI_COLORPICKER_H__ + +#include "ui/widget.h" + +namespace ui +{ + +class Bitmap; +class Label; +class Slider; + +class ColorPicker : public Widget +{ +public: + ColorPicker(Widget *parent); + ~ColorPicker(); + + /** + * @brief current selected color + * */ + inline const math::Color color() const { + return _color; + } + + /** + * @brief set selected color + * */ + void set_color(const math::Color & color); + + /** + * @brief set selected color + * */ + void set_color(const float r, const float g, const float b); + +protected: + /// resize event handler + virtual void resize(); + + /** + * @brief emit event handler + * */ + virtual bool on_emit(ui::Widget *sender, const ui::Widget::Event event, void *data); + + +private: + void color_changed(); + + Label *_label_red; + Slider *_slider_red; + + Label *_label_green; + Slider *_slider_green; + + Label *_label_blue; + Slider *_slider_blue; + + Bitmap *_color_preview; + + math::Color _color; +}; + +} + +#endif // __INCLUDED_UI_COLORPICKER_H__ -- cgit v1.2.3