using System.Windows; using System.Windows.Media; namespace WarframeClock { internal class OverlayWindowViewModel : BindableBase { private string _overlayText = "!!!PLACEHOLDER!!!"; public string OverlayText { get => _overlayText; set { _overlayText = value; NotifyPropertyChanged(); } } private bool _settingsMode; public bool SettingsMode { get => _settingsMode; set { _settingsMode = value; NotifyPropertyChanged(); NotifyPropertyChanged(nameof(SettingsControlVisibility)); } } public Visibility SettingsControlVisibility => SettingsMode ? Visibility.Visible : Visibility.Collapsed; #region "App Settings" public FontFamily FontFamily => new FontFamily(Settings.FontFamilyName); public double FontSize => Settings.FontSize; public HorizontalAlignment HorizontalAlignment => Settings.DockToX == Settings.AlignmentX.Left ? HorizontalAlignment.Left : HorizontalAlignment.Right; public VerticalAlignment VerticalAlignment => Settings.DockToY == Settings.AlignmentY.Top ? VerticalAlignment.Top : VerticalAlignment.Bottom; public Thickness Margin => new Thickness( Settings.DockToX == Settings.AlignmentX.Left ? Settings.MarginX : 0.0, Settings.DockToY == Settings.AlignmentY.Top ? Settings.MarginY : 0.0, Settings.DockToX == Settings.AlignmentX.Right ? Settings.MarginX : 0.0, Settings.DockToY == Settings.AlignmentY.Bottom ? Settings.MarginY : 0.0); public void RefreshPosition() { NotifyPropertyChanged(nameof(HorizontalAlignment)); NotifyPropertyChanged(nameof(VerticalAlignment)); NotifyPropertyChanged(nameof(Margin)); } public void RefreshFont() { NotifyPropertyChanged(nameof(FontFamily)); NotifyPropertyChanged(nameof(FontSize)); } #endregion } }