Remove duplication between ButtonWidget and ToggleButtonWidget.

This commit is contained in:
Paul Chote
2013-04-08 22:55:01 +12:00
parent 71999bdc52
commit eddc1fc0cf
8 changed files with 15 additions and 23 deletions

View File

@@ -166,14 +166,13 @@ namespace OpenRA.Widgets
public static void DrawBackground(string baseName, Rectangle rect, bool disabled, bool pressed, bool hover, bool highlighted) public static void DrawBackground(string baseName, Rectangle rect, bool disabled, bool pressed, bool hover, bool highlighted)
{ {
var variant = highlighted ? "-highlighted" : "";
var state = disabled ? "-disabled" : var state = disabled ? "-disabled" :
pressed ? "-pressed" : pressed ? "-pressed" :
hover ? "-hover" : hover ? "-hover" :
""; "";
if (highlighted)
state += "-highlighted";
WidgetUtils.DrawPanel(baseName + state, rect); WidgetUtils.DrawPanel(baseName + variant + state, rect);
} }
} }
} }

View File

@@ -141,7 +141,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
{ {
var w = parent.Get<ToggleButtonWidget>(button); var w = parent.Get<ToggleButtonWidget>(button);
w.OnClick = () => world.ToggleInputMode<T>(); w.OnClick = () => world.ToggleInputMode<T>();
w.IsToggled = () => world.OrderGenerator is T; w.IsHighlighted = () => world.OrderGenerator is T;
w.Get<ImageWidget>("ICON").GetImageName = w.Get<ImageWidget>("ICON").GetImageName =
() => world.OrderGenerator is T ? icon+"-active" : icon; () => world.OrderGenerator is T ? icon+"-active" : icon;

View File

@@ -38,7 +38,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
button.IsDisabled = () => tabs.Groups[button.ProductionGroup].Tabs.Count == 0; button.IsDisabled = () => tabs.Groups[button.ProductionGroup].Tabs.Count == 0;
button.OnMouseUp = mi => selectTab(mi.Modifiers.HasModifier(Modifiers.Shift)); button.OnMouseUp = mi => selectTab(mi.Modifiers.HasModifier(Modifiers.Shift));
button.OnKeyPress = e => selectTab(e.Modifiers.HasModifier(Modifiers.Shift)); button.OnKeyPress = e => selectTab(e.Modifiers.HasModifier(Modifiers.Shift));
button.IsToggled = () => tabs.QueueGroup == button.ProductionGroup; button.IsHighlighted = () => tabs.QueueGroup == button.ProductionGroup;
var chromeName = button.ProductionGroup.ToLowerInvariant(); var chromeName = button.ProductionGroup.ToLowerInvariant();
var icon = button.Get<ImageWidget>("ICON"); var icon = button.Get<ImageWidget>("ICON");

View File

@@ -158,7 +158,7 @@ namespace OpenRA.Mods.Cnc.Widgets
{ {
var rect = new Rectangle(origin.X + ContentWidth, origin.Y, TabWidth, rb.Height); var rect = new Rectangle(origin.X + ContentWidth, origin.Y, TabWidth, rb.Height);
var hover = !leftHover && !rightHover && Ui.MouseOverWidget == this && rect.Contains(Viewport.LastMousePos); var hover = !leftHover && !rightHover && Ui.MouseOverWidget == this && rect.Contains(Viewport.LastMousePos);
var baseName = tab.Queue == CurrentQueue ? "button-toggled" : "button"; var baseName = tab.Queue == CurrentQueue ? "button-highlighted" : "button";
ButtonWidget.DrawBackground(baseName, rect, false, false, hover, false); ButtonWidget.DrawBackground(baseName, rect, false, false, hover, false);
ContentWidth += TabWidth - 1; ContentWidth += TabWidth - 1;

View File

@@ -20,7 +20,6 @@ namespace OpenRA.Mods.Cnc.Widgets
public readonly string TooltipTemplate = "BUTTON_TOOLTIP"; public readonly string TooltipTemplate = "BUTTON_TOOLTIP";
public readonly string TooltipText; public readonly string TooltipText;
public readonly string TooltipContainer; public readonly string TooltipContainer;
public Func<bool> IsToggled = () => false;
Lazy<TooltipContainerWidget> tooltipContainer; Lazy<TooltipContainerWidget> tooltipContainer;
public ToggleButtonWidget() public ToggleButtonWidget()
@@ -52,11 +51,5 @@ namespace OpenRA.Mods.Cnc.Widgets
if (TooltipContainer == null) return; if (TooltipContainer == null) return;
tooltipContainer.Value.RemoveTooltip(); tooltipContainer.Value.RemoveTooltip();
} }
public override void DrawBackground(Rectangle rect, bool disabled, bool pressed, bool hover, bool highlighted)
{
var baseName = IsToggled() ? "button-toggled" : "button";
ButtonWidget.DrawBackground(baseName, rect, disabled, pressed, hover, highlighted);
}
} }
} }

