Add skin-specific color emphasis for list items

This commit is contained in:
Alayan 2018-10-12 20:44:38 +02:00
parent 1f1d87e838
commit c84db6a571
8 changed files with 76 additions and 7 deletions

View File

@ -275,6 +275,14 @@ when the border that intersect at this corner are enabled.
<!-- Color used in the credits --> <!-- Color used in the credits -->
<color type="credits_text" state="neutral" r="220" g="220" b="220" /> <color type="credits_text" state="neutral" r="220" g="220" b="220" />
<!-- Color used for emphasized items in e.g. lists -->
<color type="emphasis_text" state="neutral" r="230" g="210" b="50" />
<color type="emphasis_text" state="focused" r="255" g="226" b="56" />
<!-- Color used for blue items in list (e.g. player team color in networking) -->
<color type="list_blue" state="neutral" r="0" g="0" b="180" />
<color type="list_blue" state="focused" r="0" g="0" b="255" />
<!-- Color used to fade out background when a dialog is shown --> <!-- Color used to fade out background when a dialog is shown -->
<color type="dialog_background" state="neutral" a="120" r="0" g="0" b="0" /> <color type="dialog_background" state="neutral" a="120" r="0" g="0" b="0" />

View File

@ -275,6 +275,14 @@ when the border that intersect at this corner are enabled.
<!-- Color used in the credits --> <!-- Color used in the credits -->
<color type="credits_text" state="neutral" r="0" g="55" b="0" /> <color type="credits_text" state="neutral" r="0" g="55" b="0" />
<!-- Color used for emphasized items in e.g. lists -->
<color type="emphasis_text" state="neutral" r="0" g="0" b="180" />
<color type="emphasis_text" state="focused" r="0" g="0" b="160" />
<!-- Color used for blue items in list (e.g. player team color in networking) -->
<color type="list_blue" state="neutral" r="0" g="0" b="255" />
<color type="list_blue" state="focused" r="0" g="0" b="255" />
<!-- Color used to fade out background when a dialog is shown --> <!-- Color used to fade out background when a dialog is shown -->
<color type="dialog_background" state="neutral" a="120" r="0" g="0" b="0" /> <color type="dialog_background" state="neutral" a="120" r="0" g="0" b="0" />

View File

@ -274,6 +274,14 @@ when the border that intersect at this corner are enabled.
<!-- Color used in the credits --> <!-- Color used in the credits -->
<color type="credits_text" state="neutral" r="0" g="0" b="75" /> <color type="credits_text" state="neutral" r="0" g="0" b="75" />
<!-- Color used for emphasized items in e.g. lists -->
<color type="emphasis_text" state="neutral" r="0" g="0" b="180" />
<color type="emphasis_text" state="focused" r="0" g="0" b="160" />
<!-- Color used for blue items in list (e.g. player team color in networking) -->
<color type="list_blue" state="neutral" r="0" g="0" b="255" />
<color type="list_blue" state="focused" r="0" g="0" b="255" />
<!-- Color used to fade out background when a dialog is shown --> <!-- Color used to fade out background when a dialog is shown -->
<color type="dialog_background" state="neutral" a="120" r="0" g="0" b="0" /> <color type="dialog_background" state="neutral" a="120" r="0" g="0" b="0" />

View File

@ -272,6 +272,14 @@ when the border that intersect at this corner are enabled.
<!-- Color used in the credits --> <!-- Color used in the credits -->
<color type="credits_text" state="neutral" r="65" g="15" b="0" /> <color type="credits_text" state="neutral" r="65" g="15" b="0" />
<!-- Color used for emphasized items in e.g. lists -->
<color type="emphasis_text" state="neutral" r="0" g="0" b="180" />
<color type="emphasis_text" state="focused" r="0" g="0" b="160" />
<!-- Color used for blue items in list (e.g. player team color in networking) -->
<color type="list_blue" state="neutral" r="0" g="0" b="255" />
<color type="list_blue" state="focused" r="0" g="0" b="255" />
<!-- Color used to fade out background when a dialog is shown --> <!-- Color used to fade out background when a dialog is shown -->
<color type="dialog_background" state="neutral" a="120" r="0" g="0" b="0" /> <color type="dialog_background" state="neutral" a="120" r="0" g="0" b="0" />

View File

@ -273,6 +273,14 @@ when the border that intersect at this corner are enabled.
<!-- Color used in the credits --> <!-- Color used in the credits -->
<color type="credits_text" state="neutral" r="65" g="0" b="15" /> <color type="credits_text" state="neutral" r="65" g="0" b="15" />
<!-- Color used for emphasized items in e.g. lists -->
<color type="emphasis_text" state="neutral" r="0" g="0" b="180" />
<color type="emphasis_text" state="focused" r="0" g="0" b="160" />
<!-- Color used for blue items in list (e.g. player team color in networking) -->
<color type="list_blue" state="neutral" r="0" g="0" b="255" />
<color type="list_blue" state="focused" r="0" g="0" b="255" />
<!-- Color used to fade out background when a dialog is shown --> <!-- Color used to fade out background when a dialog is shown -->
<color type="dialog_background" state="neutral" a="120" r="0" g="0" b="0" /> <color type="dialog_background" state="neutral" a="120" r="0" g="0" b="0" />

