diff options
author | Stijn Buys <ingar@osirion.org> | 2010-09-20 16:30:45 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2010-09-20 16:30:45 +0000 |
commit | e40f70a3af1142e6c0c89c6ea2ee47b996495661 (patch) | |
tree | ba70a909b5066ad0e07e2f4eb8bc98684e4598e6 /src/ui/slider.h | |
parent | e8f7c4a06fce9e41fb23ffc42a566501a78210cb (diff) |
corrected trading inconsistencies, improved trade window, initial slider widget
Diffstat (limited to 'src/ui/slider.h')
-rw-r--r-- | src/ui/slider.h | 101 |
1 files changed, 101 insertions, 0 deletions
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 <string> +#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__ + |