summaryrefslogtreecommitdiff
path: root/src/gui/widgets/listbox.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-05-25 01:58:52 +0300
committerAndrei Karas <akaras@inbox.ru>2015-05-25 01:58:52 +0300
commite3682e2cdcb59c36792f6f9c39569e0af01088f0 (patch)
treeb4d7a665652e4a8c00f28d557f96b120abc62002 /src/gui/widgets/listbox.cpp
parent1b3a9751ae558e45c614f04525d5ff65e3c0fc1e (diff)
downloadplus-e3682e2cdcb59c36792f6f9c39569e0af01088f0.tar.gz
plus-e3682e2cdcb59c36792f6f9c39569e0af01088f0.tar.bz2
plus-e3682e2cdcb59c36792f6f9c39569e0af01088f0.tar.xz
plus-e3682e2cdcb59c36792f6f9c39569e0af01088f0.zip
Dont set global color variables before drawing text.
This allow not set actual OpenGL color on each call because it useless for drawing text.
Diffstat (limited to 'src/gui/widgets/listbox.cpp')
-rw-r--r--src/gui/widgets/listbox.cpp28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/gui/widgets/listbox.cpp b/src/gui/widgets/listbox.cpp
index 63595cfb3..d4b6f7a76 100644
--- a/src/gui/widgets/listbox.cpp
+++ b/src/gui/widgets/listbox.cpp
@@ -175,15 +175,15 @@ void ListBox::draw(Graphics *graphics)
rowHeight * mSelected + mPadding,
mDimension.width - 2 * mPadding, rowHeight));
- graphics->setColorAll(mForegroundSelectedColor,
- mForegroundSelectedColor2);
const std::string str = mListModel->getElementAt(mSelected);
- font->drawString(graphics, str,
+ font->drawString(graphics,
+ mForegroundSelectedColor,
+ mForegroundSelectedColor2,
+ str,
(width - font->getWidth(str)) / 2,
mSelected * rowHeight + mPadding + mItemPadding);
}
// Draw the list elements
- graphics->setColorAll(mForegroundColor, mForegroundColor2);
const int sz = mListModel->getNumberOfElements();
for (int i = 0, y = mPadding + mItemPadding;
i < sz; ++i, y += rowHeight)
@@ -191,7 +191,10 @@ void ListBox::draw(Graphics *graphics)
if (i != mSelected)
{
const std::string str = mListModel->getElementAt(i);
- font->drawString(graphics, str,
+ font->drawString(graphics,
+ mForegroundColor,
+ mForegroundColor2,
+ str,
(width - font->getWidth(str)) / 2, y);
}
}
@@ -205,14 +208,15 @@ void ListBox::draw(Graphics *graphics)
rowHeight * mSelected + mPadding,
mDimension.width - 2 * mPadding, rowHeight));
- graphics->setColorAll(mForegroundSelectedColor,
- mForegroundSelectedColor2);
const std::string str = mListModel->getElementAt(mSelected);
- font->drawString(graphics, str, mPadding,
+ font->drawString(graphics,
+ mForegroundSelectedColor,
+ mForegroundSelectedColor2,
+ str,
+ mPadding,
mSelected * rowHeight + mPadding + mItemPadding);
}
// Draw the list elements
- graphics->setColorAll(mForegroundColor, mForegroundColor2);
const int sz = mListModel->getNumberOfElements();
for (int i = 0, y = mPadding + mItemPadding; i < sz;
++i, y += rowHeight)
@@ -220,7 +224,11 @@ void ListBox::draw(Graphics *graphics)
if (i != mSelected)
{
const std::string str = mListModel->getElementAt(i);
- font->drawString(graphics, str, mPadding, y);
+ font->drawString(graphics,
+ mForegroundColor,
+ mForegroundColor2,
+ str,
+ mPadding, y);
}
}
}