00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef SPIN_BUTTON_H
00023 #define SPIN_BUTTON_H
00024
00025 #include "../include/base.h"
00026 #include "../graphic/text.h"
00027 #include "widget.h"
00028 #include "button.h"
00029 #include <string>
00030
00031 class SpinButton : public Widget
00032 {
00033 private:
00034 bool shadowed;
00035
00036 Text *txt_label, *txt_value;
00037
00038 int m_value;
00039 int m_min_value, m_max_value, m_step;
00040 Button *m_plus, *m_minus;
00041
00042 public:
00043 SpinButton(const std::string &label, const Rectanglei &rect,
00044 int value=0, int step=1, int min_value=-1, int max_value=-1,
00045 const Color& color = white_color, bool shadowed = true);
00046 virtual ~SpinButton();
00047
00048 void SetSizePosition(const Rectanglei &rect);
00049
00050 void Draw(const Point2i &mousePosition, Surface& surf) const;
00051 Widget* Clic(const Point2i &mousePosition, uint button);
00052 int GetValue() const;
00053 void SetValue(int value);
00054 };
00055
00056 #endif
00057