protected override void OnPageLoad() { if (firstLoad) { firstLoad = false; GUIPropertyManager.SetProperty("#Emulators2.PreviewVideo.playing", "no"); //Image Handlers backdrop = new ImageSwapper(); backdrop.ImageResource.Delay = Options.Instance.GetIntOption("fanartdelay"); backdrop.PropertyOne = "#Emulators2.CurrentItem.fanartpath"; backdrop.PropertyTwo = "#Emulators2.CurrentItem.fanartpath2"; newGUIHandler = new GUIPresenter(); newGUIHandler.OnSortAscendingChanged += new GUIPresenter.SortAscendingChanged(newGUIHandler_OnSortAscendingChanged); newGUIHandler.OnPreviewVideoStatusChanged += new GUIPresenter.PreviewVideoStatusChanged(newGUIHandler_OnPreviewVideoStatusChanged); GUIPropertyManager.SetProperty("#Emulators2.plugintitle", Options.Instance.GetStringOption("shownname")); onVideoStopped = new g_Player.StoppedHandler(g_Player_PlayBackStopped); onVideoEnded = new g_Player.EndedHandler(g_Player_PlayBackEnded); } base.OnPageLoad(); DBItem startupItem = null; bool launch = false; getStartupSettings(ref startupItem, ref launch); if (buttonSort != null) { buttonSort.IsAscending = newGUIHandler.SortAscending; buttonSort.SortChanged += new SortEventHandler(newGUIHandler.OnSort); } if (Options.Instance.GetBoolOption("showfanart")) { backdrop.GUIImageOne = fanartControl1; backdrop.GUIImageTwo = fanartControl2; } if (gameArtEnabled != null) { gameArtEnabled.Visible = Options.Instance.GetBoolOption("showgameart"); //update gameart dummy control visibility } if (Options.Instance.GetBoolOption("showvideopreview")) { if (videoPreviewEnabled != null) { videoPreviewEnabled.Visible = true; //videoPreview dummy } } g_Player.PlayBackStopped += onVideoStopped; g_Player.PlayBackEnded += onVideoEnded; newGUIHandler.Load(facade, backdrop, startupItem, launch, showVideoPreviewControl, goodmergeList, details_play); }
public static bool ShowContext(ExtendedGUIListItem item, GUIPresenter presenter) { if (item == null || item.AssociatedGame == null) { return(showSimpleContext(presenter)); } else { return(ShowGameDialog(item.AssociatedGame, presenter)); } }
static bool showSimpleContext(GUIPresenter presenter, int selectedLabel = 0) { GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg != null) { dlg.Reset(); dlg.SetHeading(Options.Instance.GetStringOption("shownname")); dlg.Add(new GUIListItem(Translator.Instance.switchview)); dlg.Add(new GUIListItem(Translator.Instance.runimport)); dlg.Add(new GUIListItem(Translator.Instance.options)); dlg.SelectedLabel = selectedLabel; dlg.DoModal(Plugin.WINDOW_ID); selectedLabel = dlg.SelectedLabel; switch (dlg.SelectedId) { case 1: presenter.SwitchView(); break; case 2: presenter.RestartImporter(); break; case 3: if (ShowSettingsDialog()) { presenter.ReloadOptions(); } showSimpleContext(presenter, selectedLabel); break; } } return(false); }
public static bool ShowGameDialog(Game game, GUIPresenter presenter, int selectedLabel = 0) { if (game == null) { return(false); } GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); if (dlg != null) { int windowID = Plugin.WINDOW_ID; dlg.Reset(); dlg.SetHeading(Options.Instance.GetStringOption("shownname")); GUIListItem playItem = new GUIListItem("Play"); dlg.Add(playItem); GUIListItem profileItem = new GUIListItem(Translator.Instance.profile) { Label2 = game.CurrentProfile.Title }; dlg.Add(profileItem); GUIListItem favouriteItem = new GUIListItem(Translator.Instance.favourite) { Label2 = game.Favourite.ToString() }; dlg.Add(favouriteItem); GUIListItem gradeItem = new GUIListItem(Translator.Instance.grade) { Label2 = game.Grade.ToString() }; dlg.Add(gradeItem); GUIListItem discItem = new GUIListItem(Translator.Instance.disc); if (game.Discs.Count > 1) { discItem.Label2 = game.CurrentDiscNum.ToString(); dlg.Add(discItem); } GUIListItem goodmergeItem = new GUIListItem(Translator.Instance.goodmerge); if (game.IsGoodmerge) { goodmergeItem.Label2 = game.CurrentDisc.LaunchFile.Replace(game.Filename, "").Trim(); dlg.Add(goodmergeItem); } GUIListItem viewItem = new GUIListItem(Translator.Instance.switchview); dlg.Add(viewItem); GUIListItem importItem = new GUIListItem(Translator.Instance.retrieveonlineinfo); dlg.Add(importItem); GUIListItem runImportItem = new GUIListItem(Translator.Instance.runimport); dlg.Add(runImportItem); GUIListItem settingsItem = new GUIListItem(Translator.Instance.options); dlg.Add(settingsItem); dlg.SelectedLabel = selectedLabel; dlg.DoModal(windowID); selectedLabel = dlg.SelectedLabel; int id = dlg.SelectedId; bool result = false; bool reload = true; if (id < 1) { return(false); } if (id == playItem.ItemId) { LaunchHandler.Instance.StartLaunch(game); reload = false; } else if (id == profileItem.ItemId) { int profileId = game.SelectedProfileId; if (showProfileDialog(ref profileId, game.GetProfiles(), windowID)) { game.SelectedProfileId = profileId; game.SaveGamePlayInfo(); result = true; } } else if (id == favouriteItem.ItemId) { bool favourite = game.Favourite; if (ShowBoolDialog(ref favourite, windowID)) { game.Favourite = favourite; game.SaveGamePlayInfo(); result = true; } } else if (id == gradeItem.ItemId) { int grade = game.Grade; if (showGradeDialog(ref grade, windowID)) { game.Grade = grade; game.SaveGamePlayInfo(); result = true; } } else if (id == discItem.ItemId) { int disc = game.CurrentDiscNum; if (showDiscSelect(ref disc, game.Discs, windowID)) { game.CurrentDiscNum = disc; game.SaveGamePlayInfo(); result = true; } } else if (id == goodmergeItem.ItemId) { try { int selectedGoodmergeIndex; List <string> games = Extractor.Instance.ViewFiles(game, out selectedGoodmergeIndex); if (games != null) { string launchFile = games[selectedGoodmergeIndex]; if (ShowGoodmergeSelect(ref launchFile, games, game.Filename, windowID)) { game.CurrentDisc.LaunchFile = launchFile; game.CurrentDisc.Save(); result = true; } } } catch (ExtractException ex) { Emulators2Settings.Instance.ShowMPDialog("{0} - {1}", Translator.Instance.goodmergeerror, ex.Message); } } else if (id == viewItem.ItemId) { presenter.SwitchView(); reload = false; } else if (id == importItem.ItemId) { presenter.AddToImporter(game); reload = false; } else if (id == runImportItem.ItemId) { presenter.RestartImporter(); reload = false; } else if (id == settingsItem.ItemId) { if (ShowSettingsDialog()) { presenter.ReloadOptions(); result = true; } } if (reload) { result = ShowGameDialog(game, presenter, selectedLabel) || result; } return(result); } return(false); }