private async void SaveButton_Click(object sender, RoutedEventArgs e) { await this.RunAsyncOperation(async() => { if (string.IsNullOrEmpty(this.NameTextBox.Text)) { await MessageBoxHelper.ShowMessageDialog("A name must be specified"); return; } if (this.TypeComboBox.SelectedIndex < 0) { await MessageBoxHelper.ShowMessageDialog("A widget type must be selected"); return; } if (this.OverlayNameComboBox.SelectedIndex < 0) { await MessageBoxHelper.ShowMessageDialog("An overlay to use must be selected"); return; } string overlayName = (string)this.OverlayNameComboBox.SelectedItem; OverlayItemPosition position = this.ItemPosition.GetPosition(); if (position == null) { return; } OverlayItemBase item = null; OverlayWidgetTypeEnum overlayType = EnumHelper.GetEnumValueFromString <OverlayWidgetTypeEnum>((string)this.TypeComboBox.SelectedItem); if (overlayType == OverlayWidgetTypeEnum.Image) { item = this.ImageItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.Text) { item = this.TextItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.YouTube) { item = this.YouTubeItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.Video) { item = this.VideoItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.WebPage) { item = this.WebPageItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.HTML) { item = this.HTMLItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.ProgressBar) { item = this.ProgressBarItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.EventList) { item = this.EventListItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.GameQueue) { item = this.GameQueueItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.ChatMessages) { item = this.ChatMessagesItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.MixerClip) { item = this.MixerClipItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.Leaderboard) { item = this.LeaderboardItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.Timer) { item = this.TimerItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.TimerTrain) { item = this.TimerTrainItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.StreamBoss) { item = this.StreamBossItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.GameStats) { item = this.GameStatsItem.GetItem(); } else if (overlayType == OverlayWidgetTypeEnum.SongRequests) { item = this.SongRequestsItem.GetItem(); } if (item == null) { await MessageBoxHelper.ShowMessageDialog("There are missing Widget details"); return; } if (this.Widget == null) { this.Widget = new OverlayWidget(this.NameTextBox.Text, overlayName, item, position, this.DontRefreshToggleButton.IsChecked.GetValueOrDefault()); ChannelSession.Settings.OverlayWidgets.Add(this.Widget); } else { item.ID = this.Widget.Item.ID; this.Widget.Name = this.NameTextBox.Text; this.Widget.OverlayName = overlayName; this.Widget.Item = item; this.Widget.Position = position; this.Widget.DontRefresh = this.DontRefreshToggleButton.IsChecked.GetValueOrDefault(); } this.Close(); }); }
private void TypeComboBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { this.ImageItem.Visibility = Visibility.Collapsed; this.TextItem.Visibility = Visibility.Collapsed; this.YouTubeItem.Visibility = Visibility.Collapsed; this.VideoItem.Visibility = Visibility.Collapsed; this.WebPageItem.Visibility = Visibility.Collapsed; this.HTMLItem.Visibility = Visibility.Collapsed; this.ProgressBarItem.Visibility = Visibility.Collapsed; this.EventListItem.Visibility = Visibility.Collapsed; this.GameQueueItem.Visibility = Visibility.Collapsed; this.ChatMessagesItem.Visibility = Visibility.Collapsed; this.MixerClipItem.Visibility = Visibility.Collapsed; this.LeaderboardItem.Visibility = Visibility.Collapsed; this.TimerItem.Visibility = Visibility.Collapsed; this.TimerTrainItem.Visibility = Visibility.Collapsed; this.StreamBossItem.Visibility = Visibility.Collapsed; this.GameStatsItem.Visibility = Visibility.Collapsed; this.SongRequestsItem.Visibility = Visibility.Collapsed; if (this.TypeComboBox.SelectedIndex >= 0) { OverlayWidgetTypeEnum overlayType = EnumHelper.GetEnumValueFromString <OverlayWidgetTypeEnum>((string)this.TypeComboBox.SelectedItem); if (overlayType == OverlayWidgetTypeEnum.Image) { this.ImageItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.Text) { this.TextItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.YouTube) { this.YouTubeItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.Video) { this.VideoItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.WebPage) { this.WebPageItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.HTML) { this.HTMLItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.ProgressBar) { this.ProgressBarItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.EventList) { this.EventListItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.GameQueue) { this.GameQueueItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.ChatMessages) { this.ChatMessagesItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.MixerClip) { this.MixerClipItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.Leaderboard) { this.LeaderboardItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.Timer) { this.TimerItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.TimerTrain) { this.TimerTrainItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.StreamBoss) { this.StreamBossItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.GameStats) { this.GameStatsItem.Visibility = Visibility.Visible; } else if (overlayType == OverlayWidgetTypeEnum.SongRequests) { this.SongRequestsItem.Visibility = Visibility.Visible; } } }