Basic ImageButton for drawing flags

This commit is contained in:
alzeih
2010-06-13 17:36:12 +12:00
parent 5e630768a2
commit 1a20249f44
8 changed files with 98 additions and 7 deletions

View File

@@ -238,6 +238,7 @@
<Compile Include="Widgets\ColorBlockWidget.cs" />
<Compile Include="GameRules\MusicInfo.cs" />
<Compile Include="Widgets\PowerBinWidget.cs" />
<Compile Include="Widgets\ImageWidget.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">

View File

@@ -1,4 +1,4 @@
#region Copyright & License Information
#region Copyright & License Information
/*
* Copyright 2007,2009,2010 Chris Forbes, Robert Pepperell, Matthew Bowra-Dean, Paul Chote, Alli Witheford.
* This file is part of OpenRA.

View File

@@ -81,6 +81,11 @@ namespace OpenRA.Widgets.Delegates
faction.OnMouseUp = CycleRace;
faction.GetText = () => c.Country;
//TODO: make part of button?
var factionflag = template.GetWidget<ImageWidget>("FACTIONFLAG");
factionflag.GetImageName = () => c.Country;
factionflag.GetImageCollection = () => "flags";
var spawn = template.GetWidget<ButtonWidget>("SPAWN");
spawn.OnMouseUp = CycleSpawnPoint;
spawn.GetText = () => (c.SpawnPoint == 0) ? "-" : c.SpawnPoint.ToString();
@@ -101,6 +106,10 @@ namespace OpenRA.Widgets.Delegates
var faction = template.GetWidget<LabelWidget>("FACTION");
faction.GetText = () => c.Country;
var factionflag = template.GetWidget<ImageWidget>("FACTIONFLAG");
factionflag.GetImageName = () => c.Country;
factionflag.GetImageCollection = () => "flags";
var spawn = template.GetWidget<LabelWidget>("SPAWN");
spawn.GetText = () => (c.SpawnPoint == 0) ? "-" : c.SpawnPoint.ToString();

View File

@@ -0,0 +1,41 @@
using System;
using OpenRA.Graphics;
namespace OpenRA.Widgets
{
public class ImageWidget : Widget
{
public string ImageCollection = "";
public string ImageName = "";
public Func<string> GetImageName;
public Func<string> GetImageCollection;
public ImageWidget ()
: base()
{
GetImageName = () => { return ImageName; };
GetImageCollection = () => { return ImageCollection; };
}
public ImageWidget(Widget other)
: base(other)
{
ImageName = (other as ImageWidget).ImageName;
GetImageName = (other as ImageWidget).GetImageName;
}
public override Widget Clone()
{
return new ImageWidget(this);
}
public override void DrawInner(World world)
{
var name = GetImageName();
var collection = GetImageCollection();
var position = DrawPosition();
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.chrome.renderer, collection, name), position);
}
}
}

View File

@@ -13,8 +13,11 @@
<image name="bg" x="306" y="31" width="192" height="192" />
<image name="power-indicator" x="187" y="4" width="4" height="7" />
</collection>
<collection name="power-gdi" src="chrome-gdi.png">
<image name="power-indicator" x="187" y="4" width="4" height="7" />
</collection>
<collection name="palette-gdi" src="chrome-gdi.png">
<image name="top" x="297" y="288" width="201" height="9" />
@@ -56,8 +59,11 @@
<image name="bg" x="306" y="31" width="192" height="192" />
<image name="power-indicator" x="187" y="4" width="4" height="7" />
</collection>
<collection name="power-nod" src="chrome-nod.png">
<image name="power-indicator" x="187" y="4" width="4" height="7" />
</collection>
<collection name="palette-nod" src="chrome-nod.png">
<image name="top" x="297" y="288" width="201" height="9" />
@@ -190,4 +196,9 @@
<image name="pressed" x="34" y="56" width="34" height="28" />
<image name="disabled" x="68" y="56" width="34" height="28" />
</collection>
<collection name="flags" src="buttons.png">
<image name="GDI" x="0" y="56" width="30" height="25" />
<image name="Nod" x="0" y="56" width="30" height="25" />
<image name="Random" x="0" y="56" width="30" height="25" />
</collection>
</chrome>

View File

@@ -340,10 +340,16 @@ Container:
Button@FACTION:
Id:FACTION
Text:Faction
Width:90
Width:60
Height:25
X:180
Y:0
Image@FACTIONFLAG:
Id:FACTIONFLAG
Width:30
Height:25
X:235
Y:0
Button@SPAWN:
Id:SPAWN
Text:Spawn
@@ -388,11 +394,17 @@ Container:
Label@FACTION:
Id:FACTION
Text:Faction
Width:90
Width:60
Height:25
X:180
Y:0
Align:Center
Image@FACTIONFLAG:
Id:FACTIONFLAG
Width:30
Height:25
X:235
Y:0
Label@SPAWN:
Id:SPAWN
Text:Spawn

View File

@@ -189,4 +189,9 @@
<image name="pressed" x="34" y="56" width="34" height="28" />
<image name="disabled" x="68" y="56" width="34" height="28" />
</collection>
<collection name="flags" src="buttons.png">
<image name="Allies" x="0" y="56" width="30" height="25" />
<image name="Soviet" x="0" y="56" width="30" height="25" />
<image name="Random" x="0" y="56" width="30" height="25" />
</collection>
</chrome>

View File

@@ -340,10 +340,16 @@ Container:
Button@FACTION:
Id:FACTION
Text:Faction
Width:90
Width:60
Height:25
X:180
Y:0
Image@FACTIONFLAG:
Id:FACTIONFLAG
Width:30
Height:25
X:235
Y:0
Button@SPAWN:
Id:SPAWN
Text:Spawn
@@ -388,11 +394,17 @@ Container:
Label@FACTION:
Id:FACTION
Text:Faction
Width:90
Width:60
Height:25
X:180
Y:0
Align:Center
Image@FACTIONFLAG:
Id:FACTIONFLAG
Width:30
Height:25
X:235
Y:0
Label@SPAWN:
Id:SPAWN
Text:Spawn