/// <summary>
        /// About window.
        /// </summary>
		/// <param name = "mainWindow">
		/// The parent window.
		/// </param>
        /// <param name="programInfo">
        /// This program's information (main project info).
        /// </param>
        /// <param name="assemblies">
        /// Assemblies to use.
        /// </param>
        public About (MainWindow mainWindow, FileVersionInfo programInfo, ProjectAssemblies assemblies)
        {
            this.VersionInfo = new VersionInfo (programInfo, assemblies, disclaimer);
            this.DataContext = this.VersionInfo;
            this.mainWindow = mainWindow;
            InitializeComponent();
        }
        /// <summary>
        /// Url Manipulation window.
        /// </summary>
        /// <param name="add">
        /// This is the Url Adding window.
        /// </param>
        /// <param name="mainWindow">
        /// The parent window.
        /// </param>
        public UrlManipulation (bool add, MainWindow mainWindow)
        {
        	this.urlShapingVars.Add = add;
            this.DataContext = this.urlShapingVars;
            InitializeComponent();
            this.videoQueue = mainWindow.MainProgramElements.Videos;
            this.MainWindow = mainWindow;
            this.persistantUrlIndex = mainWindow.MainProgramElements.CurrentlySelectedQueueIndex;
            this.Title = string.Format(CultureInfo.CurrentCulture, "{0} the Queue", add ? "Add Url(s) to" : "Modify Url(s) in");
            this.basicManipulateUrlButton.Content = add ? "Add Url to the Queue" : "Modify Current Url";

			if (!add && videoQueue.Any())
			{
				this.avTextBox.Text = string.Join(string.Empty, videoQueue);
				this.urlShapingVars.BasicText = videoQueue[this.persistantUrlIndex].Location;
				this.urlShapingVars.AudioOnlyEnabled = videoQueue[this.persistantUrlIndex].IsAudioFile;
				this.urlShapingVars.SelectedFormat = this.formatComboBox.Items.IndexOf(videoQueue[this.persistantUrlIndex].Format);
				this.urlShapingVars.SelectedResolution = videoQueue[this.persistantUrlIndex].Quality;
			}
			else
			{
				this.avTextBox.Text = string.Format(CultureInfo.CurrentCulture, "{0} {1} Mp4 False (REMOVE!)", UrlShaping.ExampleText, UrlShaping.DefaultResolution);
			}
        }
 /// <summary>
 /// Options window.
 /// </summary>
 /// <param name="mainWindow">
 /// The parent window.
 /// </param>
 public Options (MainWindow mainWindow)
 {
     this.DataContext = this.savedSettings;
     InitializeComponent();
     this.MainWindow = mainWindow;
 }
 /// <summary>
 /// Container for the UI values for the parent window of the entire program.
 /// </summary>
 /// <param name="mainWindow">
 /// The parent window for the entire program.
 /// </param>
 public MainProgramElements (MainWindow mainWindow)
 {
     this.main = mainWindow;
 }