summaryrefslogtreecommitdiff
path: root/src/gui/npcintegerdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/npcintegerdialog.cpp')
-rw-r--r--src/gui/npcintegerdialog.cpp62
1 files changed, 24 insertions, 38 deletions
diff --git a/src/gui/npcintegerdialog.cpp b/src/gui/npcintegerdialog.cpp
index f5b6ac5b..75dd52c8 100644
--- a/src/gui/npcintegerdialog.cpp
+++ b/src/gui/npcintegerdialog.cpp
@@ -25,7 +25,7 @@
#include <sstream>
#include "button.h"
-#include "textfield.h"
+#include "inttextfield.h"
#include "../npc.h"
@@ -39,18 +39,25 @@ NpcIntegerDialog::NpcIntegerDialog():
{
mDecButton = new Button("-", "decvalue", this);
mIncButton = new Button("+", "incvalue", this);
- mValueField = new TextField();
+ mValueField = new IntTextField();
okButton = new Button(_("OK"), "ok", this);
cancelButton = new Button(_("Cancel"), "cancel", this);
+ resetButton = new Button(_("Reset"), "reset", this);
mDecButton->setSize(20, 20);
mIncButton->setSize(20, 20);
+ ContainerPlacer place;
+ place = getPlacer(0, 0);
+
place(0, 0, mDecButton);
place(1, 0, mValueField, 3);
place(4, 0, mIncButton);
- place(2, 1, okButton);
- place(3, 1, cancelButton, 2);
+ place.getCell().matchColWidth(1, 0);
+ place = getPlacer(0, 1);
+ place(0, 0, resetButton);
+ place(2, 0, cancelButton);
+ place(3, 0, okButton);
reflowLayout(175, 0);
setLocationRelativeTo(getParent());
@@ -59,19 +66,14 @@ NpcIntegerDialog::NpcIntegerDialog():
mValueField->addKeyListener(this);
}
-void NpcIntegerDialog::prepDialog(const int min, const int def, const int max)
+void NpcIntegerDialog::setRange(const int min, const int max)
{
- mMin = min;
- mMax = max;
- mDefault = def;
- mValue = def;
-
- mValueField->setText(toString(mValue));
+ mValueField->setRange(min, max);
}
int NpcIntegerDialog::getValue()
{
- return mValue;
+ return mValueField->getValue();
}
void NpcIntegerDialog::action(const gcn::ActionEvent &event)
@@ -85,41 +87,25 @@ void NpcIntegerDialog::action(const gcn::ActionEvent &event)
else if (event.getId() == "cancel")
{
finish = 1;
- mValue = mDefault;
+ mValueField->reset();
}
- else if (event.getId() == "decvalue" && mValue < mMin)
+ else if (event.getId() == "decvalue")
{
- mValue--;
+ mValueField->setValue(mValueField->getValue() - 1);
}
- else if (event.getId() == "incvalue" && mValue > mMax)
+ else if (event.getId() == "incvalue")
{
- mValue++;
+ mValueField->setValue(mValueField->getValue() + 1);
+ }
+ else if (event.getId() == "reset")
+ {
+ mValueField->reset();
}
-
- mValueField->setText(toString(mValue));
if (finish)
{
setVisible(false);
- current_npc->integerInput(mValue);
+ current_npc->integerInput(mValueField->getValue());
current_npc = 0;
}
}
-
-void NpcIntegerDialog::keyPressed(gcn::KeyEvent &event)
-{
- std::stringstream tempValue(mValueField->getText());
- int value;
- tempValue >> value;
- if (value < mMin)
- {
- value = mMin;
- }
- if (value > mMax)
- {
- value = mMax;
- }
-
- mValue = value;
- mValueField->setText(toString(value));
-}