From 28999e7571b66733dcf0ddbc7e376c2c3fc1bfae Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Mon, 9 Dec 2013 13:57:30 +0300
Subject: Add text colors for mp bar.

New theme colors: MP_BAR, MP_BAR_OUTLINE, NO_MP_BAR, NO_MP_BAR_OUTLINE
---
 src/gui/theme.cpp                    |  4 ++++
 src/gui/theme.h                      |  4 ++++
 src/gui/windows/ministatuswindow.cpp |  3 ++-
 src/gui/windows/statuswindow.cpp     | 22 ++++++++++++++++++++--
 4 files changed, 30 insertions(+), 3 deletions(-)

(limited to 'src/gui')

diff --git a/src/gui/theme.cpp b/src/gui/theme.cpp
index 274be10df..5935442c0 100644
--- a/src/gui/theme.cpp
+++ b/src/gui/theme.cpp
@@ -955,6 +955,10 @@ static int readColorType(const std::string &type)
         "SLOTS_BAR_OUTLINE",
         "HP_BAR",
         "HP_BAR_OUTLINE"
+        "MP_BAR",
+        "MP_BAR_OUTLINE"
+        "NO_MP_BAR",
+        "NO_MP_BAR_OUTLINE"
     };
 
     if (type.empty())
diff --git a/src/gui/theme.h b/src/gui/theme.h
index 58a194d63..bd3db6f66 100644
--- a/src/gui/theme.h
+++ b/src/gui/theme.h
@@ -398,6 +398,10 @@ class Theme final : public Palette, public ConfigListener
             SLOTS_BAR_OUTLINE,
             HP_BAR,
             HP_BAR_OUTLINE,
+            MP_BAR,
+            MP_BAR_OUTLINE,
+            NO_MP_BAR,
+            NO_MP_BAR_OUTLINE,
             THEME_COLORS_END
         };
 
diff --git a/src/gui/windows/ministatuswindow.cpp b/src/gui/windows/ministatuswindow.cpp
index 0141354ee..8186f1e04 100644
--- a/src/gui/windows/ministatuswindow.cpp
+++ b/src/gui/windows/ministatuswindow.cpp
@@ -65,7 +65,8 @@ MiniStatusWindow::MiniStatusWindow() :
     mHpBar(createBar(0, 100, 0, Theme::HP_BAR, Theme::PROG_HP,
         "hp bar", _("health bar"))),
     mMpBar(Net::getGameHandler()->canUseMagicBar()
-        ? createBar(0, 100, 0, Theme::PROGRESS_BAR,
+        ? createBar(0, 100, 0, Net::getPlayerHandler()->canUseMagic()
+        ? Theme::MP_BAR : Theme::NO_MP_BAR,
         Net::getPlayerHandler()->canUseMagic()
         // TRANSLATORS: status bar name
         ? Theme::PROG_MP : Theme::PROG_NO_MP, "mp bar", _("mana bar"))
diff --git a/src/gui/windows/statuswindow.cpp b/src/gui/windows/statuswindow.cpp
index 19d862443..bf93efbee 100644
--- a/src/gui/windows/statuswindow.cpp
+++ b/src/gui/windows/statuswindow.cpp
@@ -209,11 +209,21 @@ StatusWindow::StatusWindow() :
         max = PlayerInfo::getAttribute(PlayerInfo::MAX_MP);
         // TRANSLATORS: status window label
         mMpLabel = new Label(this, _("MP:"));
+        const bool useMagic = Net::getPlayerHandler()->canUseMagic();
         mMpBar = new ProgressBar(this, max ? static_cast<float>(
             PlayerInfo::getAttribute(PlayerInfo::MAX_MP))
             / static_cast<float>(max) : static_cast<float>(0),
-            80, 0, Net::getPlayerHandler()->canUseMagic() ?
-            Theme::PROG_MP : Theme::PROG_NO_MP);
+            80, 0, useMagic ? Theme::PROG_MP : Theme::PROG_NO_MP);
+        if (useMagic)
+        {
+            mMpBar->setColor(Theme::getThemeColor(Theme::MP_BAR),
+                Theme::getThemeColor(Theme::MP_BAR_OUTLINE));
+        }
+        else
+        {
+            mMpBar->setColor(Theme::getThemeColor(Theme::NO_MP_BAR),
+                Theme::getThemeColor(Theme::NO_MP_BAR_OUTLINE));
+        }
     }
     else
     {
@@ -523,9 +533,17 @@ void StatusWindow::updateMPBar(ProgressBar *const bar, const bool showMax)
         prog = static_cast<float>(mp) / static_cast<float>(maxMp);
 
     if (Net::getPlayerHandler()->canUseMagic())
+    {
+        bar->setColor(Theme::getThemeColor(Theme::MP_BAR),
+            Theme::getThemeColor(Theme::MP_BAR_OUTLINE));
         bar->setProgressPalette(Theme::PROG_MP);
+    }
     else
+    {
+        bar->setColor(Theme::getThemeColor(Theme::NO_MP_BAR),
+            Theme::getThemeColor(Theme::NO_MP_BAR_OUTLINE));
         bar->setProgressPalette(Theme::PROG_NO_MP);
+    }
 
     bar->setProgress(prog);
 }
-- 
cgit v1.2.3-70-g09d2