private void InitializeDetailControls()
        {
            DropDown.Add("ModInstallAs", new DropDown(
                             this.comboBoxModInstallAs,
                             new String[] {
                "Bundled *.ba2 archive",
                "Separate *.ba2 archive",
                "Loose files"
            }
                             ));

            DropDown.Add("ModArchivePreset", new DropDown(
                             this.comboBoxModArchivePreset,
                             new String[] {
                "-- Please select --",
                "Auto-detect",
                "General / Interface / Materials / Animations",     /* Materials: *.bgsm; Interface: *.swf; */
                "Textures (*.dds files)",
                "Sound FX / Music / Voice",                         /* Voice: *.fuz; Lip-Sync: *.lip; Sound FX: *.xwm; */
            }
                             ));

            this.pictureBoxCollapseDetails.MouseEnter += new EventHandler((mouseSender, mouseEventArgs) =>
            {
                this.pictureBoxCollapseDetails.BackColor = Color.LightGray;
                this.pictureBoxCollapseDetails.Cursor    = Cursors.Hand;
            });
            this.pictureBoxCollapseDetails.MouseLeave += new EventHandler((mouseSender, mouseEventArgs) =>
            {
                this.pictureBoxCollapseDetails.BackColor = Color.Silver;
                this.pictureBoxCollapseDetails.Cursor    = Cursors.Hand;
            });

            CollapseAndHideSidePanel();
        }
        /// <summary>
        /// Sets up elements, adds event handlers, etc.
        /// </summary>
        private void InitializeDetailControls()
        {
            DropDown.Add("ModInstallAs", new DropDown(
                             this.comboBoxModInstallAs,
                             new string[] {
                "Bundled *.ba2 archive",
                "Separate *.ba2 archive",
                "Loose files"
            }
                             ));

            DropDown.Add("ModArchivePreset", new DropDown(
                             this.comboBoxModArchivePreset,
                             new string[] {
                "-- Please select --",
                "Auto-detect",
                "General / Interface / Materials / Animations",     /* Materials: *.bgsm; Interface: *.swf; */
                "Textures (*.dds files)",
                "Sound FX / Music / Voice",                         /* Voice: *.fuz; Lip-Sync: *.lip; Sound FX: *.xwm; */
            }
                             ));

            this.pictureBoxCollapseDetails.MouseEnter += new EventHandler((mouseSender, mouseEventArgs) =>
            {
                this.pictureBoxCollapseDetails.BackColor = Color.LightGray;
                this.pictureBoxCollapseDetails.Cursor    = Cursors.Hand;
            });
            this.pictureBoxCollapseDetails.MouseLeave += new EventHandler((mouseSender, mouseEventArgs) =>
            {
                this.pictureBoxCollapseDetails.BackColor = Color.Silver;
                this.pictureBoxCollapseDetails.Cursor    = Cursors.Hand;
            });

            this.Resize += this.FormModsDetails_Resize;

            // Disable scroll wheel on UI elements to prevent the user from accidentally changing values:
            Utils.PreventChangeOnMouseWheelForAllElements(this.panelModDetailsInner);

            /*
             * Drag&Drop
             */
            this.panelModDetailsReplaceDragAndDrop.AllowDrop  = true;
            this.panelModDetailsReplaceDragAndDrop.DragEnter += new DragEventHandler(panelModDetailsReplaceDragAndDrop_DragEnter);
            this.panelModDetailsReplaceDragAndDrop.DragDrop  += new DragEventHandler(panelModDetailsReplaceDragAndDrop_DragDrop);

            CloseSidePanel();
        }
        public Form1()
        {
            InitializeComponent();

            // Determine whether this is the very first start of the tool on the system:
            FirstStart = !File.Exists(IniFiles.ConfigPath) && !File.Exists(ProfileManager.XMLPath);

            // Handle changes:
            ProfileManager.ProfileChanged += OnProfileChanged;

            // Create FormMods:
            formMods = new FormMods();
            FormMods.NWModeUpdated += OnNWModeUpdated;
            UpdateNWModeUI(false);

            /*
             * Translations
             */

            // Make this form translatable:
            LocalizedForm form = new LocalizedForm(this, this.toolTip);

            form.SpecialControls.Add(this.contextMenuStripGallery);
            Localization.LocalizedForms.Add(form);

            // Handle translations:
            Translation.LanguageChanged += OnLanguageChanged;

            // Add control elements to blacklist:
            Translation.BlackList.AddRange(new string[] {
                "labelConfigVersion",
                "labelAuthorName",
                "labelTranslationAuthor",
                "groupBoxWIP",
                "labelNewVersion",
                "labelGameEdition",
                "toolStripStatusLabelGameText",
                "toolStripStatusLabelEditionText",
                "toolStripStatusLabel1",
                "labelPipboyResolutionSpacer"
            });


            /*
             * Dropdowns
             */

            #region Dropdowns

            // Let's add options to the drop-down menus:

            // Display resolution usage statistics (and lists):
            // https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam
            // https://www.rapidtables.com/web/dev/screen-resolution-statistics.html
            // https://w3codemasters.in/most-common-screen-resolutions/
            // https://www.reneelab.com/video-with-4-3-format.html
            // https://www.overclock.net/threads/list-of-display-resolutions-aspect-ratios.539967/
            // https://en.wikipedia.org/wiki/List_of_common_resolutions
            DropDown.Add("Resolution", new DropDown(
                             this.comboBoxResolution,
                             new string[] {
                "Custom",
                "",
                "┌───────────────────────────────┐",
                "│  4:3                          │",
                "├───────────────────────────────┤",
                "│ [4:3]    640 x  480 (VGA)     │",
                "│ [4:3]    800 x  600 (SVGA)    │",
                "│ [4:3]    960 x  720           │",
                "│ [4:3]   1024 x  768 (XGA)     │",
                "│ [4:3]   1152 x  864           │",
                "│ [4:3]   1280 x  960           │",
                "│ [4:3]   1400 x 1050           │",
                "│ [4:3]   1440 x 1080           │",
                "│ [4:3]   1600 x 1200           │",
                "│ [4:3]   1920 x 1440           │",
                "│ [4:3]   2048 x 1536           │",
                "│ [4:3]   2880 x 2160           │",
                "│                               │",
                "│                               │",
                "├───────────────────────────────┤",
                "│  5:3                          │",
                "├───────────────────────────────┤",
                "│ [5:3]    800 x  480           │",
                "│ [5:3]   1280 x  768 (WXGA)    │",
                "│                               │",
                "│                               │",
                "├───────────────────────────────┤",
                "│  5:4                          │",
                "├───────────────────────────────┤",
                "│ [5:4]   1152 x  960           │",
                "│ [5:4]   1280 x 1024           │",
                "│ [5:4]   2560 x 2048           │",
                "│ [5:4]   5120 x 4096           │",
                "│                               │",
                "│                               │",
                "├───────────────────────────────┤",
                "│  8:5                          │",
                "├───────────────────────────────┤",
                "│ [8:5]   1280 x  800           │",
                "│ [8:5]   1440 x  900           │",
                "│ [8:5]   1680 x 1050           │",
                "│ [8:5]   1920 x 1200           │",
                "│                               │",
                "│                               │",
                "├───────────────────────────────┤",
                "│  16:9                         │",
                "├───────────────────────────────┤",
                "│ [16:9]  1024 x  576           │",
                "│ [16:9]  1152 x  648           │",
                "│ [16:9]  1280 x  720 (HD)      │",
                "│ [16:9]  1360 x  768           │",
                "│ [16:9]  1365 x  768           │",
                "│ [16:9]  1366 x  768           │",
                "│ [16:9]  1536 x  864           │",
                "│ [16:9]  1600 x  900           │",
                "│ [16:9]  1920 x 1080 (Full HD) │",
                "│ [16:9]  2560 x 1440 (WQHD)    │",
                "│ [16:9]  3200 x 1800           │",
                "│ [16:9]  3840 x 2160 (4K UHD1) │",
                "│ [16:9]  5120 x 2880 (5K)      │",
                "│ [16:9]  7680 x 4320 (8K UHD2) │",
                "│                               │",
                "│                               │",
                "├───────────────────────────────┤",
                "│  16:10                        │",
                "├───────────────────────────────┤",
                "│ [16:10]  640 x  400           │",
                "│ [16:10] 1280 x  800           │",
                "│ [16:10] 1440 x  900           │",
                "│ [16:10] 1680 x 1050           │",
                "│ [16:10] 1920 x 1200           │",
                "│ [16:10] 2560 x 1600           │",
                "│ [16:10] 3840 x 2400           │",
                "│                               │",
                "│                               │",
                "├───────────────────────────────┤",
                "│  17:9                         │",
                "├───────────────────────────────┤",
                "│ [17:9]  2048 x 1080           │",
                "│                               │",
                "│                               │",
                "├───────────────────────────────┤",
                "│  21:9                         │",
                "├───────────────────────────────┤",
                "│ [21:9]  1920 x  800           │",
                "│ [21:9]  2560 x 1080           │",
                "│ [21:9]  3440 x 1440           │",
                "│ [21:9]  3840 x 1600           │",
                "│ [21:9]  5120 x 2160           │",
                "│                               │",
                "│                               │",
                "└───────────────────────────────┘",
                ""
            }
                             ));

            DropDown.Add("DisplayMode", new DropDown(
                             this.comboBoxDisplayMode,
                             new string[] {
                "Fullscreen",
                "Windowed",
                "Borderless windowed",
                "Borderless windowed (Fullscreen)"
            }
                             ));

            DropDown.Add("AntiAliasing", new DropDown(
                             this.comboBoxAntiAliasing,
                             new string[] {
                "TAA (default)",
                "FXAA",
                "Disabled"
            }
                             ));

            DropDown.Add("AnisotropicFiltering", new DropDown(
                             this.comboBoxAnisotropicFiltering,
                             new string[] {
                "None",
                "2x",
                "4x",
                "8x (default)",
                "16x"
            }
                             ));

            DropDown.Add("ShadowTextureResolution", new DropDown(
                             this.comboBoxShadowTextureResolution,
                             new string[] {
                "512 = Potato",
                "1024 = Low",
                "2048 = High (default)",
                "4096 = Ultra"
            }
                             ));

            DropDown.Add("ShadowBlurriness", new DropDown(
                             this.comboBoxShadowBlurriness,
                             new string[] {
                "1x",
                "2x",
                "3x = Default, recommended"
            }
                             ));

            DropDown.Add("VoiceChatMode", new DropDown(
                             this.comboBoxVoiceChatMode,
                             new string[] {
                "Auto",
                "Area",
                "Team",
                "None"
            }
                             ));

            DropDown.Add("ShowActiveEffectsOnHUD", new DropDown(
                             this.comboBoxShowActiveEffectsOnHUD,
                             new string[] {
                "Disabled",
                "Detrimental",
                "All"
            }
                             ));

            DropDown.Add("iDirShadowSplits", new DropDown(
                             this.comboBoxiDirShadowSplits,
                             new string[] {
                "1 - Low",
                "2 - High / Medium",
                "3 - Ultra"
            }
                             ));

            #endregion

            /*
             * Event handlers:
             */

            // Disable scroll wheel on UI elements to prevent the user from accidentally changing values:
            Utils.PreventChangeOnMouseWheelForAllElements(this);

            // Event handler:
            this.FormClosing += this.Form1_FormClosing;
            this.Shown       += this.Form1_Shown;
            this.KeyDown     += this.Form1_KeyDown;

            this.backgroundWorkerGetLatestVersion.RunWorkerCompleted += backgroundWorkerGetLatestVersion_RunWorkerCompleted;

            InitAccountProfileRadiobuttons();

            // Pipboy screen preview:
            InitPipboyScreen();
            this.colorPreviewPipboy.BackColorChanged += colorPreviewPipboy_BackColorChanged;

            // Danger Zone:
            this.tabControl1.TabPages.Remove(this.tabPageDangerZone);
            FormSettings.SettingsClosing += (object sender, EventArgs e) =>
            {
                if (FormSettings.DangerZoneEnabled && !this.tabControl1.TabPages.Contains(this.tabPageDangerZone))
                {
                    this.tabControl1.TabPages.Add(this.tabPageDangerZone);
                    LinkDangerZoneControls();
                }
            };
        }