summaryrefslogtreecommitdiff
path: root/src/gui/inttextbox.cpp
diff options
context:
space:
mode:
authorAaron Marks <nymacro@gmail.com>2005-06-03 03:15:37 +0000
committerAaron Marks <nymacro@gmail.com>2005-06-03 03:15:37 +0000
commitf4bab20b13d4b11522171b21b35d26ee43727206 (patch)
tree86ac021f074599f6d44779ba0a9656543d098cd9 /src/gui/inttextbox.cpp
parentd7414de0f52f45b0b05d3ca99e85e31d17669e65 (diff)
downloadmana-f4bab20b13d4b11522171b21b35d26ee43727206.tar.gz
mana-f4bab20b13d4b11522171b21b35d26ee43727206.tar.bz2
mana-f4bab20b13d4b11522171b21b35d26ee43727206.tar.xz
mana-f4bab20b13d4b11522171b21b35d26ee43727206.zip
Added IntTextBox class (a TextBox which only accepts integers).
Changed passive label in drop item dialog to IntTextBox.
Diffstat (limited to 'src/gui/inttextbox.cpp')
-rw-r--r--src/gui/inttextbox.cpp76
1 files changed, 76 insertions, 0 deletions
diff --git a/src/gui/inttextbox.cpp b/src/gui/inttextbox.cpp
new file mode 100644
index 00000000..e28040d2
--- /dev/null
+++ b/src/gui/inttextbox.cpp
@@ -0,0 +1,76 @@
+/*
+ * The Mana World
+ * Copyright 2004 The Mana World Development Team
+ *
+ * This file is part of The Mana World.
+ *
+ * The Mana World is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * The Mana World is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with The Mana World; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * $Id$
+ */
+
+#include "inttextbox.h"
+
+IntTextBox::IntTextBox()
+ : value(0)
+{
+}
+
+IntTextBox::IntTextBox(int i)
+ : value(i)
+{
+}
+
+void IntTextBox::keyPress(const gcn::Key &key)
+{
+ if (key.isNumber() || key.getValue() == gcn::Key::BACKSPACE
+ || key.getValue() == gcn::Key::DELETE)
+ {
+ gcn::TextBox::keyPress(key);
+ }
+
+ std::stringstream s;
+ int i;
+ s << gcn::TextBox::getText();
+ s >> i;
+ if (gcn::TextBox::getText() != "")
+ setInt(i);
+}
+
+void IntTextBox::setRange(int minValue, int maxValue)
+{
+ min = minValue;
+ max = maxValue;
+}
+
+int IntTextBox::getInt()
+{
+ if (gcn::TextBox::getText() == "")
+ return 0;
+ return value;
+}
+
+void IntTextBox::setInt(int i)
+{
+ std::stringstream s;
+
+ if (i >= min && i <= max)
+ value = i;
+ s << value;
+ setText(s.str());
+ setCaretPosition(s.str().length() + 1);
+}
+
+