示例#1
0
        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);
        }
示例#2
0
 public static bool ShowContext(ExtendedGUIListItem item, GUIPresenter presenter)
 {
     if (item == null || item.AssociatedGame == null)
     {
         return(showSimpleContext(presenter));
     }
     else
     {
         return(ShowGameDialog(item.AssociatedGame, presenter));
     }
 }
示例#3
0
        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);
        }
示例#4
0
        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);
        }