X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2FLibCecTray%2Fui%2FCECTray.cs;h=6a04d62f2301da982ecb970cf78547c9031351bc;hb=ac03cf2784851df9eb42106828a0d88b5fda7d12;hp=6703e5f8d76e6a9a22c825678bf7b7ccb0a4fcd8;hpb=c4bc89448dd006396abd5b4b723c0b4a5aad6e04;p=deb_libcec.git diff --git a/src/LibCecTray/ui/CECTray.cs b/src/LibCecTray/ui/CECTray.cs index 6703e5f..6a04d62 100644 --- a/src/LibCecTray/ui/CECTray.cs +++ b/src/LibCecTray/ui/CECTray.cs @@ -38,6 +38,8 @@ using LibCECTray.Properties; using LibCECTray.controller; using LibCECTray.controller.applications; using LibCECTray.settings; +using Microsoft.Win32; +using System.Security.Permissions; namespace LibCECTray.ui { @@ -70,6 +72,28 @@ namespace LibCECTray.ui else OnShow(); }; + SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(OnPowerModeChanged); + SystemEvents.SessionEnding += new SessionEndingEventHandler(OnSessionEnding); + } + + public void OnSessionEnding(object sender, SessionEndingEventArgs e) + { + Controller.Close(); + } + + public void OnPowerModeChanged(Object sender, PowerModeChangedEventArgs e) + { + switch (e.Mode) + { + case PowerModes.Resume: + Controller.Initialise(); + break; + case PowerModes.Suspend: + Controller.Close(); + break; + case PowerModes.StatusChange: + break; + } } public override sealed string Text @@ -78,7 +102,7 @@ namespace LibCECTray.ui set { base.Text = value; } } - private void CECTrayLoad(object sender, EventArgs e) + public void Initialise() { Controller.Initialise(); } @@ -484,7 +508,10 @@ namespace LibCECTray.ui private CECController _controller; public CECController Controller { - get { return _controller ?? (_controller = new CECController(this)); } + get + { + return _controller ?? (_controller = new CECController(this)); + } } public Control.ControlCollection TabControls {