using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Dominion.NET_WPF.Controls.GameLog
{
///
/// Interaction logic for ucGameTurn.xaml
///
public partial class ucGameTurn : LogSection
{
private int _TurnNumber = 0;
public int TurnNumber { get { return _TurnNumber; } private set { _TurnNumber = value; } }
public override Boolean IsExpanded { get { return expTurns.IsExpanded; } set { expTurns.IsExpanded = value; } }
public Boolean IsAnyExpanded { get { return this.spArea.Children.OfType().Any(pt => pt.IsExpanded); } }
public Boolean IsAllExpanded
{
get
{
return this.spArea.Children.OfType().All(pt => pt.IsExpanded);
}
set
{
foreach (ucPlayerTurn pt in this.spArea.Children.OfType())
pt.IsExpanded = value;
}
}
public ucGameTurn()
{
InitializeComponent();
this.spContainer = spArea;
}
public void New(int turnNumber)
{
this.TurnNumber = turnNumber;
DockPanel dp = new DockPanel();
TextBlock tbTitle = new TextBlock();
tbTitle.Text = String.Format("Turn #{0}", turnNumber);
DockPanel.SetDock(tbTitle, Dock.Left);
dp.Children.Add(tbTitle);
expTurns.Header = dp;
}
public override void TearDown()
{
base.TearDown();
foreach (ucPlayerTurn pt in this.spArea.Children.OfType())
pt.TearDown();
spArea.Children.Clear();
}
public override void End()
{
Color newColor = Colors.Transparent;
if (this.TurnNumber % 2 == 0)
newColor = Colors.DarkGray;
//expTurns.BorderBrush = Brushes.DarkGray;
else
newColor = Colors.DimGray;
//expTurns.BorderBrush = Brushes.DimGray;
lEdge.Stroke = new SolidColorBrush(newColor);
LinearGradientBrush lgb = new LinearGradientBrush(new GradientStopCollection() {
new GradientStop(newColor, 0.0),
new GradientStop(newColor, 0.25),
new GradientStop(Colors.Transparent, 1.25) });
lgb.Freeze();
lTop.Stroke = lBottom.Stroke = lgb;
}
public void Add(ucPlayerTurn element)
{
this.spArea.Children.Add(element);
}
public IEnumerable GetChildren(DominionBase.Players.Player player)
{
return this.spArea.Children.OfType().Where(pt => pt.Player == player);
}
public ucPlayerTurn GetChild(DominionBase.Players.Player player)
{
return this.spArea.Children.OfType().First(pt => pt.Player == player);
}
private void miCollapseThis_Click(object sender, RoutedEventArgs e)
{
expTurns.IsExpanded = false;
}
private void miExpandAll_Click(object sender, RoutedEventArgs e)
{
}
private void miCollapseAll_Click(object sender, RoutedEventArgs e)
{
}
}
}