View File

@ -431,8 +431,8 @@ void ListWidget::markItemRed(const int id, bool red)
} }
else else
{ {
irritem->setItemOverrideColor( id, EGUI_LBC_TEXT, video::SColor(255,0,0,0) ); irritem->setItemOverrideColor( id, EGUI_LBC_TEXT, GUIEngine::getSkin()->getColor("text::neutral"));
irritem->setItemOverrideColor( id, EGUI_LBC_TEXT_HIGHLIGHT, video::SColor(255,255,255,255) ); irritem->setItemOverrideColor( id, EGUI_LBC_TEXT_HIGHLIGHT, GUIEngine::getSkin()->getColor("text::focused"));
} }
} }
@ -447,18 +447,39 @@ void ListWidget::markItemBlue(const int id, bool blue)
if (blue) if (blue)
{ {
irritem->setItemOverrideColor( id, EGUI_LBC_TEXT, video::SColor(255,0,0,255) ); irritem->setItemOverrideColor( id, EGUI_LBC_TEXT, GUIEngine::getSkin()->getColor("list_blue::neutral"));
irritem->setItemOverrideColor( id, EGUI_LBC_TEXT_HIGHLIGHT, video::SColor(255,0,0,255) ); irritem->setItemOverrideColor( id, EGUI_LBC_TEXT_HIGHLIGHT, GUIEngine::getSkin()->getColor("list_blue::focused"));
} }
else else
{ {
irritem->setItemOverrideColor( id, EGUI_LBC_TEXT, video::SColor(255,0,0,0) ); irritem->setItemOverrideColor( id, EGUI_LBC_TEXT, GUIEngine::getSkin()->getColor("text::neutral"));
irritem->setItemOverrideColor( id, EGUI_LBC_TEXT_HIGHLIGHT, video::SColor(255,255,255,255) ); irritem->setItemOverrideColor( id, EGUI_LBC_TEXT_HIGHLIGHT, GUIEngine::getSkin()->getColor("text::focused"));
} }
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void ListWidget::emphasisItem(const int id, bool enable)
{
// May only be called AFTER this widget has been add()ed
assert(m_element != NULL);
CGUISTKListBox* irritem = getIrrlichtElement<CGUISTKListBox>();
if (enable)
{
irritem->setItemOverrideColor( id, EGUI_LBC_TEXT, GUIEngine::getSkin()->getColor("emphasis_text::neutral"));
irritem->setItemOverrideColor( id, EGUI_LBC_TEXT_HIGHLIGHT, GUIEngine::getSkin()->getColor("emphasis_text::focused"));
}
else
{
irritem->setItemOverrideColor( id, EGUI_LBC_TEXT, GUIEngine::getSkin()->getColor("text::neutral"));
irritem->setItemOverrideColor( id, EGUI_LBC_TEXT_HIGHLIGHT, GUIEngine::getSkin()->getColor("text::focused"));
}
} // emphasisItem
// -----------------------------------------------------------------------------
EventPropagation ListWidget::transmitEvent(Widget* w, EventPropagation ListWidget::transmitEvent(Widget* w,
const std::string& originator, const std::string& originator,
const int playerID) const int playerID)

View File

@ -223,6 +223,7 @@ namespace GUIEngine
*/ */
void markItemRed(const int id, bool red=true); void markItemRed(const int id, bool red=true);
void markItemBlue(const int id, bool blue=true); void markItemBlue(const int id, bool blue=true);
void emphasisItem(const int id, bool enable=true);
/** /**
* \brief Make an item red to mark an error, for instance * \brief Make an item red to mark an error, for instance
@ -242,6 +243,13 @@ namespace GUIEngine
markItemBlue( id, blue ); markItemBlue( id, blue );
} }
void emphasisItem(const std::string &internalName, bool enable=true)
{
const int id = getItemID(internalName);
assert(id != -1);
emphasisItem(id, enable);
}
/** Override callback from Widget */ /** Override callback from Widget */
virtual EventPropagation transmitEvent(Widget* w, virtual EventPropagation transmitEvent(Widget* w,
const std::string& originator, const std::string& originator,

View File

@ -120,7 +120,7 @@ void BaseOnlineProfileAchievements::init()
const std::string id = StringUtils::toString(a->getInfo()->getID()); const std::string id = StringUtils::toString(a->getInfo()->getID());
m_achievements_list_widget->addItem(id, row); m_achievements_list_widget->addItem(id, row);
if (a->isAchieved()) if (a->isAchieved())
m_achievements_list_widget->markItemBlue(id); m_achievements_list_widget->emphasisItem(id);
} }
} }
else else