summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2013-05-05 23:56:48 +0300
committerAndrei Karas <akaras@inbox.ru>2013-05-05 23:56:48 +0300
commita2c2444d9eb4b43fb73339ae1cc3b7464f33409e (patch)
tree44ff07e2fed8af0273f899de5dfaf11f0dbf3fb5
parent2f1650a30d6f3d2f69f09ee1ad3258fc8b0c7e32 (diff)
downloadmanaplus-a2c2444d9eb4b43fb73339ae1cc3b7464f33409e.tar.gz
manaplus-a2c2444d9eb4b43fb73339ae1cc3b7464f33409e.tar.bz2
manaplus-a2c2444d9eb4b43fb73339ae1cc3b7464f33409e.tar.xz
manaplus-a2c2444d9eb4b43fb73339ae1cc3b7464f33409e.zip
add outline color to listbox.
-rw-r--r--src/gui/serverdialog.cpp10
-rw-r--r--src/gui/theme.cpp2
-rw-r--r--src/gui/theme.h2
-rw-r--r--src/gui/widgets/listbox.cpp8
-rw-r--r--src/gui/widgets/listbox.h2
5 files changed, 20 insertions, 4 deletions
diff --git a/src/gui/serverdialog.cpp b/src/gui/serverdialog.cpp
index 8bc1ad804..acf81ace5 100644
--- a/src/gui/serverdialog.cpp
+++ b/src/gui/serverdialog.cpp
@@ -171,6 +171,7 @@ public:
ServersListModel *const model = static_cast<ServersListModel *const>(
mListModel);
+ Graphics *const g = static_cast<Graphics*>(graphics);
updateAlpha();
@@ -201,9 +202,14 @@ public:
ServerInfo info = model->getServer(i);
if (mSelected == i)
- graphics->setColor(mForegroundSelectedColor);
+ {
+ g->setColorAll(mForegroundSelectedColor,
+ mForegroundSelectedColor2);
+ }
else
- graphics->setColor(mForegroundColor);
+ {
+ g->setColorAll(mForegroundColor, mForegroundColor2);
+ }
int top;
int x = mPadding;
diff --git a/src/gui/theme.cpp b/src/gui/theme.cpp
index c5d358cab..1077dc1ff 100644
--- a/src/gui/theme.cpp
+++ b/src/gui/theme.cpp
@@ -789,7 +789,9 @@ static int readColorType(const std::string &type)
"LABEL",
"LABEL_OUTLINE",
"LISTBOX",
+ "LISTBOX_OUTLINE",
"LISTBOX_SELECTED",
+ "LISTBOX_SELECTED_OUTLINE",
"RADIOBUTTON",
"POPUP",
"POPUP_OUTLINE",
diff --git a/src/gui/theme.h b/src/gui/theme.h
index 084868ef2..7cc5ce592 100644
--- a/src/gui/theme.h
+++ b/src/gui/theme.h
@@ -229,7 +229,9 @@ class Theme final : public Palette, public ConfigListener
LABEL,
LABEL_OUTLINE,
LISTBOX,
+ LISTBOX_OUTLINE,
LISTBOX_SELECTED,
+ LISTBOX_SELECTED_OUTLINE,
RADIOBUTTON,
POPUP,
POPUP_OUTLINE,
diff --git a/src/gui/widgets/listbox.cpp b/src/gui/widgets/listbox.cpp
index 2e84bb1a2..d2b7eb712 100644
--- a/src/gui/widgets/listbox.cpp
+++ b/src/gui/widgets/listbox.cpp
@@ -45,7 +45,9 @@ ListBox::ListBox(const Widget2 *const widget,
gcn::ListBox(listModel),
Widget2(widget),
mHighlightColor(getThemeColor(Theme::HIGHLIGHT)),
+ mForegroundColor2(getThemeColor(Theme::LISTBOX_OUTLINE)),
mForegroundSelectedColor(getThemeColor(Theme::LISTBOX_SELECTED)),
+ mForegroundSelectedColor2(getThemeColor(Theme::LISTBOX_SELECTED_OUTLINE)),
mDistributeMousePressed(true),
mOldSelected(-1),
mPadding(0),
@@ -88,6 +90,7 @@ void ListBox::draw(gcn::Graphics *graphics)
BLOCK_START("ListBox::draw")
updateAlpha();
+ Graphics *const g = static_cast<Graphics*>(graphics);
mHighlightColor.a = static_cast<int>(mAlpha * 255.0f);
graphics->setColor(mHighlightColor);
@@ -105,12 +108,13 @@ void ListBox::draw(gcn::Graphics *graphics)
const int sel = getSelected();
if (sel >= 0)
{
- graphics->setColor(mForegroundSelectedColor);
+ g->setColorAll(mForegroundSelectedColor,
+ mForegroundSelectedColor2);
font->drawString(graphics, mListModel->getElementAt(sel),
mPadding, sel * height + mPadding);
}
// Draw the list elements
- graphics->setColor(mForegroundColor);
+ g->setColorAll(mForegroundColor, mForegroundColor2);
for (int i = 0, y = 0; i < mListModel->getNumberOfElements();
++i, y += height)
{
diff --git a/src/gui/widgets/listbox.h b/src/gui/widgets/listbox.h
index 8296d90e4..ea48c6f16 100644
--- a/src/gui/widgets/listbox.h
+++ b/src/gui/widgets/listbox.h
@@ -91,7 +91,9 @@ class ListBox : public gcn::ListBox,
protected:
gcn::Color mHighlightColor;
+ gcn::Color mForegroundColor2;
gcn::Color mForegroundSelectedColor;
+ gcn::Color mForegroundSelectedColor2;
bool mDistributeMousePressed;
int mOldSelected;
int mPadding;