diff options
author | Ira Rice <irarice@gmail.com> | 2008-11-01 03:36:47 +0000 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2008-12-07 00:10:44 +0100 |
commit | 523eed88816298b1660ecb9e67db80776e4007bb (patch) | |
tree | a6a7a1022ae6f79dde3f370a19044669e9b13378 /src/gui/npc_text.cpp | |
parent | 84cfc5ac9929d2190d9fb19fa411b72d90bb2185 (diff) | |
download | mana-523eed88816298b1660ecb9e67db80776e4007bb.tar.gz mana-523eed88816298b1660ecb9e67db80776e4007bb.tar.bz2 mana-523eed88816298b1660ecb9e67db80776e4007bb.tar.xz mana-523eed88816298b1660ecb9e67db80776e4007bb.zip |
Made NPC dialogues resizeable.
(cherry picked from Aethyra commit 81299ca9acc39dec62e1e504781721ad0db0d471)
Conflicts:
src/gui/inventorywindow.cpp
src/gui/npc_text.cpp
Diffstat (limited to 'src/gui/npc_text.cpp')
-rw-r--r-- | src/gui/npc_text.cpp | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/src/gui/npc_text.cpp b/src/gui/npc_text.cpp index 3c4beaf3..ad2ccdce 100644 --- a/src/gui/npc_text.cpp +++ b/src/gui/npc_text.cpp @@ -32,10 +32,16 @@ NpcTextDialog::NpcTextDialog(): Window("NPC") { + setResizable(true); + + setMinWidth(200); + setMinHeight(150); + mTextBox = new TextBox; mTextBox->setEditable(false); - gcn::ScrollArea *scrollArea = new ScrollArea(mTextBox); - Button *okButton = new Button("OK", "ok", this); + + scrollArea = new ScrollArea(mTextBox); + okButton = new Button("OK", "ok", this); setContentSize(260, 175); scrollArea->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); @@ -55,13 +61,36 @@ NpcTextDialog::NpcTextDialog(): void NpcTextDialog::setText(const std::string &text) { - mTextBox->setTextWrapped(text); + mText = text; + draw(); } void NpcTextDialog::addText(const std::string &text) { - mTextBox->setTextWrapped(mTextBox->getText() + text + "\n"); + mText = mTextBox->getText() + text + "\n"; + draw(); +} + +void NpcTextDialog::widgetResized(const gcn::Event &event) +{ + Window::widgetResized(event); + draw(); +} + +void NpcTextDialog::draw() +{ + const gcn::Rectangle &area = getChildrenArea(); + const int width = area.width; + const int height = area.height; + + mTextBox->setTextWrapped(mText); + + scrollArea->setDimension(gcn::Rectangle( + 5, 5, width - 10, height - 15 - okButton->getHeight())); + okButton->setPosition( + width - 5 - okButton->getWidth(), + height - 5 - okButton->getHeight()); } void |