Example #1
0
        /// <summary>
        /// Start the screensaver in the specified mode unless one is specified in the command line.
        /// </summary>
        /// <param name="mode">The mode in which to run the screensaver. This value cannot be <see cref="ScreensaverMode.Preview"/>.</param>
        public void Run(ScreensaverMode mode)
        {
            if (mode == ScreensaverMode.Preview && windowHandle == IntPtr.Zero)
            {
                throw new ArgumentException("Cannot explicity run in preview mode", "mode");
            }

            if (isEnded)
            {
                throw new Exception("This screensaver has already finished running");
            }

            try
            {
                this.screensaverMode = ProcessCommandLine();
            }
            catch (FormatException)
            {
                this.screensaverMode = mode;
            }

            try
            {
                switch (screensaverMode)
                {
                case ScreensaverMode.Windowed:
                    RunWindowed();
                    break;

                case ScreensaverMode.Settings:
                    ShowSettingsDialog();
                    break;

                case ScreensaverMode.Normal:
                    if (!closeOnMouseMoveOverride)
                    {
                        closeOnMouseMove = true;
                    }
                    if (!closeOnClickOverride)
                    {
                        closeOnClick = true;
                    }
                    if (!closeOnKeyboardInputOverride)
                    {
                        closeOnKeyboardInput = true;
                    }

                    RunNormal();
                    break;

                case ScreensaverMode.Preview:
                    RunPreview();
                    break;
                }
            }
            finally
            {
                isEnded = true;
            }
        }
Example #2
0
        /// <summary>
        /// Start the screensaver in the specified mode unless one is specified in the command line.
        /// </summary>
        /// <param name="mode">The mode in which to run the screensaver. This value cannot be <see cref="ScreensaverMode.Preview"/>.</param>
        public void Run(ScreensaverMode mode)
        {
            if (mode == ScreensaverMode.Preview && windowHandle == IntPtr.Zero)
                throw new ArgumentException("Cannot explicity run in preview mode", "mode");

            if (isEnded)
                throw new Exception("This screensaver has already finished running");

            try
            {
                this.screensaverMode = ProcessCommandLine();
            }
            catch (FormatException)
            {
                this.screensaverMode = mode;
            }

            try
            {
                switch (screensaverMode)
                {
                    case ScreensaverMode.Windowed:
                        RunWindowed();
                        break;
                    case ScreensaverMode.Settings:
                        ShowSettingsDialog();
                        break;
                    case ScreensaverMode.Normal:
                        RunNormal();
                        break;
                    case ScreensaverMode.Preview:
                        RunPreview();
                        break;
                }
            }
            finally
            {
                isEnded = true;
            }
        }