public void Save()
{
if (!string.Equals(Culture, Framework.Settings.Instance.Culture, StringComparison.Ordinal))
{
MessageBox.Show(Resources.LanguageChangedText, Resources.LanguageChangedTitle, MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK);
}
Framework.Settings.Instance.DockEdge = DockEdge;
Framework.Settings.Instance.ScreenIndex = ScreenIndex;
Framework.Settings.Instance.Culture = Culture;
Framework.Settings.Instance.UIScale = UIScale;
Framework.Settings.Instance.XOffset = XOffset;
Framework.Settings.Instance.YOffset = YOffset;
Framework.Settings.Instance.PollingInterval = PollingInterval;
Framework.Settings.Instance.UseAppBar = UseAppBar;
Framework.Settings.Instance.AlwaysTop = AlwaysTop;
Framework.Settings.Instance.ToolbarMode = ToolbarMode;
Framework.Settings.Instance.ClickThrough = ClickThrough;
Framework.Settings.Instance.ShowTrayIcon = ShowTrayIcon;
Framework.Settings.Instance.AutoUpdate = AutoUpdate;
Framework.Settings.Instance.RunAtStartup = RunAtStartup;
Framework.Settings.Instance.SidebarWidth = SidebarWidth;
Framework.Settings.Instance.AutoBGColor = AutoBGColor;
Framework.Settings.Instance.BGColor = BGColor;
Framework.Settings.Instance.BGOpacity = BGOpacity;
Framework.Settings.Instance.TextAlign = TextAlign;
Framework.Settings.Instance.FontSetting = FontSetting;
Framework.Settings.Instance.FontColor = FontColor;
Framework.Settings.Instance.AlertFontColor = AlertFontColor;
Framework.Settings.Instance.AlertBlink = AlertBlink;
Framework.Settings.Instance.DateSetting = DateSetting;
Framework.Settings.Instance.CollapseMenuBar = CollapseMenuBar;
Framework.Settings.Instance.InitiallyHidden = InitiallyHidden;
Framework.Settings.Instance.ShowClock = ShowClock;
Framework.Settings.Instance.Clock24HR = Clock24HR;
MonitorConfig[] _config = MonitorConfig.Select(c => c.Clone()).ToArray();
for (int i = 0; i < _config.Length; i++)
{
HardwareConfig[] _hardware = _config[i].HardwareOC.ToArray();
for (int v = 0; v < _hardware.Length; v++)
{
_hardware[v].Order = Convert.ToByte(_hardware.Length - v);
if (string.IsNullOrEmpty(_hardware[v].Name) || string.Equals(_hardware[v].Name, _hardware[v].ActualName, StringComparison.Ordinal))
{
_hardware[v].Name = null;
}
}
_config[i].Hardware = _hardware;
_config[i].HardwareOC = null;
_config[i].Order = Convert.ToByte(_config.Length - i);
}
Framework.Settings.Instance.MonitorConfig = _config;
List<Hotkey> _hotkeys = new List<Hotkey>();
if (ToggleKey != null)
{
_hotkeys.Add(ToggleKey);
}
if (ShowKey != null)
{
_hotkeys.Add(ShowKey);
}
if (HideKey != null)
{
_hotkeys.Add(HideKey);
}
if (ReloadKey != null)
{
_hotkeys.Add(ReloadKey);
}
if (CloseKey != null)
{
_hotkeys.Add(CloseKey);
}
if (CycleEdgeKey != null)
{
_hotkeys.Add(CycleEdgeKey);
}
if (CycleScreenKey != null)
{
_hotkeys.Add(CycleScreenKey);
}
if (ReserveSpaceKey != null)
{
_hotkeys.Add(ReserveSpaceKey);
}
Framework.Settings.Instance.Hotkeys = _hotkeys.ToArray();
Framework.Settings.Instance.Save();
App.RefreshIcon();
if (RunAtStartup)
{
Startup.EnableStartupTask();
}
else
{
Startup.DisableStartupTask();
}
IsChanged = false;
}