Polish button tooltips. Add tooltips/hotkeys for menu/sell/repair

This commit is contained in:
Paul Chote
2011-07-05 17:43:19 +12:00
parent 460451c402
commit b4489028de
6 changed files with 42 additions and 34 deletions

View File

@@ -19,8 +19,20 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
public ButtonTooltipLogic([ObjectCreator.Param] Widget widget,
[ObjectCreator.Param] TooltipButtonWidget button)
{
widget.GetWidget<LabelWidget>("LABEL").GetText = () => button.TooltipText;
widget.GetWidget<LabelWidget>("HOTKEY").GetText = () => button.Key;
var label = widget.GetWidget<LabelWidget>("LABEL");
var hotkey = widget.GetWidget<LabelWidget>("HOTKEY");
label.GetText = () => button.TooltipText;
var labelWidth = Game.Renderer.Fonts[label.Font].Measure(button.TooltipText).X;
label.Bounds.Width = labelWidth;
var hotkeyLabel = "({0})".F(button.Key.ToUpperInvariant());
hotkey.GetText = () => hotkeyLabel;
hotkey.Bounds.X = labelWidth + 2*label.Bounds.X;
var panelWidth = hotkey.Bounds.X + label.Bounds.X
+ Game.Renderer.Fonts[label.Font].Measure(hotkeyLabel).X;
widget.Bounds.Width = panelWidth;
}
}
}

View File

@@ -34,7 +34,7 @@ namespace OpenRA.Mods.Cnc.Widgets
public readonly int Columns = 3;
public readonly string TabClick = "button.aud";
public readonly string TooltipContainer;
public readonly string TooltipTemplate;
public readonly string TooltipTemplate = "PRODUCTION_TOOLTIP";
public string TooltipActor { get; private set; }
Lazy<TooltipContainerWidget> tooltipContainer;

View File

@@ -15,7 +15,7 @@ namespace OpenRA.Mods.Cnc.Widgets
{
public class TooltipButtonWidget : ButtonWidget
{
public readonly string TooltipTemplate;
public readonly string TooltipTemplate = "BUTTON_TOOLTIP";
public readonly string TooltipText;
public readonly string TooltipContainer;
Lazy<TooltipContainerWidget> tooltipContainer;
@@ -42,8 +42,8 @@ namespace OpenRA.Mods.Cnc.Widgets
if (TooltipContainer == null)
return;
var panel = Widget.LoadWidget(TooltipTemplate, null, new WidgetArgs() {{ "button", this }});
tooltipContainer.Value.SetTooltip(panel);
tooltipContainer.Value.SetTooltip(
Widget.LoadWidget(TooltipTemplate, null, new WidgetArgs() {{ "button", this }}));
}
public override void MouseExited()

View File

@@ -21,7 +21,7 @@ namespace OpenRA.Mods.Cnc.Widgets
{
class TooltipContainerWidget : Widget
{
public int2 CursorOffset = new int2(20, 0);
public int2 CursorOffset = new int2(0, 20);
public int TooltipDelay = 10;
Widget tooltip;
@@ -51,7 +51,7 @@ namespace OpenRA.Mods.Cnc.Widgets
if (tooltip != null)
{
if (pos.X + tooltip.Bounds.Right > Game.viewport.Width)
pos.X -= 2*CursorOffset.X + tooltip.Bounds.Right;
pos.X = Game.viewport.Width - tooltip.Bounds.Right;
}
return pos;

View File

@@ -92,7 +92,7 @@ Container@INGAME_ROOT:
Height:240
Background:panel-black
Children:
Button@OPTIONS_BUTTON:
TooltipButton@OPTIONS_BUTTON:
Id:OPTIONS_BUTTON
Key:escape
X:40
@@ -101,22 +101,30 @@ Container@INGAME_ROOT:
Height:25
Text:Opt
Font:Bold
Button@SELL_BUTTON:
TooltipText: Menu
TooltipContainer:TOOLTIP_CONTAINER
TooltipButton@SELL_BUTTON:
Id:SELL_BUTTON
Key: [
X:80
Y:0-24
Width:35
Height:25
Text:$
Font:Bold
Button@REPAIR_BUTTON:
TooltipText: Sell
TooltipContainer:TOOLTIP_CONTAINER
TooltipButton@REPAIR_BUTTON:
Id:REPAIR_BUTTON
Key: ]
X:120
Y:0-24
Width:35
Height:25
Text:R
Font:Bold
TooltipText: Repair
TooltipContainer:TOOLTIP_CONTAINER
Background@RADAR:
X:13
Y:5
@@ -187,7 +195,6 @@ Container@INGAME_ROOT:
Key: y
TooltipText: Buildings
TooltipContainer:TOOLTIP_CONTAINER
TooltipTemplate: BUTTON_TOOLTIP
TooltipButton@DEFENSE:
Id:DEFENSE
X:35
@@ -197,7 +204,6 @@ Container@INGAME_ROOT:
Key: u
TooltipText: Defense
TooltipContainer:TOOLTIP_CONTAINER
TooltipTemplate: BUTTON_TOOLTIP
TooltipButton@INFANTRY:
Id:INFANTRY
X:70
@@ -207,7 +213,6 @@ Container@INGAME_ROOT:
Key: i
TooltipText: Infantry
TooltipContainer:TOOLTIP_CONTAINER
TooltipTemplate: BUTTON_TOOLTIP
TooltipButton@VEHICLE:
Id:VEHICLE
X:105
@@ -217,7 +222,6 @@ Container@INGAME_ROOT:
Key: o
TooltipText: Vehicles
TooltipContainer:TOOLTIP_CONTAINER
TooltipTemplate: BUTTON_TOOLTIP
TooltipButton@AIRCRAFT:
Id:AIRCRAFT
X:140
@@ -227,7 +231,6 @@ Container@INGAME_ROOT:
Key: p
TooltipText: Aircraft
TooltipContainer:TOOLTIP_CONTAINER
TooltipTemplate: BUTTON_TOOLTIP
ProductionTabs:
Id:PRODUCTION_TABS
PaletteWidget:PRODUCTION_PALETTE
@@ -241,7 +244,6 @@ Container@INGAME_ROOT:
Y:287
TabClick: button.aud
TooltipContainer:TOOLTIP_CONTAINER
TooltipTemplate: PRODUCTION_TOOLTIP
TooltipContainer:
Id:TOOLTIP_CONTAINER

View File

@@ -3,34 +3,28 @@ Background@PRODUCTION_TOOLTIP:
Logic:ProductionTooltipLogic
Background:panel-black
Width:100
Height:30
Height:25
Children:
Label@NAME:
Id:NAME
X:5
Y:5
Width:PARENT_RIGHT-10
Height:PARENT_BOTTOM-10
Height:23
Font:Bold
Background@BUTTON_TOOLTIP:
Id:BUTTON_TOOLTIP
Logic:ButtonTooltipLogic
Background:panel-black
Width:100
Height:30
Height:25
Children:
Label@LABEL:
Id:LABEL
X:5
Y:5
Width:PARENT_RIGHT-10
Height:PARENT_BOTTOM-10
Height:23
Font:Bold
Label@HOTKEY:
Id:HOTKEY
X:PARENT_RIGHT-15
Y:5
Color:255,255,0
Width:PARENT_RIGHT-10
Height:PARENT_BOTTOM-10
Height:23
Font:Bold