/// <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; } }
public ControlPanel(AvailablePanels panel) { this.mCurrentPanel = panel; }