diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-02-05 12:50:59 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-02-05 12:50:59 +0300 |
commit | f677e2a536d84c1db5145db80b9e9a7540cfbb6d (patch) | |
tree | 878763f6bd9d39b7c1242f55bcd2126744888b1b | |
parent | 0b67538b1d403a14f4754aaa7fe3aabc098abe41 (diff) | |
download | manaplus-f677e2a536d84c1db5145db80b9e9a7540cfbb6d.tar.gz manaplus-f677e2a536d84c1db5145db80b9e9a7540cfbb6d.tar.bz2 manaplus-f677e2a536d84c1db5145db80b9e9a7540cfbb6d.tar.xz manaplus-f677e2a536d84c1db5145db80b9e9a7540cfbb6d.zip |
add slider list setup control for int value.
-rw-r--r-- | src/gui/widgets/setupitem.cpp | 37 | ||||
-rw-r--r-- | src/gui/widgets/setupitem.h | 30 |
2 files changed, 65 insertions, 2 deletions
diff --git a/src/gui/widgets/setupitem.cpp b/src/gui/widgets/setupitem.cpp index b9ea91f76..a34447516 100644 --- a/src/gui/widgets/setupitem.cpp +++ b/src/gui/widgets/setupitem.cpp @@ -1139,3 +1139,40 @@ void SetupItemSound::action(const gcn::ActionEvent &event) SetupItemSliderList::action(event); } } + +SetupItemSliderInt::SetupItemSliderInt(const std::string &restrict text, + const std::string &restrict description, + const std::string &restrict keyName, + SetupTabScroll *restrict const parent, + const std::string &restrict eventName, + gcn::ListModel *restrict const model, + const int min, + const int width, + const bool onTheFly, + const bool mainConfig) : + SetupItemSliderList(text, description, keyName, parent, eventName, + model, width, onTheFly, mainConfig), + mMin(min) +{ + createControls(); +} + +void SetupItemSliderInt::addMoreControls() +{ +} + +void SetupItemSliderInt::fromWidget() +{ + if (!mSlider) + return; + + mValue = toString(mSlider->getSelected() + mMin); +} + +void SetupItemSliderInt::toWidget() +{ + if (!mSlider) + return; + + mSlider->setSelected(atoi(mValue.c_str()) - mMin); +} diff --git a/src/gui/widgets/setupitem.h b/src/gui/widgets/setupitem.h index 689f62fdf..c72bb39ef 100644 --- a/src/gui/widgets/setupitem.h +++ b/src/gui/widgets/setupitem.h @@ -466,9 +466,9 @@ class SetupItemSliderList : public SetupItem void createControls(); - void fromWidget() override final; + void fromWidget() override; - void toWidget() override final; + void toWidget() override; virtual void action(const gcn::ActionEvent &event) override; @@ -528,4 +528,30 @@ class SetupItemSound final : public SetupItemSliderList Button *mButton; }; +class SetupItemSliderInt final : public SetupItemSliderList +{ + public: + SetupItemSliderInt(const std::string &restrict text, + const std::string &restrict description, + const std::string &restrict keyName, + SetupTabScroll *restrict const parent, + const std::string &restrict eventName, + gcn::ListModel *restrict const model, + const int min, + const int width = 150, + const bool onTheFly = false, + const bool mainConfig = true); + + A_DELETE_COPY(SetupItemSliderInt) + + void addMoreControls() override final; + + void fromWidget() override final; + + void toWidget() override final; + + protected: + int mMin; +}; + #endif // GUI_WIDGETS_SETUPITEM_H |