From e40f70a3af1142e6c0c89c6ea2ee47b996495661 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Mon, 20 Sep 2010 16:30:45 +0000 Subject: corrected trading inconsistencies, improved trade window, initial slider widget --- src/ui/slider.h | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/ui/slider.h (limited to 'src/ui/slider.h') diff --git a/src/ui/slider.h b/src/ui/slider.h new file mode 100644 index 0000000..8bcb427 --- /dev/null +++ b/src/ui/slider.h @@ -0,0 +1,101 @@ +/* + ui/slider.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_SLIDER_H__ +#define __INCLUDED_UI_SLIDER_H__ + +#include +#include "ui/button.h" +#include "ui/widget.h" + +namespace ui +{ + +/** + * @brief a slider widget + */ +class Slider : public Widget +{ +public: + Slider(Widget *parent, const float minimum = 0.0f, const float maximum = 1.0f); + ~Slider(); + + /** + * @brief the current slider value + */ + inline const float value() const { + return slider_value; + } + + /** + * @brief the minimum value + */ + inline const float minimum() const { + return slider_minimum; + } + + /** + * @brief the maximum value + */ + inline const float maximum() const { + return slider_maximum; + } + + /** + * @brief print widget description to console + */ + virtual void print(const size_t indent) const; + + /** + * @brief set the current slider value + * @see value + */ + void set_value(const float value); + + /** + * @brief set the minimum slider value + * @see minimum + */ + void set_minimum(const float minimum); + + /** + * @brief set the maximum slider value + * @see maximum + */ + void set_maximum(const float maximum); + + /** + * @brief set the minimum and maximum slider values + * @see minimum + * @see maximum + */ + void set_range(const float minimum, const float maximum); + +protected: + /// resize event handler + virtual void resize(); + + /// draw event handler + virtual void draw(); + + virtual bool on_emit(Widget *sender, const Event event, void *data=0); + +private: + /// validate slider value + void validate(); + + float slider_minimum; + float slider_maximum; + float slider_value; + + Button *slider_minbutton; + Button *slider_maxbutton; +}; + +} + +#endif // __INCLUDED_UI_SLIDER_H__ + -- cgit v1.2.3