using DominionBase.Players; using System.ComponentModel; using System.Windows; using System.Windows.Controls; using System.Windows.Media; namespace Dominion.NET_WPF.Controls { /// /// Interaction logic for ucPhaseDisplay.xaml /// public partial class UcPhaseDisplay : UserControl { private static readonly Brush ActiveForeground = Brushes.Black; private static readonly Brush ActiveBorderOutside = Brushes.SkyBlue; private static readonly Brush ActiveBorderInside = Brushes.DarkBlue; private static readonly Brush InactiveForeground = Brushes.Gainsboro; private static readonly Brush InactiveBorder = Brushes.Transparent; [Bindable(true)] public PhaseEnum Phase { get { return (PhaseEnum)GetValue(PhaseProperty); } set { SetValue(PhaseProperty, value); switch (value) { case PhaseEnum.Action: case PhaseEnum.ActionTreasure: PhaseAction.Foreground = ActiveForeground; PhaseAction.BorderOutsideBrush = ActiveBorderOutside; PhaseAction.BorderInsideBrush = ActiveBorderInside; PhaseBuy.Foreground = InactiveForeground; PhaseBuy.BorderOutsideBrush = PhaseBuy.BorderInsideBrush = InactiveBorder; PhaseNight.Foreground = InactiveForeground; PhaseNight.BorderOutsideBrush = PhaseNight.BorderInsideBrush = InactiveBorder; PhaseCleanup.Foreground = InactiveForeground; PhaseCleanup.BorderOutsideBrush = PhaseCleanup.BorderInsideBrush = InactiveBorder; break; case PhaseEnum.Buy: case PhaseEnum.BuyTreasure: PhaseAction.Foreground = InactiveForeground; PhaseAction.BorderOutsideBrush = PhaseAction.BorderInsideBrush = InactiveBorder; PhaseBuy.Foreground = ActiveForeground; PhaseBuy.BorderOutsideBrush = ActiveBorderOutside; PhaseBuy.BorderInsideBrush = ActiveBorderInside; PhaseNight.Foreground = InactiveForeground; PhaseNight.BorderOutsideBrush = PhaseNight.BorderInsideBrush = InactiveBorder; PhaseCleanup.Foreground = InactiveForeground; PhaseCleanup.BorderOutsideBrush = PhaseCleanup.BorderInsideBrush = InactiveBorder; break; case PhaseEnum.Night: PhaseAction.Foreground = InactiveForeground; PhaseAction.BorderOutsideBrush = PhaseAction.BorderInsideBrush = InactiveBorder; PhaseBuy.Foreground = InactiveForeground; PhaseBuy.BorderOutsideBrush = PhaseBuy.BorderInsideBrush = InactiveBorder; PhaseNight.Foreground = ActiveForeground; PhaseNight.BorderOutsideBrush = ActiveBorderOutside; PhaseNight.BorderInsideBrush = ActiveBorderInside; PhaseCleanup.Foreground = InactiveForeground; PhaseCleanup.BorderOutsideBrush = PhaseCleanup.BorderInsideBrush = InactiveBorder; break; case PhaseEnum.Cleanup: PhaseAction.Foreground = InactiveForeground; PhaseAction.BorderOutsideBrush = PhaseAction.BorderInsideBrush = InactiveBorder; PhaseBuy.Foreground = InactiveForeground; PhaseBuy.BorderOutsideBrush = PhaseBuy.BorderInsideBrush = InactiveBorder; PhaseNight.Foreground = InactiveForeground; PhaseNight.BorderOutsideBrush = PhaseNight.BorderInsideBrush = InactiveBorder; PhaseCleanup.Foreground = ActiveForeground; PhaseCleanup.BorderOutsideBrush = ActiveBorderOutside; PhaseCleanup.BorderInsideBrush = ActiveBorderInside; break; case PhaseEnum.Setup: case PhaseEnum.Starting: case PhaseEnum.Endgame: PhaseAction.Foreground = InactiveForeground; PhaseAction.BorderOutsideBrush = PhaseAction.BorderInsideBrush = InactiveBorder; PhaseBuy.Foreground = InactiveForeground; PhaseBuy.BorderOutsideBrush = PhaseBuy.BorderInsideBrush = InactiveBorder; PhaseNight.Foreground = InactiveForeground; PhaseNight.BorderOutsideBrush = PhaseNight.BorderInsideBrush = InactiveBorder; PhaseCleanup.Foreground = InactiveForeground; PhaseCleanup.BorderOutsideBrush = PhaseCleanup.BorderInsideBrush = InactiveBorder; break; } } } public static readonly DependencyProperty PhaseProperty = DependencyProperty.Register("Phase", typeof(PhaseEnum), typeof(UcPlayerDisplay)); public UcPhaseDisplay() { InitializeComponent(); } } }