Use ScrollItem in ra server browser
This commit is contained in:
@@ -16,6 +16,8 @@ namespace OpenRA.Widgets
|
|||||||
{
|
{
|
||||||
public class ScrollItemWidget : ButtonWidget
|
public class ScrollItemWidget : ButtonWidget
|
||||||
{
|
{
|
||||||
|
public int EnableHover = ChromeMetrics.GetInt("EnableHover");
|
||||||
|
|
||||||
public ScrollItemWidget()
|
public ScrollItemWidget()
|
||||||
: base()
|
: base()
|
||||||
{
|
{
|
||||||
@@ -33,7 +35,7 @@ namespace OpenRA.Widgets
|
|||||||
public override void DrawInner()
|
public override void DrawInner()
|
||||||
{
|
{
|
||||||
var state = IsSelected() ? "scrollitem-selected" :
|
var state = IsSelected() ? "scrollitem-selected" :
|
||||||
RenderBounds.Contains(Viewport.LastMousePos) ? "scrollitem-hover" :
|
EnableHover == 1 && RenderBounds.Contains(Viewport.LastMousePos) ? "scrollitem-hover" :
|
||||||
null;
|
null;
|
||||||
|
|
||||||
if (state != null)
|
if (state != null)
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
|
|||||||
static List<Widget> GameButtons = new List<Widget>();
|
static List<Widget> GameButtons = new List<Widget>();
|
||||||
|
|
||||||
GameServer currentServer = null;
|
GameServer currentServer = null;
|
||||||
Widget ServerTemplate;
|
ScrollItemWidget ServerTemplate;
|
||||||
|
|
||||||
[ObjectCreator.UseCtor]
|
[ObjectCreator.UseCtor]
|
||||||
public ServerBrowserDelegate( [ObjectCreator.Param] Widget widget )
|
public ServerBrowserDelegate( [ObjectCreator.Param] Widget widget )
|
||||||
@@ -58,7 +58,7 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
|
|||||||
|
|
||||||
|
|
||||||
var sl = bg.GetWidget<ScrollPanelWidget>("SERVER_LIST");
|
var sl = bg.GetWidget<ScrollPanelWidget>("SERVER_LIST");
|
||||||
ServerTemplate = sl.GetWidget<LabelWidget>("SERVER_TEMPLATE");
|
ServerTemplate = sl.GetWidget<ScrollItemWidget>("SERVER_TEMPLATE");
|
||||||
|
|
||||||
bg.GetWidget("REFRESH_BUTTON").OnMouseUp = mi =>
|
bg.GetWidget("REFRESH_BUTTON").OnMouseUp = mi =>
|
||||||
{
|
{
|
||||||
@@ -146,16 +146,9 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
|
|||||||
foreach (var loop in gamesWaiting)
|
foreach (var loop in gamesWaiting)
|
||||||
{
|
{
|
||||||
var game = loop;
|
var game = loop;
|
||||||
var template = ServerTemplate.Clone() as LabelWidget;
|
var item = ScrollItemWidget.Setup(ServerTemplate, () => currentServer == game, () => currentServer = game);
|
||||||
template.Id = "JOIN_GAME_{0}".F(i);
|
item.GetWidget<LabelWidget>("TITLE").GetText = () => "{0} ({1})".F(game.Name, game.Address);
|
||||||
template.GetText = () => " {0} ({1})".F( /* /8 = hack */
|
sl.AddChild(item);
|
||||||
game.Name,
|
|
||||||
game.Address);
|
|
||||||
template.GetBackground = () => (currentServer == game) ? "dialog2" : null;
|
|
||||||
template.OnMouseDown = mi => { if (mi.Button != MouseButton.Left) return false; currentServer = game; return true; };
|
|
||||||
template.IsVisible = () => true;
|
|
||||||
sl.AddChild(template);
|
|
||||||
|
|
||||||
if (i == 0) currentServer = game;
|
if (i == 0) currentServer = game;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,4 +2,5 @@
|
|||||||
|
|
||||||
Metrics:
|
Metrics:
|
||||||
ButtonDepth: 0
|
ButtonDepth: 0
|
||||||
ButtonFont: Bold
|
ButtonFont: Bold
|
||||||
|
EnableHover: 1
|
||||||
@@ -420,4 +420,16 @@ checkbox-pressed: dialog.png
|
|||||||
corner-tl: 640,0,1,1
|
corner-tl: 640,0,1,1
|
||||||
corner-tr: 722,0,1,1
|
corner-tr: 722,0,1,1
|
||||||
corner-bl: 640,82,1,1
|
corner-bl: 640,82,1,1
|
||||||
corner-br: 722,82,1,1
|
corner-br: 722,82,1,1
|
||||||
|
|
||||||
|
# A copy of dialog2
|
||||||
|
scrollitem-selected: 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: 594,0,1,1
|
||||||
|
corner-bl: 512,82,1,1
|
||||||
|
corner-br: 594,82,1,1
|
||||||
@@ -109,13 +109,18 @@ Background@JOINSERVER_BG:
|
|||||||
Width:390
|
Width:390
|
||||||
Height:300
|
Height:300
|
||||||
Children:
|
Children:
|
||||||
Label@SERVER_TEMPLATE:
|
ScrollItem@SERVER_TEMPLATE:
|
||||||
Id:SERVER_TEMPLATE
|
Id:SERVER_TEMPLATE
|
||||||
Width:PARENT_RIGHT-28
|
Width:PARENT_RIGHT-27
|
||||||
Height:25
|
Height:25
|
||||||
X:2
|
X:2
|
||||||
Y:0
|
Y:0
|
||||||
Visible:false
|
Children:
|
||||||
|
Label@TITLE:
|
||||||
|
X:10
|
||||||
|
Id:TITLE
|
||||||
|
Width:200
|
||||||
|
Height:25
|
||||||
Label@JOINSERVER_PROGRESS_TITLE:
|
Label@JOINSERVER_PROGRESS_TITLE:
|
||||||
Id:JOINSERVER_PROGRESS_TITLE
|
Id:JOINSERVER_PROGRESS_TITLE
|
||||||
X:150
|
X:150
|
||||||
|
|||||||
@@ -2,4 +2,5 @@
|
|||||||
|
|
||||||
Metrics:
|
Metrics:
|
||||||
ButtonDepth: 1
|
ButtonDepth: 1
|
||||||
ButtonFont: Regular
|
ButtonFont: Regular
|
||||||
|
EnableHover: 0
|
||||||
Reference in New Issue
Block a user