From d043f4807fcee1fb8011929ddb1c379b0c428061 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Fri, 17 Jun 2011 16:20:30 +1200 Subject: [PATCH] Make the checkbox depressed state optional, and disabled in ra. --- OpenRA.Game/Widgets/CheckboxWidget.cs | 5 +++-- OpenRA.Game/Widgets/ChromeMetrics.cs | 5 +++++ mods/cnc/metrics.yaml | 1 + mods/ra/chrome.yaml | 13 ------------- mods/ra/metrics.yaml | 1 + 5 files changed, 10 insertions(+), 15 deletions(-) diff --git a/OpenRA.Game/Widgets/CheckboxWidget.cs b/OpenRA.Game/Widgets/CheckboxWidget.cs index 65902195d7..50ad65b0ef 100644 --- a/OpenRA.Game/Widgets/CheckboxWidget.cs +++ b/OpenRA.Game/Widgets/CheckboxWidget.cs @@ -19,6 +19,7 @@ namespace OpenRA.Widgets { public Func IsChecked = () => false; public int BaseLine = 1; + public bool HasPressedState = ChromeMetrics.GetBool("CheckboxPressedState"); public CheckboxWidget() : base() @@ -36,7 +37,7 @@ namespace OpenRA.Widgets var rect = RenderBounds; var check = new Rectangle(rect.Location, new Size(Bounds.Height, Bounds.Height)); var state = IsDisabled() ? "checkbox-disabled" : - Depressed ? "checkbox-pressed" : + Depressed && HasPressedState ? "checkbox-pressed" : RenderBounds.Contains(Viewport.LastMousePos) ? "checkbox-hover" : "checkbox"; @@ -48,7 +49,7 @@ namespace OpenRA.Widgets if (IsChecked() || Depressed) WidgetUtils.DrawRGBA( - ChromeProvider.GetImage("checkbox-bits", Depressed ? "pressed" : "checked"), + ChromeProvider.GetImage("checkbox-bits", Depressed && HasPressedState ? "pressed" : "checked"), new float2(rect.Left + 2, rect.Top + 2)); } diff --git a/OpenRA.Game/Widgets/ChromeMetrics.cs b/OpenRA.Game/Widgets/ChromeMetrics.cs index 71cceb3fd7..c0b9df3ab5 100644 --- a/OpenRA.Game/Widgets/ChromeMetrics.cs +++ b/OpenRA.Game/Widgets/ChromeMetrics.cs @@ -39,5 +39,10 @@ namespace OpenRA.Widgets { return int.Parse(data[key]); } + + public static bool GetBool(string key) + { + return bool.Parse(data[key]); + } } } diff --git a/mods/cnc/metrics.yaml b/mods/cnc/metrics.yaml index 1c8954fb7b..dfb1dbf867 100644 --- a/mods/cnc/metrics.yaml +++ b/mods/cnc/metrics.yaml @@ -3,3 +3,4 @@ Metrics: ButtonDepth: 0 ButtonFont: Bold + CheckboxPressedState: true diff --git a/mods/ra/chrome.yaml b/mods/ra/chrome.yaml index da957404d3..58ccb4812d 100644 --- a/mods/ra/chrome.yaml +++ b/mods/ra/chrome.yaml @@ -431,7 +431,6 @@ checkbox: dialog.png checkbox-bits: buttons.png checked: 0,112,16,16 - pressed: 0,128,16,16 # A copy of dialog3 checkbox-hover: dialog.png @@ -456,18 +455,6 @@ checkbox-disabled: dialog.png corner-tr: 722,0,1,1 corner-bl: 640,82,1,1 corner-br: 722,82,1,1 - -# A copy of dialog3 -checkbox-pressed: dialog.png - background: 641,1,126,126 - border-r: 767,1,1,126 - border-l: 640,1,1,126 - border-b: 641,127,126,1 - border-t: 641,0,126,1 - corner-tl: 640,0,1,1 - corner-tr: 722,0,1,1 - corner-bl: 640,82,1,1 - corner-br: 722,82,1,1 # A copy of dialog3 scrollitem-selected: dialog.png diff --git a/mods/ra/metrics.yaml b/mods/ra/metrics.yaml index 165d42ebbe..f9ebcca321 100644 --- a/mods/ra/metrics.yaml +++ b/mods/ra/metrics.yaml @@ -3,3 +3,4 @@ Metrics: ButtonDepth: 1 ButtonFont: Regular + CheckboxPressedState: false