summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-05-27 14:36:42 +0300
committerAndrei Karas <akaras@inbox.ru>2015-05-27 14:36:42 +0300
commitd9afcb2f48bebddf25c80a8489cd4041ddb7c8b5 (patch)
tree77f59fea4eeada230461e4b75aaf3ea43c3a897d
parentc6878ccb7ea621931bc500cd4e645a483c093451 (diff)
downloadmanaverse-d9afcb2f48bebddf25c80a8489cd4041ddb7c8b5.tar.gz
manaverse-d9afcb2f48bebddf25c80a8489cd4041ddb7c8b5.tar.bz2
manaverse-d9afcb2f48bebddf25c80a8489cd4041ddb7c8b5.tar.xz
manaverse-d9afcb2f48bebddf25c80a8489cd4041ddb7c8b5.zip
Improve a bit avatarlistbox.
-rw-r--r--src/gui/widgets/avatarlistbox.cpp48
1 files changed, 25 insertions, 23 deletions
diff --git a/src/gui/widgets/avatarlistbox.cpp b/src/gui/widgets/avatarlistbox.cpp
index 4e0fbb287..7bbaf5196 100644
--- a/src/gui/widgets/avatarlistbox.cpp
+++ b/src/gui/widgets/avatarlistbox.cpp
@@ -117,14 +117,15 @@ void AvatarListBox::draw(Graphics *graphics)
updateAlpha();
Font *const font = getFont();
- const int fontHeight = getFont()->getHeight();
+ const int fontHeight = font->getHeight();
+ const int parentWidth = parent->getWidth();
const std::string &name = localPlayer->getName();
// Draw the list elements
ImageCollection vertexes;
-
+ const int num = model->getNumberOfElements();
for (int i = 0, y = 0;
- i < model->getNumberOfElements();
+ i < num;
++i, y += fontHeight)
{
const Avatar *const a = model->getAvatarAt(i);
@@ -150,7 +151,7 @@ void AvatarListBox::draw(Graphics *graphics)
graphics->drawTileCollection(&vertexes);
for (int i = 0, y = 0;
- i < model->getNumberOfElements();
+ i < num;
++i, y += fontHeight)
{
const Avatar *const a = model->getAvatarAt(i);
@@ -184,7 +185,7 @@ void AvatarListBox::draw(Graphics *graphics)
color.a = 80;
graphics->setColor(color);
graphics->fillRectangle(Rect(mPadding, y + mPadding,
- parent->getWidth() * a->getHp() / a->getMaxHp()
+ parentWidth * a->getHp() / a->getMaxHp()
- 2 * mPadding, fontHeight));
}
}
@@ -207,7 +208,7 @@ void AvatarListBox::draw(Graphics *graphics)
color.a = 80;
graphics->setColor(color);
graphics->fillRectangle(Rect(mPadding, y + mPadding,
- parent->getWidth() * a->getDamageHp() / 1024
+ parentWidth * a->getDamageHp() / 1024
- 2 * mPadding, fontHeight));
if (a->getLevel() > 1)
@@ -217,9 +218,9 @@ void AvatarListBox::draw(Graphics *graphics)
if (minHp < 0)
minHp = 40;
- graphics->drawLine(parent->getWidth()*minHp / 1024
+ graphics->drawLine(parentWidth * minHp / 1024
+ mPadding, y + mPadding,
- parent->getWidth() * minHp / 1024, y + fontHeight);
+ parentWidth * minHp / 1024, y + fontHeight);
}
}
else
@@ -338,7 +339,7 @@ void AvatarListBox::draw(Graphics *graphics)
}
}
- setWidth(parent->getWidth() - 10);
+ setWidth(parentWidth - 10);
BLOCK_END("AvatarListBox::draw")
}
@@ -360,14 +361,14 @@ void AvatarListBox::safeDraw(Graphics *graphics)
updateAlpha();
Font *const font = getFont();
- const int fontHeight = getFont()->getHeight();
+ const int fontHeight = font->getHeight();
+ const int parentWidth = parent->getWidth();
const std::string &name = localPlayer->getName();
// Draw the list elements
- ImageCollection vertexes;
-
+ const int num = model->getNumberOfElements();
for (int i = 0, y = 0;
- i < model->getNumberOfElements();
+ i < num;
++i, y += fontHeight)
{
const Avatar *const a = model->getAvatarAt(i);
@@ -421,7 +422,7 @@ void AvatarListBox::safeDraw(Graphics *graphics)
color.a = 80;
graphics->setColor(color);
graphics->fillRectangle(Rect(mPadding, y + mPadding,
- parent->getWidth() * a->getHp() / a->getMaxHp()
+ parentWidth * a->getHp() / a->getMaxHp()
- 2 * mPadding, fontHeight));
}
}
@@ -444,7 +445,7 @@ void AvatarListBox::safeDraw(Graphics *graphics)
color.a = 80;
graphics->setColor(color);
graphics->fillRectangle(Rect(mPadding, y + mPadding,
- parent->getWidth() * a->getDamageHp() / 1024
+ parentWidth * a->getDamageHp() / 1024
- 2 * mPadding, fontHeight));
if (a->getLevel() > 1)
@@ -454,9 +455,9 @@ void AvatarListBox::safeDraw(Graphics *graphics)
if (minHp < 0)
minHp = 40;
- graphics->drawLine(parent->getWidth()*minHp / 1024
+ graphics->drawLine(parentWidth * minHp / 1024
+ mPadding, y + mPadding,
- parent->getWidth() * minHp / 1024, y + fontHeight);
+ parentWidth * minHp / 1024, y + fontHeight);
}
}
else
@@ -575,19 +576,20 @@ void AvatarListBox::safeDraw(Graphics *graphics)
}
}
- setWidth(parent->getWidth() - 10);
+ setWidth(parentWidth - 10);
BLOCK_END("AvatarListBox::draw")
}
void AvatarListBox::mousePressed(MouseEvent &event)
{
- if (!actorManager || !localPlayer || !popupManager
- || !getFont()->getHeight())
- {
+ if (!actorManager || !localPlayer || !popupManager)
+ return;
+
+ const int height = getFont()->getHeight();
+ if (!height)
return;
- }
- const int y = (event.getY() - mPadding) / getFont()->getHeight();
+ const int y = (event.getY() - mPadding) / height;
if (!mListModel || y > mListModel->getNumberOfElements())
return;