summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/npc_text.cpp7
-rw-r--r--src/gui/npc_text.h2
-rw-r--r--src/gui/npcintegerdialog.h2
-rw-r--r--src/gui/npclistdialog.h2
-rw-r--r--src/gui/npcstringdialog.h2
-rw-r--r--src/gui/textbox.cpp32
-rw-r--r--src/gui/viewport.cpp29
7 files changed, 46 insertions, 30 deletions
diff --git a/src/gui/npc_text.cpp b/src/gui/npc_text.cpp
index ed75b76e..0b7592c7 100644
--- a/src/gui/npc_text.cpp
+++ b/src/gui/npc_text.cpp
@@ -73,11 +73,16 @@ void NpcTextDialog::addText(const std::string &text)
setText(mText + text + "\n");
}
+void NpcTextDialog::clearText()
+{
+ setText("");
+}
+
void NpcTextDialog::action(const gcn::ActionEvent &event)
{
if (event.getId() == "ok")
{
- setText("");
+ clearText();
setVisible(false);
if (current_npc)
diff --git a/src/gui/npc_text.h b/src/gui/npc_text.h
index 5e2ff118..63d41cd6 100644
--- a/src/gui/npc_text.h
+++ b/src/gui/npc_text.h
@@ -87,4 +87,6 @@ class NpcTextDialog : public Window, public gcn::ActionListener
std::string mText;
};
+extern NpcTextDialog *npcTextDialog;
+
#endif // NPC_TEXT_H
diff --git a/src/gui/npcintegerdialog.h b/src/gui/npcintegerdialog.h
index 858bce5b..a4ca33cf 100644
--- a/src/gui/npcintegerdialog.h
+++ b/src/gui/npcintegerdialog.h
@@ -81,4 +81,6 @@ class NpcIntegerDialog : public Window, public gcn::ActionListener
gcn::Button *resetButton;
};
+extern NpcIntegerDialog *npcIntegerDialog;
+
#endif // GUI_NPCINTEGERDIALOG_H
diff --git a/src/gui/npclistdialog.h b/src/gui/npclistdialog.h
index 8d8b6545..a30bec28 100644
--- a/src/gui/npclistdialog.h
+++ b/src/gui/npclistdialog.h
@@ -82,4 +82,6 @@ class NpcListDialog : public Window, public gcn::ActionListener,
std::vector<std::string> mItems;
};
+extern NpcListDialog *npcListDialog;
+
#endif // GUI_NPCLISTDIALOG_H
diff --git a/src/gui/npcstringdialog.h b/src/gui/npcstringdialog.h
index 71d1f15c..c8871184 100644
--- a/src/gui/npcstringdialog.h
+++ b/src/gui/npcstringdialog.h
@@ -75,4 +75,6 @@ class NpcStringDialog : public Window, public gcn::ActionListener
gcn::Button *cancelButton;
};
+extern NpcStringDialog *npcStringDialog;
+
#endif // GUI_NPCSTRINGDIALOG_H
diff --git a/src/gui/textbox.cpp b/src/gui/textbox.cpp
index dc94ead2..589986cd 100644
--- a/src/gui/textbox.cpp
+++ b/src/gui/textbox.cpp
@@ -38,52 +38,46 @@ void TextBox::setTextWrapped(const std::string &text, int minDimension)
{
// Make sure parent scroll area sets width of this widget
if (getParent())
- {
getParent()->logic();
- }
// Take the supplied minimum dimension as a starting point and try to beat it
mMinWidth = minDimension;
std::stringstream wrappedStream;
- std::string::size_type newlinePos, lastNewlinePos = 0;
+ std::string::size_type spacePos, newlinePos, lastNewlinePos = 0;
int minWidth = 0;
int xpos;
+ spacePos = text.rfind(" ", text.size());
+
+ if (spacePos != std::string::npos)
+ {
+ const std::string word = text.substr(spacePos + 1);
+ const int length = getFont()->getWidth(word);
+
+ if (length > mMinWidth)
+ mMinWidth = length;
+ }
+
do
{
// Determine next piece of string to wrap
newlinePos = text.find("\n", lastNewlinePos);
if (newlinePos == std::string::npos)
- {
newlinePos = text.size();
- }
std::string line =
text.substr(lastNewlinePos, newlinePos - lastNewlinePos);
- std::string::size_type spacePos, lastSpacePos = 0;
+ std::string::size_type lastSpacePos = 0;
xpos = 0;
- spacePos = text.rfind(" ", text.size());
-
- if (spacePos != std::string::npos)
- {
- const std::string word = text.substr(spacePos + 1);
- const int length = getFont()->getWidth(word);
-
- if (length > mMinWidth)
- mMinWidth = length;
- }
-
do
{
spacePos = line.find(" ", lastSpacePos);
if (spacePos == std::string::npos)
- {
spacePos = line.size();
- }
std::string word =
line.substr(lastSpacePos, spacePos - lastSpacePos);
diff --git a/src/gui/viewport.cpp b/src/gui/viewport.cpp
index 9a7f6173..f655888c 100644
--- a/src/gui/viewport.cpp
+++ b/src/gui/viewport.cpp
@@ -111,19 +111,23 @@ void Viewport::draw(gcn::Graphics *gcnGraphics)
{
if (player_x > mPixelViewX + mScrollRadius)
{
- mPixelViewX += (player_x - mPixelViewX - mScrollRadius) / mScrollLaziness;
+ mPixelViewX += (player_x - mPixelViewX - mScrollRadius) /
+ mScrollLaziness;
}
if (player_x < mPixelViewX - mScrollRadius)
{
- mPixelViewX += (player_x - mPixelViewX + mScrollRadius) / mScrollLaziness;
+ mPixelViewX += (player_x - mPixelViewX + mScrollRadius) /
+ mScrollLaziness;
}
if (player_y > mPixelViewY + mScrollRadius)
{
- mPixelViewY += (player_y - mPixelViewY - mScrollRadius) / mScrollLaziness;
+ mPixelViewY += (player_y - mPixelViewY - mScrollRadius) /
+ mScrollLaziness;
}
if (player_y < mPixelViewY - mScrollRadius)
{
- mPixelViewY += (player_y - mPixelViewY + mScrollRadius) / mScrollLaziness;
+ mPixelViewY += (player_y - mPixelViewY + mScrollRadius) /
+ mScrollLaziness;
}
lastTick++;
}
@@ -166,8 +170,8 @@ void Viewport::draw(gcn::Graphics *gcnGraphics)
{
mMap->draw(graphics, (int) mPixelViewX, (int) mPixelViewY);
- // Find a path from the player to the mouse, and draw it. This is for debug
- // purposes.
+ // Find a path from the player to the mouse, and draw it. This is for
+ // debug purposes.
if (mShowDebugPath)
{
// Get the current mouse position
@@ -177,7 +181,8 @@ void Viewport::draw(gcn::Graphics *gcnGraphics)
int mouseTileX = mouseX / 32 + mTileViewX;
int mouseTileY = mouseY / 32 + mTileViewY;
- Path debugPath = mMap->findPath(player_node->mX, player_node->mY, mouseTileX, mouseTileY);
+ Path debugPath = mMap->findPath(player_node->mX, player_node->mY,
+ mouseTileX, mouseTileY);
graphics->setColor(gcn::Color(255, 0, 0));
for (PathIterator i = debugPath.begin(); i != debugPath.end(); i++)
@@ -186,7 +191,9 @@ void Viewport::draw(gcn::Graphics *gcnGraphics)
int squareY = i->y * 32 - (int) mPixelViewY + 12;
graphics->fillRectangle(gcn::Rectangle(squareX, squareY, 8, 8));
- graphics->drawText(toString(mMap->getMetaTile(i->x, i->y)->Gcost), squareX + 4, squareY + 12, gcn::Graphics::CENTER);
+ graphics->drawText(toString(mMap->getMetaTile(i->x, i->y)->Gcost),
+ squareX + 4, squareY + 12,
+ gcn::Graphics::CENTER);
}
}
}
@@ -300,10 +307,12 @@ void Viewport::mousePressed(gcn::MouseEvent &event)
if (being->mAction == Being::DEAD)
break;
- if (player_node->withinAttackRange(being) || keyboard.isKeyActive(keyboard.KEY_ATTACK))
+ if (player_node->withinAttackRange(being) ||
+ keyboard.isKeyActive(keyboard.KEY_ATTACK))
{
player_node->setGotoTarget(being);
- player_node->attack(being, !keyboard.isKeyActive(keyboard.KEY_TARGET));
+ player_node->attack(being,
+ !keyboard.isKeyActive(keyboard.KEY_TARGET));
}
else
{