public ChatSettingsControlViewModel() { this.SaveChatEventLogs = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.SaveChatEventLogs, ChannelSession.Settings.SaveChatEventLogs, (value) => { ChannelSession.Settings.SaveChatEventLogs = value; }); this.FontSize = new GenericComboBoxSettingsOptionControlViewModel <string>(MixItUp.Base.Resources.FontSize, this.fontSizes.Keys, this.fontSizes.FirstOrDefault(f => f.Value == ChannelSession.Settings.ChatFontSize).Key, (value) => { if (this.fontSizes.ContainsKey(value)) { ChannelSession.Settings.ChatFontSize = this.fontSizes[value]; GlobalEvents.ChatVisualSettingsChanged(); } }); this.AddSeparatorsBetweenMessages = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.AddSeparatorsBetweenMessages, ChannelSession.Settings.AddSeparatorsBetweenMessages, (value) => { ChannelSession.Settings.AddSeparatorsBetweenMessages = value; GlobalEvents.ChatVisualSettingsChanged(); }); this.UseAlternatingBackgroundColors = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.UseAlternatingBackgroundColors, ChannelSession.Settings.UseAlternatingBackgroundColors, (value) => { ChannelSession.Settings.UseAlternatingBackgroundColors = value; GlobalEvents.ChatVisualSettingsChanged(); }); this.ShowLatestChatMessagesAtTop = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.ShowLatestChatMessagesAtTopInsteadOfBottom, ChannelSession.Settings.LatestChatAtTop, (value) => { ChannelSession.Settings.LatestChatAtTop = value; }); this.ShowMessageTimestamp = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.ShowMessageTimestamp, ChannelSession.Settings.ShowChatMessageTimestamps, (value) => { ChannelSession.Settings.ShowChatMessageTimestamps = value; }); this.TrackWhisperNumbers = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.TrackWhispererNumbers, ChannelSession.Settings.TrackWhispererNumber, (value) => { ChannelSession.Settings.TrackWhispererNumber = value; }); this.HideViewerChatterCount = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.HideViewerAndChatterNumbers, ChannelSession.Settings.HideViewerAndChatterNumbers, (value) => { ChannelSession.Settings.HideViewerAndChatterNumbers = value; }); this.HideChatUserList = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.HideChatUserList, ChannelSession.Settings.HideChatUserList, (value) => { ChannelSession.Settings.HideChatUserList = value; }); this.HideDeletedMessages = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.HideDeletedMessages, ChannelSession.Settings.HideDeletedMessages, (value) => { ChannelSession.Settings.HideDeletedMessages = value; }); this.HideBotMessages = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.HideBotMessages, ChannelSession.Settings.HideBotMessages, (value) => { ChannelSession.Settings.HideBotMessages = value; }); this.ShowBetterTTVEmotes = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.ShowBetterTTVEmotes, ChannelSession.Settings.ShowBetterTTVEmotes, (value) => { ChannelSession.Settings.ShowBetterTTVEmotes = value; }); this.ShowFrankerFaceZEmotes = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.ShowFrankerFaceZEmotes, ChannelSession.Settings.ShowFrankerFaceZEmotes, (value) => { ChannelSession.Settings.ShowFrankerFaceZEmotes = value; }); this.HideUserAvatar = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.HideUserAvatar, ChannelSession.Settings.HideUserAvatar, (value) => { ChannelSession.Settings.HideUserAvatar = value; GlobalEvents.ChatVisualSettingsChanged(); }); this.HideUserRoleBadge = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.HideUserRoleBadge, ChannelSession.Settings.HideUserRoleBadge, (value) => { ChannelSession.Settings.HideUserRoleBadge = value; GlobalEvents.ChatVisualSettingsChanged(); }); this.HideUserSubscriberBadge = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.HideUserSubscriberBadge, ChannelSession.Settings.HideUserSubscriberBadge, (value) => { ChannelSession.Settings.HideUserSubscriberBadge = value; GlobalEvents.ChatVisualSettingsChanged(); }); this.HideUserSpecialtyBadge = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.HideUserSpecialtyBadge, ChannelSession.Settings.HideUserSpecialtyBadge, (value) => { ChannelSession.Settings.HideUserSpecialtyBadge = value; GlobalEvents.ChatVisualSettingsChanged(); }); this.UseCustomUsernameColors = new GenericToggleSettingsOptionControlViewModel(MixItUp.Base.Resources.UseCustomUsernameColors, ChannelSession.Settings.UseCustomUsernameColors, (value) => { ChannelSession.Settings.UseCustomUsernameColors = value; this.EnableDisableUsernameColors(); GlobalEvents.ChatVisualSettingsChanged(); }); foreach (UserRoleEnum role in UserDataModel.GetSelectableUserRoles().OrderBy(r => r)) { string name = EnumHelper.GetEnumName(role); name = MixItUp.Base.Resources.ResourceManager.GetString(name) ?? name; this.CustomUsernameColorsList.Add(new GenericColorComboBoxSettingsOptionControlViewModel(name, ChannelSession.Settings.CustomUsernameColors.ContainsKey(role) ? ChannelSession.Settings.CustomUsernameColors[role] : null, (value) => { if (!string.IsNullOrEmpty(value) && !value.Equals(GenericColorComboBoxSettingsOptionControlViewModel.NoneOption)) { ChannelSession.Settings.CustomUsernameColors[role] = value; } else { ChannelSession.Settings.CustomUsernameColors.Remove(role); } GlobalEvents.ChatVisualSettingsChanged(); })); } foreach (GenericColorComboBoxSettingsOptionControlViewModel colorOption in this.CustomUsernameColorsList) { colorOption.AddNoneOption(); } this.EnableDisableUsernameColors(); }