/// <summary>
        /// Creates a panel that needs to be displayed.
        /// </summary>
        /// <param name="panel">The panel to create</param>
        private void CreatePanel(AvailablePanels panel)
        {
            switch (panel)
            {
                case (AvailablePanels.Controls):
                    this.mControlsPanel = new ControlsPanel();
                    this.mControlsPanel.ev_OptionSelected += new ControlsPanel.OptionSelected(ControlsPanel_ev_OptionSelected);
                    this.Controls.Add(this.mControlsPanel);
                    break;
                case (AvailablePanels.Size):
                    this.mSizePanel = new SizePanel(this.mWallpaperSize);
                    this.mSizePanel.ev_EventFired += new EventFired(SizePanel_ev_EventFired);
                    this.Controls.Add(this.mSizePanel);
                    break;
                case (AvailablePanels.Tags):
                    this.mTagsPanel = new TagsPanel(this.mTags);
                    this.mTagsPanel.ev_EventFired += new EventFired(TagsPanel_ev_EventFired);
                    this.Controls.Add(this.mTagsPanel);
                    break;
                case (AvailablePanels.Source):
                    this.mSourcePanel = new SourcePanel(this.mUserName,this.mEncryptedToken,this.mPasswordKey,this.mPasswordIV);
                    this.mSourcePanel.ev_EventFired += new EventFired(SourcePanel_ev_EventFired);
                    this.Controls.Add(this.mSourcePanel);
                    break;
                case (AvailablePanels.Changer):
                    this.mChangerPanel = new ChangerPanel(this.mAutoRun, this.mRunBefore);
                    this.mChangerPanel.ev_EventFired += new EventFired(ChangerPanel_ev_EventFired);
                    this.Controls.Add(this.mChangerPanel);
                    break;
                case (AvailablePanels.Timings):
                    this.mTimingsPanel = new TimingsPanel(this.mPictureChangeInterval, this.mReindexTime);
                    this.mTimingsPanel.ev_EventFired += new EventFired(TimingsPanel_ev_EventFired);
                    this.Controls.Add(this.mTimingsPanel);
                    break;
            }

        }
        /// <summary>
        /// Deals with minimizing and maximizing the form.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Controller_ResizeEnd(object sender, EventArgs e)
        {
            if (this.mLastState != this.WindowState)
            {
                if (this.WindowState == FormWindowState.Minimized)
                {
                    this.mNotifyIcon.Visible = true;
                    this.mLastState = FormWindowState.Minimized;

                    if (this.mNewPanel != null)
                    {
                        this.mCurrentPanelIndex = AvailablePanels.Wizard_Start;
                    }
                    else if (this.mCurrentPanel != null)
                    {
                        this.mCurrentPanelIndex = this.mCurrentPanel.PanelType;
                        this.RemovePanel();
                    }
                    try
                    {
                        if (this.ShowInTaskbar == true)
                            this.ShowInTaskbar = false;
                    }
                    catch
                    {
                    }
                }
                else
                {
                    this.mLastState = FormWindowState.Normal;
                    this.mNotifyIcon.Visible = false;


                    this.DisplayPanel(this.mCurrentPanelIndex);



                    this.ShowInTaskbar = true;



                }

            }

        }
        /// <summary>
        /// Display a control panel to the user
        /// </summary>
        /// <param name="availablePanels">The panel to display</param>
        private void DisplayPanel(AvailablePanels availablePanels)
        {
            switch (availablePanels)
            {
                case (AvailablePanels.Controls):
                    CreatePanel(AvailablePanels.Controls);
                    this.mCurrentPanel = this.mControlsPanel as ControlPanel;
                    break;
                case (AvailablePanels.Source):
                    CreatePanel(AvailablePanels.Source);
                    this.mCurrentPanel = this.mSourcePanel as ControlPanel;
                    break;
                case (AvailablePanels.Timings):
                    CreatePanel(AvailablePanels.Timings);
                    this.mCurrentPanel = this.mTimingsPanel as ControlPanel;
                    break;
                case (AvailablePanels.Tags):
                    CreatePanel(AvailablePanels.Tags);
                    this.mCurrentPanel = this.mTagsPanel as ControlPanel;
                    break;
                case (AvailablePanels.Size):
                    CreatePanel(AvailablePanels.Size);
                    this.mCurrentPanel = this.mSizePanel as ControlPanel;
                    break;
                case (AvailablePanels.Changer):
                    CreatePanel(AvailablePanels.Changer);
                    this.mCurrentPanel = this.mChangerPanel as ControlPanel;
                    break;

            }
            this.mCurrentPanelIndex = availablePanels;
        }
 /// <summary>
 /// Brings a panel into view, this kills off the current panel, and brings a new panel into view
 /// </summary>
 /// <param name="panelName">The panel to display.</param>
 /// <param name="previousPanel">The old panel to remove</param>
 private void DisplayPanel(AvailablePanels panelName, AvailablePanels previousPanel)
 {
     switch (panelName)
     {
         case (AvailablePanels.Controls):
             CreatePanel(AvailablePanels.Controls);
             this.mCurrentPanel = this.mControlsPanel as ControlPanel;
             break;
         case (AvailablePanels.Source):
             CreatePanel(AvailablePanels.Source);
             this.mCurrentPanel = this.mSourcePanel as ControlPanel;
             break;
         case (AvailablePanels.Timings):
             CreatePanel(AvailablePanels.Timings);
             this.mCurrentPanel = this.mTimingsPanel as ControlPanel;
             break;
         case (AvailablePanels.Tags):
             CreatePanel(AvailablePanels.Tags);
             this.mCurrentPanel = this.mTagsPanel as ControlPanel;
             break;
         case (AvailablePanels.Size):
             CreatePanel(AvailablePanels.Size);
             this.mCurrentPanel = this.mSizePanel as ControlPanel;
             break;
         case (AvailablePanels.Changer):
             CreatePanel(AvailablePanels.Changer);
             this.mCurrentPanel = this.mChangerPanel as ControlPanel;
             break;
     }
     this.RemovePanel(previousPanel);
     this.mCurrentPanelIndex = panelName;
 }
        /// <summary>
        /// Disposes of an open control panel
        /// </summary>
        /// <param name="panel">The panel type being disposed</param>
        private void RemovePanel(AvailablePanels panel)
        {
            switch (panel)
            {
                case (AvailablePanels.Controls):
                    if (this.mControlsPanel != null)
                    {
                        this.mControlsPanel.ev_OptionSelected -= ControlsPanel_ev_OptionSelected;
                        this.mControlsPanel.Dispose();
                        this.mControlsPanel = null;
                    }
                    break;
                case (AvailablePanels.Size):
                    if (this.mSizePanel != null)
                    {
                        this.mSizePanel.ev_EventFired -= SizePanel_ev_EventFired;
                        this.mSizePanel.Dispose();
                        this.mSizePanel = null;
                    }

                    break;
                case (AvailablePanels.Tags):
                    if (this.mTagsPanel != null)
                    {
                        this.mTagsPanel.ev_EventFired -= TagsPanel_ev_EventFired;
                        this.mTagsPanel.Dispose();
                        this.mTagsPanel = null;
                    }
                    break;
                case (AvailablePanels.Source):
                    if (this.mSourcePanel != null)
                    {
                        this.mSourcePanel.ev_EventFired -= SourcePanel_ev_EventFired;
                        this.mSourcePanel.Dispose();
                        this.mSourcePanel = null;
                    }
                    break;
                case (AvailablePanels.Changer):
                    if (this.mChangerPanel != null)
                    {
                        this.mChangerPanel.ev_EventFired -= ChangerPanel_ev_EventFired;
                        this.mChangerPanel.Dispose();
                        this.mChangerPanel = null;
                    }
                    break;
                case (AvailablePanels.Timings):
                    if (this.mTimingsPanel != null)
                    {
                        this.mTimingsPanel.ev_EventFired -= TimingsPanel_ev_EventFired;
                        this.mTimingsPanel.Dispose();
                        this.mTimingsPanel = null;
                    }
                    break;
                case (AvailablePanels.Wizard_Start):
                    if (this.mNewPanel != null)
                    {

                        this.mNewPanel.Dispose();
                        this.mNewPanel = null;
                    }
                    break;
            }
        }
 /// <summary>
 /// The delegate method which calls the function to do the destruction
 /// </summary>
 /// <param name="newOne">The new control to create</param>
 /// <param name="oldOne">The old control to destroy</param>
 public void DisplayMeHandler(AvailablePanels newOne, AvailablePanels oldOne)
 {
     this.DisplayPanel(newOne, oldOne);
 }
        /// <summary>
        /// The Controller has loaded so lets fill it with joy.
        /// </summary>
        /// <param name="sender">The controller</param>
        /// <param name="e"></param>
        private void Controller_Load(object sender, EventArgs e)
        {
            // the program has not run before so pull some data from the settings file. The visible control panel will be the wizard
            // start panel
            if (this.mRunBefore == false)
            {
                this.UpdateNumberOfPhotosIndexed("There are " + this.mNumberOfPictures.ToString() + " photos available");

                this.UpdateLastIndexed("Last Updated " + this.mReindexedDate.ToShortDateString());

                this.UpdateStatus("Currently idle");
               
                this.WindowState = FormWindowState.Normal;
                this.mNotifyIcon.Visible = false;
            }
            else // the app has run before.
            {
                this.UpdateNumberOfPhotosIndexed("There are " + this.mNumberOfPictures.ToString() + " photos available");

                this.UpdateLastIndexed("Last Updated " + this.mReindexedDate.ToShortDateString());

                this.UpdateStatus("Currently waiting to change pictures");

                this.mCurrentPanelIndex = AvailablePanels.Controls;
                // Kill off the Wizard Panel
                this.mNewPanel.Dispose();
                this.mNewPanel = null;
                // and minimize
                this.WindowState = FormWindowState.Minimized;
            }

        }
Пример #8
0
 public ControlPanel(AvailablePanels panel)
 {
     this.mCurrentPanel = panel;
 }
 public ControlPanel(AvailablePanels panel)
 {
     this.mCurrentPanel = panel;
 }