summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-02-05 12:50:59 +0300
committerAndrei Karas <akaras@inbox.ru>2014-02-05 12:50:59 +0300
commitf677e2a536d84c1db5145db80b9e9a7540cfbb6d (patch)
tree878763f6bd9d39b7c1242f55bcd2126744888b1b
parent0b67538b1d403a14f4754aaa7fe3aabc098abe41 (diff)
downloadmanaplus-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.cpp37
-rw-r--r--src/gui/widgets/setupitem.h30
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