public override void AddBtActionBar() { if (PART_BtActionBar != null) { #if DEBUG logger.Debug($"SuccessStory - PART_BtActionBar allready insert"); #endif return; } FrameworkElement BtActionBar; if (_Settings.EnableIntegrationInDescriptionWithToggle) { if (_Settings.EnableIntegrationButtonDetails) { BtActionBar = new SuccessStoryToggleButtonDetails(); } else { BtActionBar = new SuccessStoryToggleButton(_Settings); } ((ToggleButton)BtActionBar).Click += OnBtActionBarToggleButtonClick; } else { if (_Settings.EnableIntegrationButtonDetails) { BtActionBar = new SuccessStoryButtonDetails(); } else { BtActionBar = new SuccessStoryButton(_Settings.EnableIntegrationInDescriptionOnlyIcon); } ((Button)BtActionBar).Click += OnBtActionBarClick; } if (!_Settings.EnableIntegrationInDescriptionOnlyIcon) { BtActionBar.Width = 150; } BtActionBar.Name = BtActionBarName; BtActionBar.Margin = new Thickness(10, 0, 0, 0); try { ui.AddButtonInGameSelectedActionBarButtonOrToggleButton(BtActionBar); PART_BtActionBar = IntegrationUI.SearchElementByName(BtActionBarName); } catch (Exception ex) { Common.LogError(ex, "SuccessStory", "Error on AddBtActionBar()"); } }
private void Integration() { try { // Search game description if (PART_ElemDescription == null) { foreach (StackPanel sp in Tools.FindVisualChildren <StackPanel>(Application.Current.MainWindow)) { if (sp.Name == "PART_ElemDescription") { PART_ElemDescription = sp; break; } } } // Delete logger.Info("SuccessStory - Delete"); ui.RemoveButtonInGameSelectedActionBarButtonOrToggleButton("PART_ScButton"); ui.RemoveButtonInGameSelectedActionBarButtonOrToggleButton("PART_ScToggleButton"); ui.RemoveElementInGameSelectedDescription("PART_Achievements"); ui.ClearElementInCustomTheme("PART_Achievements_Graphics"); ui.ClearElementInCustomTheme("PART_Achievements_List"); ui.ClearElementInCustomTheme("PART_Achievements_ProgressBar"); // Reset resources List <ResourcesList> resourcesLists = new List <ResourcesList>(); resourcesLists.Add(new ResourcesList { Key = "Sc_Total", Value = "0" }); resourcesLists.Add(new ResourcesList { Key = "Sc_Unlocked", Value = "0" }); resourcesLists.Add(new ResourcesList { Key = "Sc_Locked", Value = "0" }); ui.AddResources(resourcesLists); var taskIntegration = Task.Run(() => LoadData(PlayniteApi, this.GetPluginUserDataPath(), settings)) .ContinueWith(antecedent => { GameAchievements SelectedGameAchievements = antecedent.Result; Application.Current.Dispatcher.Invoke(new Action(() => { // No achievements if (SelectedGameAchievements == null || !SelectedGameAchievements.HaveAchivements) { //logger.Debug(JsonConvert.SerializeObject(SelectedGameAchievements)); logger.Info("SuccessStory - No achievement for " + GameSelected.Name); return; } // Add resources resourcesLists.Add(new ResourcesList { Key = "Sc_Total", Value = SelectedGameAchievements.Total.ToString() }); resourcesLists.Add(new ResourcesList { Key = "Sc_Unlocked", Value = SelectedGameAchievements.Unlocked.ToString() }); resourcesLists.Add(new ResourcesList { Key = "Sc_Locked", Value = SelectedGameAchievements.Locked.ToString() }); ui.AddResources(resourcesLists); // Auto integration if (settings.EnableIntegrationInDescription || settings.EnableIntegrationInDescriptionWithToggle) { if (settings.EnableIntegrationInDescriptionWithToggle) { ToggleButton tb = new ToggleButton(); if (settings.IntegrationToggleDetails) { tb = new SuccessStoryToggleButtonDetails(SelectedGameAchievements.Unlocked, SelectedGameAchievements.Total); } else { tb = new SuccessStoryToggleButton(); tb.Content = resources.GetString("LOCSucessStoryAchievements"); } tb.IsChecked = false; tb.Name = "PART_ScToggleButton"; tb.Width = 150; tb.HorizontalAlignment = HorizontalAlignment.Right; tb.VerticalAlignment = VerticalAlignment.Stretch; tb.Margin = new Thickness(10, 0, 0, 0); tb.Click += OnGameSelectedToggleButtonClick; ui.AddButtonInGameSelectedActionBarButtonOrToggleButton(tb); } // Add Achievements elements StackPanel ScA = CreateSc(achievementsDatabase, SelectedGameAchievements, settings.IntegrationShowTitle, settings.IntegrationShowGraphic, settings.IntegrationShowAchievements, settings.IntegrationShowProgressBar, false); if (settings.EnableIntegrationInDescriptionWithToggle) { ScA.Visibility = Visibility.Collapsed; } ui.AddElementInGameSelectedDescription(ScA, settings.IntegrationTopGameDetails); } // Auto adding button if (settings.EnableIntegrationButton || settings.EnableIntegrationButtonDetails) { Button bt = new Button(); if (settings.EnableIntegrationButton) { bt.Content = resources.GetString("LOCSucessStoryAchievements"); } if (settings.EnableIntegrationButtonDetails) { bt = new SuccessStoryButtonDetails(SelectedGameAchievements.Unlocked, SelectedGameAchievements.Total); } bt.Name = "PART_ScButton"; bt.Width = 150; bt.HorizontalAlignment = HorizontalAlignment.Right; bt.VerticalAlignment = VerticalAlignment.Stretch; bt.Margin = new Thickness(10, 0, 0, 0); bt.Click += OnBtGameSelectedActionBarClick; ui.AddButtonInGameSelectedActionBarButtonOrToggleButton(bt); } // Custom theme if (settings.EnableIntegrationInCustomTheme) { if (settings.IntegrationShowGraphic) { StackPanel scAG = CreateSc(achievementsDatabase, SelectedGameAchievements, false, true, false, false, true); ui.AddElementInCustomTheme(scAG, "PART_Achievements_Graphics"); } if (settings.IntegrationShowAchievements) { StackPanel scAL = CreateSc(achievementsDatabase, SelectedGameAchievements, false, false, true, false, true); ui.AddElementInCustomTheme(scAL, "PART_Achievements_List"); } if (settings.IntegrationShowProgressBar) { StackPanel scPB = CreateSc(achievementsDatabase, SelectedGameAchievements, false, false, false, true, true); ui.AddElementInCustomTheme(scPB, "PART_Achievements_ProgressBar"); } } })); }); } catch (Exception ex) { Common.LogError(ex, "SucessStory", $"Impossible integration"); } }