summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2009-01-20 10:09:59 +0000
committerJared Adams <jaxad0127@gmail.com>2009-01-20 10:09:59 +0000
commit4c2cabced8943dea1f5b1209381aeaa174b62657 (patch)
treed241c85dd08b1e7f4da18bba1e078cd2b49bf4dd
parent3fcd3755f5c5d23af31e081c59275ef94cb4e036 (diff)
downloadmana-4c2cabced8943dea1f5b1209381aeaa174b62657.tar.gz
mana-4c2cabced8943dea1f5b1209381aeaa174b62657.tar.bz2
mana-4c2cabced8943dea1f5b1209381aeaa174b62657.tar.xz
mana-4c2cabced8943dea1f5b1209381aeaa174b62657.zip
Switch the NPC text dialog over to a BrowserBox
-rw-r--r--src/gui/npc_text.cpp26
-rw-r--r--src/gui/npc_text.h11
2 files changed, 21 insertions, 16 deletions
diff --git a/src/gui/npc_text.cpp b/src/gui/npc_text.cpp
index c9ace303..259678ab 100644
--- a/src/gui/npc_text.cpp
+++ b/src/gui/npc_text.cpp
@@ -23,9 +23,9 @@
#include <string>
-#include "scrollarea.h"
+#include "browserbox.h"
#include "button.h"
-#include "textbox.h"
+#include "scrollarea.h"
#include "../npc.h"
@@ -39,10 +39,10 @@ NpcTextDialog::NpcTextDialog():
setMinWidth(200);
setMinHeight(150);
- mTextBox = new TextBox;
- mTextBox->setEditable(false);
+ mBrowserBox = new BrowserBox(BrowserBox::AUTO_WRAP);
+ mBrowserBox->setOpaque(true);
- scrollArea = new ScrollArea(mTextBox);
+ scrollArea = new ScrollArea(mBrowserBox);
okButton = new Button(_("OK"), "ok", this);
setContentSize(260, 175);
@@ -60,15 +60,20 @@ NpcTextDialog::NpcTextDialog():
setLocationRelativeTo(getParent());
}
+void NpcTextDialog::clearText()
+{
+ mBrowserBox->clearRows();
+}
+
void NpcTextDialog::setText(const std::string &text)
{
- mText = text;
- mTextBox->setTextWrapped(mText);
+ mBrowserBox->clearRows();
+ mBrowserBox->addRow(text);
}
void NpcTextDialog::addText(const std::string &text)
{
- setText(mText + text + "\n");
+ mBrowserBox->addRow(text);
}
void NpcTextDialog::widgetResized(const gcn::Event &event)
@@ -84,16 +89,13 @@ void NpcTextDialog::widgetResized(const gcn::Event &event)
okButton->setPosition(
width - 5 - okButton->getWidth(),
height - 5 - okButton->getHeight());
-
- // Set the text again so that it gets wrapped according to the new size
- mTextBox->setTextWrapped(mText);
}
void NpcTextDialog::action(const gcn::ActionEvent &event)
{
if (event.getId() == "ok")
{
- setText("");
+ clearText();
setVisible(false);
if (current_npc)
current_npc->nextDialog();
diff --git a/src/gui/npc_text.h b/src/gui/npc_text.h
index b6eccf95..39a8e535 100644
--- a/src/gui/npc_text.h
+++ b/src/gui/npc_text.h
@@ -27,7 +27,7 @@
#include "window.h"
-class TextBox;
+class BrowserBox;
/**
* The npc text dialog.
@@ -57,6 +57,11 @@ class NpcTextDialog : public Window, public gcn::ActionListener
void action(const gcn::ActionEvent &event);
/**
+ * Clears the text shown in the dialog.
+ */
+ void clearText();
+
+ /**
* Sets the text shows in the dialog.
*
* @param string The new text.
@@ -74,9 +79,7 @@ class NpcTextDialog : public Window, public gcn::ActionListener
private:
gcn::Button *okButton;
gcn::ScrollArea *scrollArea;
- TextBox *mTextBox;
-
- std::string mText;
+ BrowserBox *mBrowserBox;
};
#endif // _TMW_NPC_TEXT_H