diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-07-25 19:07:05 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-07-25 19:07:05 +0300 |
commit | edb0646b314e5a65b0a6ddc3cfb09d46ca951589 (patch) | |
tree | 8c42fc4cfda437b8ed5a39e174c2a9a9bca4cc1f /src/gui/windows/statuswindow.cpp | |
parent | f9da6e607bb75b74099b536e0bd4db83dc0a2ced (diff) | |
download | mv-edb0646b314e5a65b0a6ddc3cfb09d46ca951589.tar.gz mv-edb0646b314e5a65b0a6ddc3cfb09d46ca951589.tar.bz2 mv-edb0646b314e5a65b0a6ddc3cfb09d46ca951589.tar.xz mv-edb0646b314e5a65b0a6ddc3cfb09d46ca951589.zip |
Move changedisplay class into separate file.
Diffstat (limited to 'src/gui/windows/statuswindow.cpp')
-rw-r--r-- | src/gui/windows/statuswindow.cpp | 83 |
1 files changed, 1 insertions, 82 deletions
diff --git a/src/gui/windows/statuswindow.cpp b/src/gui/windows/statuswindow.cpp index 676e7bfc2..c756f474a 100644 --- a/src/gui/windows/statuswindow.cpp +++ b/src/gui/windows/statuswindow.cpp @@ -41,11 +41,11 @@ #include "gui/widgets/layouttype.h" #include "gui/widgets/progressbar.h" #include "gui/widgets/scrollarea.h" -#include "gui/widgets/statuswindowattrs.h" #include "gui/widgets/vertcontainer.h" #include "gui/widgets/windowcontainer.h" #include "gui/widgets/attrs/attrdisplay.h" +#include "gui/widgets/attrs/changedisplay.h" #include "gui/widgets/attrs/derdisplay.h" #include "net/inventoryhandler.h" @@ -714,84 +714,3 @@ void StatusWindow::action(const ActionEvent &event) chatWindow->addInputText(str); } } - -ChangeDisplay::ChangeDisplay(const Widget2 *const widget, - const AttributesT id, - const std::string &restrict name, - const std::string &restrict shortName) : - AttrDisplay(widget, id, name, shortName), - ActionListener(), - mNeeded(1), - // TRANSLATORS: status window label - mPoints(new Label(this, _("Max"))), - // TRANSLATORS: status window label (plus sign) - mInc(new Button(this, _("+"), "inc", this)) -{ - // Do the layout - ContainerPlacer place = mLayout->getPlacer(0, 0); - - place(0, 0, mLabel, 3); - place(4, 0, mValue, 2); - place(6, 0, mInc); - place(7, 0, mPoints); -} - -std::string ChangeDisplay::update() -{ - if (mNeeded > 0) - { - mPoints->setCaption(toString(mNeeded)); - } - else - { - // TRANSLATORS: status bar label - mPoints->setCaption(_("Max")); - } - - mInc->setEnabled(PlayerInfo::getAttribute(Attributes::PLAYER_CHAR_POINTS) - >= mNeeded && mNeeded > 0); - - return AttrDisplay::update(); -} - -void ChangeDisplay::setPointsNeeded(const int needed) -{ - mNeeded = needed; - update(); -} - -void ChangeDisplay::action(const ActionEvent &event) -{ - if (event.getSource() == mInc) - { - int cnt = 1; - if (config.getBoolValue("quickStats")) - { - cnt = mInc->getClickCount(); - if (cnt > 10) - cnt = 10; - } - - const int newpoints = PlayerInfo::getAttribute( - Attributes::PLAYER_CHAR_POINTS) - cnt; - PlayerInfo::setAttribute(Attributes::PLAYER_CHAR_POINTS, - newpoints); - - const int newbase = PlayerInfo::getStatBase(mId) + cnt; - PlayerInfo::setStatBase(mId, newbase); - - if (serverFeatures->haveMultyStatusUp()) - { - playerHandler->increaseAttribute(mId, cnt); - } - else - { - for (int f = 0; f < cnt; f ++) - { - playerHandler->increaseAttribute(mId, 1); - if (cnt != 1) - SDL_Delay(100); - } - } - } -} |