Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2010-09-20 16:30:45 +0000
committerStijn Buys <ingar@osirion.org>2010-09-20 16:30:45 +0000
commite40f70a3af1142e6c0c89c6ea2ee47b996495661 (patch)
treeba70a909b5066ad0e07e2f4eb8bc98684e4598e6 /src/ui/slider.h
parente8f7c4a06fce9e41fb23ffc42a566501a78210cb (diff)
corrected trading inconsistencies, improved trade window, initial slider widget
Diffstat (limited to 'src/ui/slider.h')
-rw-r--r--src/ui/slider.h101
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__
+