View File

@@ -272,7 +272,7 @@ button-hover: dialog.png
corner-bl: 512,82,1,1 corner-bl: 512,82,1,1
corner-br: 594,82,1,1 corner-br: 594,82,1,1
button-hover-highlighted: dialog.png button-highlighted-hover: dialog.png
background: 513,145,126,126 background: 513,145,126,126
border-r: 639,145,1,126 border-r: 639,145,1,126
border-l: 512,145,1,126 border-l: 512,145,1,126
@@ -295,7 +295,7 @@ button-disabled: dialog.png
corner-bl: 512,82,1,1 corner-bl: 512,82,1,1
corner-br: 594,82,1,1 corner-br: 594,82,1,1
button-disabled-highlighted: dialog.png button-highlighted-disabled: dialog.png
background: 513,145,126,126 background: 513,145,126,126
border-r: 639,145,1,126 border-r: 639,145,1,126
border-l: 512,145,1,126 border-l: 512,145,1,126
@@ -318,7 +318,7 @@ button-pressed: dialog.png
corner-bl: 640,82,1,1 corner-bl: 640,82,1,1
corner-br: 722,82,1,1 corner-br: 722,82,1,1
button-pressed-highlighted: dialog.png button-highlighted-pressed: dialog.png
background: 641,145,126,126 background: 641,145,126,126
border-r: 767,145,1,126 border-r: 767,145,1,126
border-l: 640,145,1,126 border-l: 640,145,1,126

View File

@@ -54,7 +54,7 @@ button-pressed: chrome.png
corner-bl: 64,254,2,2 corner-bl: 64,254,2,2
corner-br: 126,254,2,2 corner-br: 126,254,2,2
button-toggled: chrome.png button-highlighted: chrome.png
background: 257,129,30,30 background: 257,129,30,30
border-r: 287,129,1,30 border-r: 287,129,1,30
border-l: 256,129,1,30 border-l: 256,129,1,30
@@ -65,7 +65,7 @@ button-toggled: chrome.png
corner-bl: 256,159,1,1 corner-bl: 256,159,1,1
corner-br: 287,159,1,1 corner-br: 287,159,1,1
button-toggled-hover: chrome.png button-highlighted-hover: chrome.png
background: 289,129,30,30 background: 289,129,30,30
border-r: 319,129,1,30 border-r: 319,129,1,30
border-l: 288,129,1,30 border-l: 288,129,1,30
@@ -76,7 +76,7 @@ button-toggled-hover: chrome.png
corner-bl: 288,159,1,1 corner-bl: 288,159,1,1
corner-br: 319,159,1,1 corner-br: 319,159,1,1
button-toggled-pressed: chrome.png button-highlighted-pressed: chrome.png
background: 257,161,30,30 background: 257,161,30,30
border-r: 287,161,1,30 border-r: 287,161,1,30
border-l: 256,161,1,30 border-l: 256,161,1,30
@@ -87,7 +87,7 @@ button-toggled-pressed: chrome.png
corner-bl: 256,191,1,1 corner-bl: 256,191,1,1
corner-br: 287,191,1,1 corner-br: 287,191,1,1
button-toggled-disabled: chrome.png button-highlighted-disabled: chrome.png
background: 289,161,30,30 background: 289,161,30,30
border-r: 319,161,1,30 border-r: 319,161,1,30
border-l: 288,161,1,30 border-l: 288,161,1,30

View File

@@ -272,7 +272,7 @@ button-hover: dialog.png
corner-bl: 512,82,1,1 corner-bl: 512,82,1,1
corner-br: 594,82,1,1 corner-br: 594,82,1,1
button-hover-highlighted: dialog.png button-highlighted-hover: dialog.png
background: 513,145,126,126 background: 513,145,126,126
border-r: 639,145,1,126 border-r: 639,145,1,126
border-l: 512,145,1,126 border-l: 512,145,1,126
@@ -295,7 +295,7 @@ button-disabled: dialog.png
corner-bl: 512,82,1,1 corner-bl: 512,82,1,1
corner-br: 594,82,1,1 corner-br: 594,82,1,1
button-disabled-highlighted: dialog.png button-highlighted-disabled: dialog.png
background: 513,145,126,126 background: 513,145,126,126
border-r: 639,145,1,126 border-r: 639,145,1,126
border-l: 512,145,1,126 border-l: 512,145,1,126
@@ -318,7 +318,7 @@ button-pressed: dialog.png
corner-bl: 640,82,1,1 corner-bl: 640,82,1,1
corner-br: 722,82,1,1 corner-br: 722,82,1,1
button-pressed-highlighted: dialog.png button-highlighted-pressed: dialog.png
background: 641,145,126,126 background: 641,145,126,126
border-r: 767,145,1,126 border-r: 767,145,1,126
border-l: 640,145,1,126 border-l: 640,145,1,126