diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/itemamount.cpp | 6 | ||||
-rw-r--r-- | src/gui/itemamount.h | 6 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/gui/itemamount.cpp b/src/gui/itemamount.cpp index 03f1ae5f..e3891d29 100644 --- a/src/gui/itemamount.cpp +++ b/src/gui/itemamount.cpp @@ -74,6 +74,7 @@ ItemAmountWindow::ItemAmountWindow(Usage usage, Window *parent, Item *item, mItemAmountTextField = new IntTextField(1); mItemAmountTextField->setRange(1, mMax); mItemAmountTextField->setWidth(35); + mItemAmountTextField->addKeyListener(this); // Slider mItemAmountSlide = new Slider(1.0, mMax); @@ -174,6 +175,11 @@ void ItemAmountWindow::close() scheduleDelete(); } +void ItemAmountWindow::keyReleased(gcn::KeyEvent &keyEvent) +{ + mItemAmountSlide->setValue(mItemAmountTextField->getValue()); +} + void ItemAmountWindow::showWindow(Usage usage, Window *parent, Item *item, int maxRange) { diff --git a/src/gui/itemamount.h b/src/gui/itemamount.h index 1ae3f0d5..312b9fc3 100644 --- a/src/gui/itemamount.h +++ b/src/gui/itemamount.h @@ -24,6 +24,7 @@ #include "gui/widgets/window.h" +#include <guichan/keylistener.hpp> #include <guichan/actionlistener.hpp> class IntTextField; @@ -34,7 +35,8 @@ class Item; * * \ingroup Interface */ -class ItemAmountWindow : public Window, public gcn::ActionListener +class ItemAmountWindow : public Window, public gcn::ActionListener, + public gcn::KeyListener { public: enum Usage { @@ -60,6 +62,8 @@ class ItemAmountWindow : public Window, public gcn::ActionListener */ void close(); + void keyReleased(gcn::KeyEvent &keyEvent); + /** * Creates the dialog, or bypass it if there aren't enough items. */ |