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)
{
var variant = highlighted ? "-highlighted" : "";
var state = disabled ? "-disabled" :
pressed ? "-pressed" :
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);
w.OnClick = () => world.ToggleInputMode<T>();
w.IsToggled = () => world.OrderGenerator is T;
w.IsHighlighted = () => world.OrderGenerator is T;
w.Get<ImageWidget>("ICON").GetImageName =
() => 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.OnMouseUp = mi => selectTab(mi.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 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 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);
ContentWidth += TabWidth - 1;

View File

@@ -20,7 +20,6 @@ namespace OpenRA.Mods.Cnc.Widgets
public readonly string TooltipTemplate = "BUTTON_TOOLTIP";
public readonly string TooltipText;
public readonly string TooltipContainer;
public Func<bool> IsToggled = () => false;
Lazy<TooltipContainerWidget> tooltipContainer;
public ToggleButtonWidget()
@@ -52,11 +51,5 @@ namespace OpenRA.Mods.Cnc.Widgets
if (TooltipContainer == null) return;
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-br: 594,82,1,1
button-hover-highlighted: dialog.png
button-highlighted-hover: dialog.png
background: 513,145,126,126
border-r: 639,145,1,126
border-l: 512,145,1,126
@@ -295,7 +295,7 @@ button-disabled: dialog.png
corner-bl: 512,82,1,1
corner-br: 594,82,1,1
button-disabled-highlighted: dialog.png
button-highlighted-disabled: dialog.png
background: 513,145,126,126
border-r: 639,145,1,126
border-l: 512,145,1,126
@@ -318,7 +318,7 @@ button-pressed: dialog.png
corner-bl: 640,82,1,1
corner-br: 722,82,1,1
button-pressed-highlighted: dialog.png
button-highlighted-pressed: dialog.png
background: 641,145,126,126
border-r: 767,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-br: 126,254,2,2
button-toggled: chrome.png
button-highlighted: chrome.png
background: 257,129,30,30
border-r: 287,129,1,30
border-l: 256,129,1,30
@@ -65,7 +65,7 @@ button-toggled: chrome.png
corner-bl: 256,159,1,1
corner-br: 287,159,1,1
button-toggled-hover: chrome.png
button-highlighted-hover: chrome.png
background: 289,129,30,30
border-r: 319,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-br: 319,159,1,1
button-toggled-pressed: chrome.png
button-highlighted-pressed: chrome.png
background: 257,161,30,30
border-r: 287,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-br: 287,191,1,1
button-toggled-disabled: chrome.png
button-highlighted-disabled: chrome.png
background: 289,161,30,30
border-r: 319,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-br: 594,82,1,1
button-hover-highlighted: dialog.png
button-highlighted-hover: dialog.png
background: 513,145,126,126
border-r: 639,145,1,126
border-l: 512,145,1,126
@@ -295,7 +295,7 @@ button-disabled: dialog.png
corner-bl: 512,82,1,1
corner-br: 594,82,1,1
button-disabled-highlighted: dialog.png
button-highlighted-disabled: dialog.png
background: 513,145,126,126
border-r: 639,145,1,126
border-l: 512,145,1,126
@@ -318,7 +318,7 @@ button-pressed: dialog.png
corner-bl: 640,82,1,1
corner-br: 722,82,1,1
button-pressed-highlighted: dialog.png
button-highlighted-pressed: dialog.png
background: 641,145,126,126
border-r: 767,145,1,126
border-l: 640,145,1,126