Added player-selector for keyboard selection of profiles. Doesn't work yet.

This commit is contained in:
Florian Kuepper committed 2012-05-06 15:59:05 +02:00
1 parent b2c7b4c7cb
commit 0733b8be99
2 files changed
+47 -18

No files matched your search

@@ -679,8 +679,7 @@
<Z>0,00</Z> <Z>0,00</Z>
<W>970</W> <W>970</W>
<H>500</H> <H>500</H>
<SkinSelector>Button</SkinSelector> <SkinTileSelected>PlayerSelector</SkinTileSelected>
<ColorSelector>SelectSlideSColor</ColorSelector>
<SkinEmptyTile>Button</SkinEmptyTile> <SkinEmptyTile>Button</SkinEmptyTile>
<ColorEmptyTile>SelectSlideSColor</ColorEmptyTile> <ColorEmptyTile>SelectSlideSColor</ColorEmptyTile>
<Tiles> <Tiles>
+46 -16
View File
@@ -16,6 +16,7 @@ namespace Vocaluxe.Menu
public string Name; public string Name;
public string TextureEmptyTileName; public string TextureEmptyTileName;
public string ColorEmptyTileName; public string ColorEmptyTileName;
public string TextureTileSelectedName;
public float NameSpace; public float NameSpace;
public float NameHeight; public float NameHeight;
public string NameFont; public string NameFont;
@@ -55,6 +56,7 @@ namespace Vocaluxe.Menu
private List<CTile> _Tiles; private List<CTile> _Tiles;
private STexture _TextureEmptyTile; private STexture _TextureEmptyTile;
private STexture _TextureTileSelected;
public SColorF ColorEmptyTile; public SColorF ColorEmptyTile;
@@ -75,12 +77,15 @@ namespace Vocaluxe.Menu
private List<int> VisibleProfiles; private List<int> VisibleProfiles;
private CStatic PlayerSelector;
public CNameSelection() public CNameSelection()
{ {
_Theme = new SThemeNameSelection(); _Theme = new SThemeNameSelection();
_TextureEmptyTile = CTheme.GetSkinTexture(_Theme.TextureEmptyTileName); _TextureEmptyTile = CTheme.GetSkinTexture(_Theme.TextureEmptyTileName);
_TextureTileSelected = CTheme.GetSkinTexture(_Theme.TextureTileSelectedName);
_Tiles = new List<CTile>(); _Tiles = new List<CTile>();
@@ -101,6 +106,11 @@ namespace Vocaluxe.Menu
} }
} }
PlayerSelector = new CStatic();
PlayerSelector.Texture = _TextureTileSelected;
PlayerSelector.Rect = new SRectF(0, 0, (_TileW + 2), (_TileH + 2), (Rect.Z - 0.5f));
PlayerSelector.Visible = false;
UpdateVisibleProfiles(); UpdateVisibleProfiles();
UpdateList(0); UpdateList(0);
@@ -131,6 +141,8 @@ namespace Vocaluxe.Menu
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref ColorEmptyTile.A); _ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref ColorEmptyTile.A);
} }
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinTileSelected", navigator, ref _Theme.TextureTileSelectedName, String.Empty);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/W", navigator, ref _TileW); _ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/W", navigator, ref _TileW);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/H", navigator, ref _TileH); _ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/H", navigator, ref _TileH);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/NumW", navigator, ref _NumW); _ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/NumW", navigator, ref _NumW);
@@ -194,16 +206,27 @@ namespace Vocaluxe.Menu
writer.WriteElementString("A", ColorEmptyTile.A.ToString("#0.00")); writer.WriteElementString("A", ColorEmptyTile.A.ToString("#0.00"));
} }
writer.WriteComment("<SkinTileSelected>: Texture name");
writer.WriteElementString("SkinTileSelected", _Theme.TextureTileSelectedName);
writer.WriteComment("<Tiles>: Options for tiles");
writer.WriteStartElement("Tiles"); writer.WriteStartElement("Tiles");
writer.WriteComment("<W>, <H>: Width and height of tile");
writer.WriteElementString("W", _TileW.ToString()); writer.WriteElementString("W", _TileW.ToString());
writer.WriteElementString("H", _TileH.ToString()); writer.WriteElementString("H", _TileH.ToString());
writer.WriteComment("<NumW>, <NumH>: Number of tiles");
writer.WriteElementString("NumW", _NumW.ToString()); writer.WriteElementString("NumW", _NumW.ToString());
writer.WriteElementString("NumH", _NumH.ToString()); writer.WriteElementString("NumH", _NumH.ToString());
writer.WriteComment("<SpaceW>, <SpaceH>: Space between tiles");
writer.WriteElementString("SpaceW", _SpaceW.ToString("#0.00")); writer.WriteElementString("SpaceW", _SpaceW.ToString("#0.00"));
writer.WriteElementString("SpaceH", _SpaceH.ToString("#0.00")); writer.WriteElementString("SpaceH", _SpaceH.ToString("#0.00"));
writer.WriteComment("<Name>: Options for player-name");
writer.WriteStartElement("Name"); writer.WriteStartElement("Name");
writer.WriteComment("<Space>: Space between name and tile");
writer.WriteElementString("Space", _Theme.NameSpace.ToString("#0.0")); writer.WriteElementString("Space", _Theme.NameSpace.ToString("#0.0"));
writer.WriteComment("<Font>: Text font name");
writer.WriteElementString("Font", _Theme.NameFont); writer.WriteElementString("Font", _Theme.NameFont);
writer.WriteComment("<Color>: Text color from ColorScheme (high priority)");
if (_Theme.NameColorName != String.Empty) if (_Theme.NameColorName != String.Empty)
{ {
writer.WriteElementString("Color", _Theme.NameColorName); writer.WriteElementString("Color", _Theme.NameColorName);
@@ -215,8 +238,10 @@ namespace Vocaluxe.Menu
writer.WriteElementString("B", _Theme.NameColor.B.ToString("#0.00")); writer.WriteElementString("B", _Theme.NameColor.B.ToString("#0.00"));
writer.WriteElementString("A", _Theme.NameColor.A.ToString("#0.00")); writer.WriteElementString("A", _Theme.NameColor.A.ToString("#0.00"));
} }
writer.WriteComment("<Style>: Text style: " + CConfig.ListStrings(Enum.GetNames(typeof(EStyle))));
writer.WriteElementString("Style", _Theme.NameStyle.ToString()); writer.WriteElementString("Style", _Theme.NameStyle.ToString());
writer.WriteElementString("H", _Theme.NameHeight.ToString("#.00")); writer.WriteComment("<H>: Text height");
writer.WriteElementString("H", _Theme.NameHeight.ToString("#0"));
writer.WriteEndElement(); writer.WriteEndElement();
writer.WriteEndElement(); writer.WriteEndElement();
@@ -241,25 +266,26 @@ namespace Vocaluxe.Menu
int i = 0; int i = 0;
foreach (CTile tile in _Tiles) foreach (CTile tile in _Tiles)
{ {
if (_player > -1)
{
if (_actualSelection == i)
{
tile.Avatar.Color = CTheme.GetPlayerColor(_player);
}
else
{
tile.Avatar.Color = new SColorF(1, 1, 1, 1);
}
}
else
{
tile.Avatar.Color = new SColorF(1, 1, 1, 1);
}
tile.Avatar.Draw(); tile.Avatar.Draw();
tile.Name.Draw(); tile.Name.Draw();
if (PlayerSelector.Visible)
{
//Update PlayerSelector-Coords
if (_player > -1 && _actualSelection == i)
{
PlayerSelector.Rect.X = tile.Avatar.Rect.X - 1;
PlayerSelector.Rect.Y = tile.Avatar.Rect.Y - 1;
}
}
i++; i++;
} }
if (PlayerSelector.Visible)
{
//Draw PlayerSelector
PlayerSelector.Draw();
}
} }
public void HandleInput(KeyEvent kevent) public void HandleInput(KeyEvent kevent)
@@ -350,6 +376,7 @@ namespace Vocaluxe.Menu
if (active && Selection != -1) if (active && Selection != -1)
{ {
_player = player; _player = player;
PlayerSelector.Color = CTheme.GetPlayerColor(player);
} }
//Normal activation //Normal activation
else if (active) else if (active)
@@ -357,6 +384,8 @@ namespace Vocaluxe.Menu
Selection = 0; Selection = 0;
_actualSelection = 0; _actualSelection = 0;
_player = player; _player = player;
PlayerSelector.Color = CTheme.GetPlayerColor(player);
PlayerSelector.Visible = true;
} }
//Deactivate //Deactivate
else else
@@ -364,6 +393,7 @@ namespace Vocaluxe.Menu
Selection = -1; Selection = -1;
_actualSelection = -1; _actualSelection = -1;
_player = -1; _player = -1;
PlayerSelector.Visible = false;
} }
} }