diff --git a/VocaluxeLib/Menu/CButton.cs b/VocaluxeLib/Menu/CButton.cs index 4fa4d4d8..8e0ff6b9 100644 --- a/VocaluxeLib/Menu/CButton.cs +++ b/VocaluxeLib/Menu/CButton.cs @@ -86,7 +86,7 @@ namespace VocaluxeLib.Menu public bool Selectable { - get { return _Selectable; } + get { return _Selectable && Visible; } set { _Selectable = value; diff --git a/VocaluxeLib/Menu/CNameSelection.cs b/VocaluxeLib/Menu/CNameSelection.cs index 9320b018..dd2c2e7b 100644 --- a/VocaluxeLib/Menu/CNameSelection.cs +++ b/VocaluxeLib/Menu/CNameSelection.cs @@ -109,6 +109,12 @@ namespace VocaluxeLib.Menu private CStatic _PlayerSelector; + private SRectF _Rect; + public override SRectF Rect + { + get { return _Rect; } + } + public bool Selectable { get { return Visible; } @@ -489,15 +495,19 @@ namespace VocaluxeLib.Menu { for (int j = 0; j < _Theme.Tiles.NumW; j++) { - var rect = new SRectF(Rect.X + j * (_Theme.Tiles.W + _Theme.Tiles.SpaceW), Rect.Y + i * (_Theme.Tiles.H + _Theme.Tiles.SpaceH), _Theme.Tiles.W, _Theme.Tiles.H, - Rect.Z); + var rect = new SRectF(MaxRect.X + j * (_Theme.Tiles.W + _Theme.Tiles.SpaceW), MaxRect.Y + i * (_Theme.Tiles.H + _Theme.Tiles.SpaceH), + _Theme.Tiles.W, _Theme.Tiles.H, MaxRect.Z); var tileStatic = new CStatic(_PartyModeID, _TextureEmptyTile, _ColorEmptyTile, rect) {Aspect = EAspect.Crop}; var tileText = new CText(rect.X + rect.W / 2, rect.Y + rect.H + _Theme.Tiles.Name.Space, rect.Z, _Theme.Tiles.Name.Height, rect.W, EAlignment.Center, - _Theme.Tiles.Name.Style, - _Theme.Tiles.Name.Font, _ColorNameTile, ""); + _Theme.Tiles.Name.Style, _Theme.Tiles.Name.Font, _ColorNameTile, ""); _Tiles.Add(new CTile(tileStatic, tileText, -1)); } } + _Rect.X = MaxRect.X; + _Rect.Y = MaxRect.Y; + _Rect.Right = _Tiles[_Tiles.Count - 1].Avatar.Rect.Right; + _Rect.Bottom = _Tiles[_Tiles.Count - 1].Name.Rect.Bottom; + _Rect.Z = MaxRect.Z; } private void _UpdateVisibleProfiles() diff --git a/VocaluxeLib/Structs.cs b/VocaluxeLib/Structs.cs index 67b85d9a..d59163a3 100644 --- a/VocaluxeLib/Structs.cs +++ b/VocaluxeLib/Structs.cs @@ -189,10 +189,20 @@ namespace VocaluxeLib public float Right { get { return X + W; } + set + { + W = value - X; + Debug.Assert(W >= 0); + } } public float Bottom { get { return Y + H; } + set + { + H = value - Y; + Debug.Assert(H >= 0); + } } public Size SizeI {