예제 #1
0
        private void OnPowerModeChanged(object sender, PowerModeChangedEventArgs args)
        {
            if (args.Mode != PowerModes.StatusChange)
            {
                return;
            }
            // Todo, base this only on charging/discharging? Or on percentage status?
            Guid id;
            var  message = string.Empty;

            switch (Forms.SystemInformation.PowerStatus.PowerLineStatus)
            {
            case Forms.PowerLineStatus.Online:
                id = Settings.Default.ChargingScheme;
                if (id != Guid.Empty)
                {
                    PowerManagement.SetActiveScheme(id);
                    message = String.Format("The power scheme has been automatically set to {0}", PowerManagement.ReadFriendlyName(id));
                }
                break;

            case Forms.PowerLineStatus.Offline:
                id = Settings.Default.DischargingScheme;
                if (id != Guid.Empty)
                {
                    PowerManagement.SetActiveScheme(id);
                    message = String.Format("The power scheme has been automatically set to {0}", PowerManagement.ReadFriendlyName(id));
                }
                break;

            case Forms.PowerLineStatus.Unknown:
                // todo, what does unknown indicate? How to best handle this case?
                message = "Unknown? Panic!";
                break;

            default:
                message = "Default? Hmmm";
                break;
            }
            NotifyVM.UpdateActiveScheme(PowerManagement.GetActiveScheme());
            NotifyIcon.ShowBalloonTip("QuickPower", message, BalloonIcon.Info);
        }