Fenster zeigen egal in welchen Screen man ist? (1 Viewer)

MoPhat

Retired Team Member
  • Premium Supporter
  • June 17, 2007
    816
    226
    Berg
    Home Country
    Switzerland Switzerland
    Hallo zusammen, ich bin gerade dabei ein Plugin zu schreiben welches den PC erst später in den Standby fährt wenn die Aufnahme zuende ist.

    Also:

    1. MP + TVS3 auf dem gleichen PC laufen und machen gerade eine Aufnahme
    2. Während der Aufnahme drückt jemand den Power Button auf der FB und (!) der PC geht nicht in den Standby sondern es erscheint eine Meldung dass der PC nach der Aufnahme in den Standby wechselt.
    3. Aufnahme zuende => PC geht in den wohlverdienten Standby :D

    Soweit sogut, nur weiss ich nich wie man mittels des Plugins eine Meldung anzeigen lassen kann egal in welchem Screen man ist (Es soll ja nicht im Plugin Screen sichtbar sein / gibt auch keins)

    Jemand einen Tip für mich?

    :D
    MoPhat
     

    MoPhat

    Retired Team Member
  • Premium Supporter
  • June 17, 2007
    816
    226
    Berg
    Home Country
    Switzerland Switzerland
    Danke habe mal reingeschaut, habe noch 1,2 Fragen...

    Zu welcher Assembly (DLL) gehört dieser Namespace "using MediaPortal.Dialogs;"?

    Wenn ich nur ein "Dialogbox" haben möchte der nur einen Titel und einen Text darstellt dass das Plugin zusammenstellt, wie stelle ich das an - auch das XML file???

    Habe noch nicht grossartig mit den Skinfiles hantiert.

    Den Code hier habe ich vom HelpPlugin

    Code:
    	void ShowHelp() {
    			// GUIWindowManager.ActiveWindow is the Window
    			int WindowId;
    			int ControlId = 0;
    			GUIWindow Window;
    
    			string notifyHeading = "Help";
    			string helpFile = "";
    			string windowHelp = "Sorry no help available for this window.";
    			string controlHelp = "";
    			string windowName = "";
    			string controlName = "";
    			string language = "";
    
    			GlobalServiceProvider.Get<ILog>().Debug("Help Plugin: Starting Help Dialog");
    
    			if((WindowId = (int)GUIWindowManager.VisibleOsd) == (int)GUIWindow.Window.WINDOW_INVALID)
    				WindowId = GUIWindowManager.ActiveWindow;
    			Window = GUIWindowManager.GetWindow(WindowId);
    			if(Window != null) {
    				ControlId = Window.GetFocusControlId();
    
    				using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config,"MediaPortal.xml")))
    				{
    					language    = xmlreader.GetValueAsString("skin", "language", "English");
    				}
    
    				helpFile = Config.GetFile(Config.Dir.Language,language,"help.xml");
    				if(!File.Exists(helpFile))
    					helpFile = Config.GetFile(Config.Dir.Language,"English","help.xml");
    				if(File.Exists(helpFile)) {
    					XmlDocument help = new XmlDocument();
    					help.Load(helpFile);
    					try {
    						windowHelp = help.SelectSingleNode("/helpfile/window[id=" + WindowId + "]/help/text()").Value;
    						windowName = help.SelectSingleNode("/helpfile/window[id=" + WindowId + "]/name/text()").Value;
    					} catch {
    						GlobalServiceProvider.Get<ILog>().Warn("HelpPlugin: Could not find window " + WindowId + " in helpfile " + helpFile);
    					}
    					try {
    						controlHelp = help.SelectSingleNode("/helpfile/window[id=" + WindowId + "]/control[id=" + ControlId + "]/help/text()").Value;
    						controlName = help.SelectSingleNode("/helpfile/window[id=" + WindowId + "]/control[id=" + ControlId + "]/name/text()").Value;
    					} catch {
    						GlobalServiceProvider.Get<ILog>().Warn("HelpPlugin: Could not find control " + ControlId + " for window " + WindowId + " in helpfile " + helpFile);
    					}
    				} else {
    					GlobalServiceProvider.Get<ILog>().Error("HelpPlugin: Could not find helpfile " + helpFile);
    				}
    			}
    			// Dialog Text popup
    			GUIDialogText dlgText = (GUIDialogText)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_TEXT);
    			if(dlgText != null) {
    				notifyHeading += " for " + windowName; // 1023 Incoming call
    				if(controlName != "")
    					notifyHeading += " (" + controlName + ")";
    				GlobalServiceProvider.Get<ILog>().Debug("HelpPlugin: Showing Help for " + WindowId + " control " + ControlId);
    				dlgText.SetHeading(notifyHeading);
    				//dlgText.SetImage("");
    				string HelpText = "Window Help:\n\n" + windowHelp;
    				try {
    					HelpText += GetRemoteMappings();
    				} catch {
    					GlobalServiceProvider.Get<ILog>().Error("HelpPlugin: Could not get Remote Control Help. Wrong RemotePlugin.dll");
    				}
    				HelpText += GetKeyMappings(WindowId);
    				if(controlHelp.Length > 0)
    					HelpText += "\n\nControl Help:\n\n" + controlHelp;
    				dlgText.SetText(HelpText);
    				dlgText.DoModal(GUIWindowManager.ActiveWindow);
    			}
    			GlobalServiceProvider.Get<ILog>().Debug("Help Plugin: Finished Help Dialog");
    		}

    Ich bräuchte wirklich nur das minimum, Titel und Text wird per Dialogbox in MP eingeblendet und soll dann nach paar Sekunden wieder geschlossen.



    Danke für deine Hilfe
    MoPhat
     

    Users who are viewing this thread

    Top Bottom