summaryrefslogtreecommitdiff
path: root/src/gui/browserbox.cpp
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2008-02-12 10:59:11 +0000
committerBjørn Lindeijer <bjorn@lindeijer.nl>2008-02-12 10:59:11 +0000
commit915c9b4e7daf2f49c25e254b66ef6e53a9207b29 (patch)
treea5986e1c31ad77366b26a82c4568d9ef1d65ef19 /src/gui/browserbox.cpp
parent078a31f906b618c1526b98ba63043a2267a858c6 (diff)
downloadmana-client-915c9b4e7daf2f49c25e254b66ef6e53a9207b29.tar.gz
mana-client-915c9b4e7daf2f49c25e254b66ef6e53a9207b29.tar.bz2
mana-client-915c9b4e7daf2f49c25e254b66ef6e53a9207b29.tar.xz
mana-client-915c9b4e7daf2f49c25e254b66ef6e53a9207b29.zip
Merged revisions 3687-3688,3690 via svnmerge from
https://themanaworld.svn.sourceforge.net/svnroot/themanaworld/tmw/branches/0.0 ........ r3687 | crush_tmw | 2007-10-26 02:22:12 +0200 (Fri, 26 Oct 2007) | 1 line Added possibility of length limitation to browserbox and used it for the chatlog (length set by the config option "ChatLogLength"). ........ r3688 | crush_tmw | 2007-10-26 02:38:00 +0200 (Fri, 26 Oct 2007) | 1 line Removed some completely useless code from the chat class. ........ r3690 | crush_tmw | 2007-10-26 14:50:49 +0200 (Fri, 26 Oct 2007) | 1 line Implemented monster hurt sounds and added new sound effects by Cosmostrator. ........
Diffstat (limited to 'src/gui/browserbox.cpp')
-rw-r--r--src/gui/browserbox.cpp24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/gui/browserbox.cpp b/src/gui/browserbox.cpp
index 584f2911..61bc571b 100644
--- a/src/gui/browserbox.cpp
+++ b/src/gui/browserbox.cpp
@@ -32,7 +32,9 @@ BrowserBox::BrowserBox(unsigned int mode):
gcn::Widget(),
mMode(mode), mHighMode(UNDERLINE | BACKGROUND),
mOpaque(true),
- mUseLinksAndUserColors(true), mSelectedLink(-1)
+ mUseLinksAndUserColors(true),
+ mSelectedLink(-1),
+ mMaxRows(0)
{
setFocusable(true);
addMouseListener(this);
@@ -119,6 +121,12 @@ void BrowserBox::addRow(const std::string &row)
mTextRows.push_back(newRow);
+ //discard older rows when a row limit has been set
+ if (mMaxRows > 0)
+ {
+ while (mTextRows.size() > mMaxRows) mTextRows.pop_front();
+ }
+
// Auto size mode
if (mMode == AUTO_SIZE)
{
@@ -134,15 +142,16 @@ void BrowserBox::addRow(const std::string &row)
if (mMode == AUTO_WRAP)
{
- unsigned int i, j, y = 0;
+ unsigned int y = 0;
unsigned int nextChar;
char const *hyphen = "~";
int hyphenWidth = font->getWidth(hyphen);
int x = 0;
- for (i = 0; i < mTextRows.size(); i++)
+
+ for (TextRowIterator i = mTextRows.begin(); i != mTextRows.end(); i++)
{
- std::string row = mTextRows[i];
- for (j = 0; j < row.size(); j++)
+ std::string row = *i;
+ for (unsigned int j = 0; j < row.size(); j++)
{
std::string character = row.substr(j, 1);
x += font->getWidth(character);
@@ -256,17 +265,16 @@ BrowserBox::draw(gcn::Graphics *graphics)
}
}
- unsigned int i;
int x = 0, y = 0;
int wrappedLines = 0;
TrueTypeFont *font = static_cast<TrueTypeFont*>(getFont());
graphics->setColor(BLACK);
- for (i = 0; i < mTextRows.size(); i++)
+ for (TextRowIterator i = mTextRows.begin(); i != mTextRows.end(); i++)
{
int selColor = BLACK;
int prevColor = selColor;
- std::string row = mTextRows[i];
+ std::string row = *(i);
bool wrapped = false;
x = 0;