Add a tooltip text to overflowing ButtonWidget in hotkey settings panel
This commit is contained in:
committed by
abcdefg30
parent
ef0cb7552d
commit
86c8dfe96e
@@ -207,11 +207,11 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
|
||||
public override void MouseEntered()
|
||||
{
|
||||
if (TooltipContainer == null || GetTooltipText() == null)
|
||||
if (TooltipContainer == null)
|
||||
return;
|
||||
|
||||
tooltipContainer.Value.SetTooltip(TooltipTemplate,
|
||||
new WidgetArgs { { "button", this }, { "getText", GetTooltipText }, { "getDesc", GetTooltipDesc } });
|
||||
if (GetTooltipText != null)
|
||||
tooltipContainer.Value.SetTooltip(TooltipTemplate, new WidgetArgs { { "button", this }, { "getText", GetTooltipText }, { "getDesc", GetTooltipDesc } });
|
||||
}
|
||||
|
||||
public override void MouseExited()
|
||||
|
||||
@@ -134,7 +134,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
key.Get<LabelWidget>("FUNCTION").GetText = () => hd.Description + ":";
|
||||
|
||||
var remapButton = key.Get<ButtonWidget>("HOTKEY");
|
||||
remapButton.GetText = () => manager[hd.Name].GetValue().DisplayString();
|
||||
WidgetUtils.TruncateButtonToTooltip(remapButton, manager[hd.Name].GetValue().DisplayString());
|
||||
|
||||
if (manager.GetFirstDuplicate(hd.Name, manager[hd.Name].GetValue(), hd) != null)
|
||||
remapButton.GetColor = () => ChromeMetrics.Get<Color>("HotkeyColorInvalid");
|
||||
@@ -171,7 +171,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
{
|
||||
"onSave", () =>
|
||||
{
|
||||
remapButton.GetText = () => manager[hd.Name].GetValue().DisplayString();
|
||||
WidgetUtils.TruncateButtonToTooltip(remapButton, manager[hd.Name].GetValue().DisplayString());
|
||||
remapButton.GetColor = () => ChromeMetrics.Get<Color>("ButtonTextColor");
|
||||
}
|
||||
},
|
||||
|
||||
@@ -276,6 +276,18 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
else
|
||||
label.GetTooltipText = null;
|
||||
}
|
||||
|
||||
public static void TruncateButtonToTooltip(ButtonWidget button, string text)
|
||||
{
|
||||
var truncatedText = TruncateText(text, button.Bounds.Width - button.LeftMargin - button.RightMargin, Game.Renderer.Fonts[button.Font]);
|
||||
|
||||
button.GetText = () => truncatedText;
|
||||
|
||||
if (text != truncatedText)
|
||||
button.GetTooltipText = () => text;
|
||||
else
|
||||
button.GetTooltipText = null;
|
||||
}
|
||||
}
|
||||
|
||||
public class CachedTransform<T, U>
|
||||
|
||||
Reference in New Issue
Block a user