mirror of
https://github.com/OpenMW/openmw.git
synced 2025-01-29 22:45:36 +00:00
Merge branch 'topicHighlighting' into 'master'
Topic Highlighting Mouse Over Fix See merge request OpenMW/openmw!4113
This commit is contained in:
commit
cb009db4bb
5 changed files with 105 additions and 13 deletions
|
@ -794,18 +794,32 @@ namespace MWGui
|
|||
if (!Settings::gui().mColorTopicEnable)
|
||||
return;
|
||||
|
||||
const MyGUI::Colour& specialColour = Settings::gui().mColorTopicSpecific;
|
||||
const MyGUI::Colour& oldColour = Settings::gui().mColorTopicExhausted;
|
||||
|
||||
for (const std::string& keyword : mKeywords)
|
||||
{
|
||||
int flag = MWBase::Environment::get().getDialogueManager()->getTopicFlag(ESM::RefId::stringRefId(keyword));
|
||||
MyGUI::Button* button = mTopicsList->getItemWidget(keyword);
|
||||
const auto oldCaption = button->getCaption();
|
||||
const MyGUI::IntSize oldSize = button->getSize();
|
||||
|
||||
bool changed = false;
|
||||
if (flag & MWBase::DialogueManager::TopicType::Specific)
|
||||
button->getSubWidgetText()->setTextColour(specialColour);
|
||||
{
|
||||
button->changeWidgetSkin("MW_ListLine_Specific");
|
||||
changed = true;
|
||||
}
|
||||
else if (flag & MWBase::DialogueManager::TopicType::Exhausted)
|
||||
button->getSubWidgetText()->setTextColour(oldColour);
|
||||
{
|
||||
button->changeWidgetSkin("MW_ListLine_Exhausted");
|
||||
changed = true;
|
||||
}
|
||||
|
||||
if (changed)
|
||||
{
|
||||
button->setCaption(oldCaption);
|
||||
button->getSubWidgetText()->setWordWrap(true);
|
||||
button->getSubWidgetText()->setTextAlign(MyGUI::Align::Left);
|
||||
button->setSize(oldSize);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,11 @@ namespace Settings
|
|||
SettingValue<bool> mKeyboardNavigation{ mIndex, "GUI", "keyboard navigation" };
|
||||
SettingValue<bool> mColorTopicEnable{ mIndex, "GUI", "color topic enable" };
|
||||
SettingValue<MyGUI::Colour> mColorTopicSpecific{ mIndex, "GUI", "color topic specific" };
|
||||
SettingValue<MyGUI::Colour> mColorTopicSpecificOver{ mIndex, "GUI", "color topic specific over" };
|
||||
SettingValue<MyGUI::Colour> mColorTopicSpecificPressed{ mIndex, "GUI", "color topic specific pressed" };
|
||||
SettingValue<MyGUI::Colour> mColorTopicExhausted{ mIndex, "GUI", "color topic exhausted" };
|
||||
SettingValue<MyGUI::Colour> mColorTopicExhaustedOver{ mIndex, "GUI", "color topic exhausted over" };
|
||||
SettingValue<MyGUI::Colour> mColorTopicExhaustedPressed{ mIndex, "GUI", "color topic exhausted pressed" };
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -157,8 +157,8 @@ color topic specific
|
|||
--------------------
|
||||
|
||||
:Type: RGBA floating point
|
||||
:Range: 0.0 to 1.0
|
||||
:Default: empty
|
||||
:Range: 0.0 to 1.0 for each channel
|
||||
:Default: 0.45 0.5 0.8 1 (blue)
|
||||
|
||||
This setting overrides the colour of dialogue topics that have a response unique to the actors speaking.
|
||||
The value is composed of four floating point values representing the red, green, blue and alpha channels.
|
||||
|
@ -166,15 +166,67 @@ The alpha value is currently ignored.
|
|||
|
||||
A topic response is considered unique if its Actor filter field contains the speaking actor's object ID and hasn't yet been read.
|
||||
|
||||
color topic specific over
|
||||
-------------------------
|
||||
|
||||
:Type: RGBA floating point
|
||||
:Range: 0.0 to 1.0 for each channel
|
||||
:Default: 0.6 0.6 0.85 1 (blue)
|
||||
|
||||
This setting provides an "over" colour to dialogue topics that meet the color topic specific criteria.
|
||||
The value is composed of four floating point values representing the red, green, blue and alpha channels.
|
||||
The alpha value is currently ignored.
|
||||
|
||||
A dialogue topic is considered "over" if it is the active GUI element through keyboard or mouse events.
|
||||
|
||||
color topic specific pressed
|
||||
----------------------------
|
||||
|
||||
:Type: RGBA floating point
|
||||
:Range: 0.0 to 1.0 for each channel
|
||||
:Default: 0.3 0.35 0.75 1 (blue)
|
||||
|
||||
This setting provides an "pressed" colour to dialogue topics that meet the color topic specific criteria.
|
||||
The value is composed of four floating point values representing the red, green, blue and alpha channels.
|
||||
The alpha value is currently ignored.
|
||||
|
||||
A dialogue topic is considered "pressed" if it is the active GUI element and it receives a sustained keyboard or mouse event.
|
||||
|
||||
color topic exhausted
|
||||
---------------------
|
||||
|
||||
:Type: RGBA floating point
|
||||
:Range: 0.0 to 1.0
|
||||
:Default: empty
|
||||
:Range: 0.0 to 1.0 for each channel
|
||||
:Default: 0.3 0.3 0.3 1 (grey)
|
||||
|
||||
This setting overrides the colour of dialogue topics which have been "exhausted" by the player.
|
||||
The value is composed of four floating point values representing the red, green, blue and alpha channels.
|
||||
The alpha value is currently ignored.
|
||||
|
||||
A topic is considered "exhausted" if the response the player is about to see has already been seen.
|
||||
|
||||
color topic exhausted over
|
||||
--------------------------
|
||||
|
||||
:Type: RGBA floating point
|
||||
:Range: 0.0 to 1.0 for each channel
|
||||
:Default: 0.55 0.55 0.55 1 (grey)
|
||||
|
||||
This setting provides an "over" colour to dialogue topics that meet the color topic exhausted criteria.
|
||||
The value is composed of four floating point values representing the red, green, blue and alpha channels.
|
||||
The alpha value is currently ignored.
|
||||
|
||||
A dialogue topic is considered "over" if it is the active GUI element through keyboard or mouse events.
|
||||
|
||||
color topic exhausted pressed
|
||||
-----------------------------
|
||||
|
||||
:Type: RGBA floating point
|
||||
:Range: 0.0 to 1.0 for each channel
|
||||
:Default: 0.45 0.45 0.45 1 (grey)
|
||||
|
||||
This setting provides a "pressed" colour to dialogue topics that meet the color topic exhausted criteria.
|
||||
The value is composed of four floating point values representing the red, green, blue and alpha channels.
|
||||
The alpha value is currently ignored.
|
||||
|
||||
A dialogue topic is considered "pressed" if it is the active GUI element and it receives a sustained keyboard or mouse event.
|
||||
|
|
|
@ -124,6 +124,28 @@
|
|||
</BasisSkin>
|
||||
</Resource>
|
||||
|
||||
<Resource type="ResourceSkin" name="MW_ListLine_Specific" size="5 5">
|
||||
<Property key="FontName" value="Default"/>
|
||||
<Property key="TextAlign" value="Left VCenter"/>
|
||||
|
||||
<BasisSkin type="SimpleText" offset="2 0 1 5" align="Stretch">
|
||||
<State name="normal" colour="#{setting=GUI,color topic specific}"/>
|
||||
<State name="highlighted" colour="#{setting=GUI,color topic specific over}"/>
|
||||
<State name="pushed" colour="#{setting=GUI,color topic specific pressed}"/>
|
||||
</BasisSkin>
|
||||
</Resource>
|
||||
|
||||
<Resource type="ResourceSkin" name="MW_ListLine_Exhausted" size="5 5">
|
||||
<Property key="FontName" value="Default"/>
|
||||
<Property key="TextAlign" value="Left VCenter"/>
|
||||
|
||||
<BasisSkin type="SimpleText" offset="2 0 1 5" align="Stretch">
|
||||
<State name="normal" colour="#{setting=GUI,color topic exhausted}"/>
|
||||
<State name="highlighted" colour="#{setting=GUI,color topic exhausted over}"/>
|
||||
<State name="pushed" colour="#{setting=GUI,color topic exhausted pressed}"/>
|
||||
</BasisSkin>
|
||||
</Resource>
|
||||
|
||||
<Resource type="ResourceLayout" name="MW_List" size="516 516" align="Left Top">
|
||||
<Widget type="Widget" position="0 0 516 516" name="Root">
|
||||
<Property key="NeedKey" value="true"/>
|
||||
|
|
|
@ -218,14 +218,14 @@ keyboard navigation = true
|
|||
color topic enable = false
|
||||
|
||||
# The color of dialogue topic keywords that gives unique actor responses
|
||||
# Format R G B A or empty for no special formatting
|
||||
# Default to blue
|
||||
color topic specific = 0.45 0.5 0.8 1
|
||||
color topic specific over = 0.6 0.6 0.85 1
|
||||
color topic specific pressed = 0.3 0.35 0.75 1
|
||||
|
||||
# The color of dialogue topic keywords that gives already read responses
|
||||
# Format R G B A or empty for no special formatting
|
||||
# Default to grey
|
||||
color topic exhausted = 0.3 0.3 0.3 1
|
||||
color topic exhausted over = 0.55 0.55 0.55 1
|
||||
color topic exhausted pressed = 0.45 0.45 0.45 1
|
||||
|
||||
[HUD]
|
||||
|
||||
|
|
Loading…
Reference in a new issue