From 0b875e2ca25505b84bf05f3e1d1105bca6d40fcd Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Mon, 13 Oct 2014 17:21:19 +1300 Subject: [PATCH] Allow custom ScrollPanel button styles. --- OpenRA.Game/Widgets/ScrollPanelWidget.cs | 9 ++- mods/cnc/chrome.yaml | 88 +++++++++++----------- mods/d2k/chrome.yaml | 96 ++++++++++++------------ mods/ra/chrome.yaml | 49 ++++++++++++ mods/ts/chrome.yaml | 96 ++++++++++++------------ 5 files changed, 194 insertions(+), 144 deletions(-) diff --git a/OpenRA.Game/Widgets/ScrollPanelWidget.cs b/OpenRA.Game/Widgets/ScrollPanelWidget.cs index 8403ef675e..423d0ab8d5 100644 --- a/OpenRA.Game/Widgets/ScrollPanelWidget.cs +++ b/OpenRA.Game/Widgets/ScrollPanelWidget.cs @@ -34,6 +34,7 @@ namespace OpenRA.Widgets public int ItemSpacing = 2; public int ButtonDepth = ChromeMetrics.Get("ButtonDepth"); public string Background = "scrollpanel-bg"; + public string Button = "scrollpanel-button"; public int ContentHeight; public ILayout Layout; public int MinimumThumbSize = 10; @@ -140,12 +141,12 @@ namespace OpenRA.Widgets var thumbHover = Ui.MouseOverWidget == this && thumbRect.Contains(Viewport.LastMousePos); WidgetUtils.DrawPanel(Background, backgroundRect); - WidgetUtils.DrawPanel("scrollpanel-bg", scrollbarRect); - ButtonWidget.DrawBackground("button", upButtonRect, UpDisabled, UpPressed, upHover, false); - ButtonWidget.DrawBackground("button", downButtonRect, DownDisabled, DownPressed, downHover, false); + WidgetUtils.DrawPanel(Background, scrollbarRect); + ButtonWidget.DrawBackground(Button, upButtonRect, UpDisabled, UpPressed, upHover, false); + ButtonWidget.DrawBackground(Button, downButtonRect, DownDisabled, DownPressed, downHover, false); if (thumbHeight > 0) - ButtonWidget.DrawBackground("scrollthumb", thumbRect, false, HasMouseFocus && thumbHover, thumbHover, false); + ButtonWidget.DrawBackground(Button, thumbRect, false, HasMouseFocus && thumbHover, thumbHover, false); var upOffset = !UpPressed || UpDisabled ? 4 : 4 + ButtonDepth; var downOffset = !DownPressed || DownDisabled ? 4 : 4 + ButtonDepth; diff --git a/mods/cnc/chrome.yaml b/mods/cnc/chrome.yaml index 405f4e6130..695c1e1c41 100644 --- a/mods/cnc/chrome.yaml +++ b/mods/cnc/chrome.yaml @@ -98,50 +98,6 @@ button-highlighted-disabled: chrome.png corner-bl: 288,191,1,1 corner-br: 319,191,1,1 -scrollthumb: chrome.png - background: 2,194,60,60 - border-r: 62,194,2,60 - border-l: 0,194,2,60 - border-b: 2,254,60,2 - border-t: 2,192,60,2 - corner-tl: 0,192,2,2 - corner-tr: 62,192,2,2 - corner-bl: 0,254,2,2 - corner-br: 62,254,2,2 - -scrollthumb-hover: chrome.png - background: 2,130,60,60 - border-r: 62,130,2,60 - border-l: 0,130,2,60 - border-b: 2,190,60,2 - border-t: 2,128,60,2 - corner-tl: 0,128,2,2 - corner-tr: 62,128,2,2 - corner-bl: 0,190,2,2 - corner-br: 62,190,2,2 - -scrollthumb-disabled: chrome.png - background: 66,130,60,60 - border-r: 126,130,2,60 - border-l: 64,130,2,60 - border-b: 66,190,60,2 - border-t: 66,128,60,2 - corner-tl: 64,128,2,2 - corner-tr: 126,128,2,2 - corner-bl: 64,190,2,2 - corner-br: 126,190,2,2 - -scrollthumb-pressed: chrome.png - background: 66,194,60,60 - border-r: 126,194,2,60 - border-l: 64,194,2,60 - border-b: 66,254,60,2 - border-t: 66,192,60,2 - corner-tl: 64,192,2,2 - corner-tr: 126,192,2,2 - corner-bl: 64,254,2,2 - corner-br: 126,254,2,2 - # A copy of button textfield: chrome.png background: 2,194,60,60 @@ -227,6 +183,50 @@ scrollpanel-bg: chrome.png corner-bl: 64,126,2,2 corner-br: 126,126,2,2 +scrollpanel-button: chrome.png + background: 2,194,60,60 + border-r: 62,194,2,60 + border-l: 0,194,2,60 + border-b: 2,254,60,2 + border-t: 2,192,60,2 + corner-tl: 0,192,2,2 + corner-tr: 62,192,2,2 + corner-bl: 0,254,2,2 + corner-br: 62,254,2,2 + +scrollpanel-button-hover: chrome.png + background: 2,130,60,60 + border-r: 62,130,2,60 + border-l: 0,130,2,60 + border-b: 2,190,60,2 + border-t: 2,128,60,2 + corner-tl: 0,128,2,2 + corner-tr: 62,128,2,2 + corner-bl: 0,190,2,2 + corner-br: 62,190,2,2 + +scrollpanel-button-disabled: chrome.png + background: 66,130,60,60 + border-r: 126,130,2,60 + border-l: 64,130,2,60 + border-b: 66,190,60,2 + border-t: 66,128,60,2 + corner-tl: 64,128,2,2 + corner-tr: 126,128,2,2 + corner-bl: 64,190,2,2 + corner-br: 126,190,2,2 + +scrollpanel-button-pressed: chrome.png + background: 66,194,60,60 + border-r: 126,194,2,60 + border-l: 64,194,2,60 + border-b: 66,254,60,2 + border-t: 66,192,60,2 + corner-tl: 64,192,2,2 + corner-tr: 126,192,2,2 + corner-bl: 64,254,2,2 + corner-br: 126,254,2,2 + # A copy of button-hover scrollitem-hover: chrome.png background: 2,130,60,60 diff --git a/mods/d2k/chrome.yaml b/mods/d2k/chrome.yaml index 119686643f..77bd0104f0 100644 --- a/mods/d2k/chrome.yaml +++ b/mods/d2k/chrome.yaml @@ -384,55 +384,7 @@ button-highlighted-disabled: dialog.png corner-tr: 639,0,1,1 corner-bl: 768,127,1,1 corner-br: 639,127,1,1 - -# A copy of dialog2 (normal button) -scrollthumb: dialog.png - background: 513,1,126,126 - border-r: 639,1,1,126 - border-l: 512,1,1,126 - border-b: 513,127,126,1 - border-t: 513,0,126,1 - corner-tl: 512,0,1,1 - corner-tr: 639,0,1,1 - corner-bl: 512,127,1,1 - corner-br: 639,127,1,1 -# A copy of button-hover -scrollthumb-hover: dialog.png - background: 513,129,126,126 - border-r: 639,129,1,126 - border-l: 512,129,1,126 - border-b: 513,255,126,1 - border-t: 513,128,126,1 - corner-tl: 512,128,1,1 - corner-tr: 639,128,1,1 - corner-bl: 512,255,1,1 - corner-br: 639,255,1,1 - -# A copy of dialog3 (pressed button) -scrollthumb-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: 767,0,1,1 - corner-bl: 640,127,1,1 - corner-br: 767,127,1,1 - -# A copy of dialog2 (normal button) -scrollthumb-disabled: dialog.png - background: 513,1,126,126 - border-r: 639,1,1,126 - border-l: 512,1,1,126 - border-b: 513,127,126,1 - border-t: 513,0,126,1 - corner-tl: 512,0,1,1 - corner-tr: 639,0,1,1 - corner-bl: 512,127,1,1 - corner-br: 639,127,1,1 - # A copy of dialog3 (pressed button) textfield: dialog.png background: 641,1,126,126 @@ -493,6 +445,54 @@ scrollpanel-bg: dialog.png corner-bl: 640,127,1,1 corner-br: 767,127,1,1 +# A copy of dialog2 (normal button) +scrollpanel-button: dialog.png + background: 513,1,126,126 + border-r: 639,1,1,126 + border-l: 512,1,1,126 + border-b: 513,127,126,1 + border-t: 513,0,126,1 + corner-tl: 512,0,1,1 + corner-tr: 639,0,1,1 + corner-bl: 512,127,1,1 + corner-br: 639,127,1,1 + +# A copy of button-hover +scrollpanel-button-hover: dialog.png + background: 513,129,126,126 + border-r: 639,129,1,126 + border-l: 512,129,1,126 + border-b: 513,255,126,1 + border-t: 513,128,126,1 + corner-tl: 512,128,1,1 + corner-tr: 639,128,1,1 + corner-bl: 512,255,1,1 + corner-br: 639,255,1,1 + +# A copy of dialog3 (pressed button) +scrollpanel-button-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: 767,0,1,1 + corner-bl: 640,127,1,1 + corner-br: 767,127,1,1 + +# A copy of dialog2 (normal button) +scrollpanel-button-disabled: dialog.png + background: 513,1,126,126 + border-r: 639,1,1,126 + border-l: 512,1,1,126 + border-b: 513,127,126,1 + border-t: 513,0,126,1 + corner-tl: 512,0,1,1 + corner-tr: 639,0,1,1 + corner-bl: 512,127,1,1 + corner-br: 639,127,1,1 + slider: dialog.png tick: 512,1,2,4 diff --git a/mods/ra/chrome.yaml b/mods/ra/chrome.yaml index c2f1055bcc..e109ac662d 100644 --- a/mods/ra/chrome.yaml +++ b/mods/ra/chrome.yaml @@ -483,6 +483,55 @@ scrollpanel-bg: dialog.png corner-bl: 640,127,1,1 corner-br: 767,127,1,1 + +# A copy of dialog2 (normal button) +scrollpanel-button: dialog.png + background: 513,1,126,126 + border-r: 639,1,1,126 + border-l: 512,1,1,126 + border-b: 513,127,126,1 + border-t: 513,0,126,1 + corner-tl: 512,0,1,1 + corner-tr: 639,0,1,1 + corner-bl: 512,127,1,1 + corner-br: 639,127,1,1 + +# A copy of button-hover +scrollpanel-button-hover: dialog.png + background: 513,129,126,126 + border-r: 639,129,1,126 + border-l: 512,129,1,126 + border-b: 513,255,126,1 + border-t: 513,128,126,1 + corner-tl: 512,128,1,1 + corner-tr: 639,128,1,1 + corner-bl: 512,255,1,1 + corner-br: 639,255,1,1 + +# A copy of dialog3 (pressed button) +scrollpanel-button-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: 767,0,1,1 + corner-bl: 640,127,1,1 + corner-br: 767,127,1,1 + +# A copy of dialog2 (normal button) +scrollpanel-button-disabled: dialog.png + background: 513,1,126,126 + border-r: 639,1,1,126 + border-l: 512,1,1,126 + border-b: 513,127,126,1 + border-t: 513,0,126,1 + corner-tl: 512,0,1,1 + corner-tr: 639,0,1,1 + corner-bl: 512,127,1,1 + corner-br: 639,127,1,1 + slider: dialog.png tick: 512,1,2,4 diff --git a/mods/ts/chrome.yaml b/mods/ts/chrome.yaml index 25e0b6b090..f3a33ac644 100644 --- a/mods/ts/chrome.yaml +++ b/mods/ts/chrome.yaml @@ -397,54 +397,6 @@ newsbutton-pressed: dialog.png corner-bl: 640,127,1,1 corner-br: 767,127,1,1 -# A copy of dialog2 (normal button) -scrollthumb: dialog.png - background: 513,1,126,126 - border-r: 639,1,1,126 - border-l: 512,1,1,126 - border-b: 513,127,126,1 - border-t: 513,0,126,1 - corner-tl: 512,0,1,1 - corner-tr: 639,0,1,1 - corner-bl: 512,127,1,1 - corner-br: 639,127,1,1 - -# A copy of button-hover -scrollthumb-hover: dialog.png - background: 513,129,126,126 - border-r: 639,129,1,126 - border-l: 512,129,1,126 - border-b: 513,255,126,1 - border-t: 513,128,126,1 - corner-tl: 512,128,1,1 - corner-tr: 639,128,1,1 - corner-bl: 512,255,1,1 - corner-br: 639,255,1,1 - -# A copy of dialog3 (pressed button) -scrollthumb-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: 767,0,1,1 - corner-bl: 640,127,1,1 - corner-br: 767,127,1,1 - -# A copy of dialog2 (normal button) -scrollthumb-disabled: dialog.png - background: 513,1,126,126 - border-r: 639,1,1,126 - border-l: 512,1,1,126 - border-b: 513,127,126,1 - border-t: 513,0,126,1 - corner-tl: 512,0,1,1 - corner-tr: 639,0,1,1 - corner-bl: 512,127,1,1 - corner-br: 639,127,1,1 - # A copy of dialog3 (pressed button) textfield: dialog.png background: 641,1,126,126 @@ -505,6 +457,54 @@ scrollpanel-bg: dialog.png corner-bl: 640,127,1,1 corner-br: 767,127,1,1 +# A copy of dialog2 (normal button) +scrollpanel-button: dialog.png + background: 513,1,126,126 + border-r: 639,1,1,126 + border-l: 512,1,1,126 + border-b: 513,127,126,1 + border-t: 513,0,126,1 + corner-tl: 512,0,1,1 + corner-tr: 639,0,1,1 + corner-bl: 512,127,1,1 + corner-br: 639,127,1,1 + +# A copy of button-hover +scrollpanel-button-hover: dialog.png + background: 513,129,126,126 + border-r: 639,129,1,126 + border-l: 512,129,1,126 + border-b: 513,255,126,1 + border-t: 513,128,126,1 + corner-tl: 512,128,1,1 + corner-tr: 639,128,1,1 + corner-bl: 512,255,1,1 + corner-br: 639,255,1,1 + +# A copy of dialog3 (pressed button) +scrollpanel-button-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: 767,0,1,1 + corner-bl: 640,127,1,1 + corner-br: 767,127,1,1 + +# A copy of dialog2 (normal button) +scrollpanel-button-disabled: dialog.png + background: 513,1,126,126 + border-r: 639,1,1,126 + border-l: 512,1,1,126 + border-b: 513,127,126,1 + border-t: 513,0,126,1 + corner-tl: 512,0,1,1 + corner-tr: 639,0,1,1 + corner-bl: 512,127,1,1 + corner-br: 639,127,1,1 + slider: dialog.png tick: 512,1,1,4