From dd64ba491bd42dcae436a263a68c8acc61f9149b Mon Sep 17 00:00:00 2001 From: Vincent Maas Date: Sat, 4 Mar 2023 13:15:21 +0100 Subject: [PATCH] move game launcher to separate panel --- ColorControl/MainForm.Designer.cs | 432 --------------- ColorControl/MainForm.cs | 424 +-------------- ColorControl/MainForm.resx | 3 - .../GameLauncher/GamePanel.Designer.cs | 485 +++++++++++++++++ .../Services/GameLauncher/GamePanel.cs | 507 ++++++++++++++++++ .../Services/GameLauncher/GamePanel.resx | 60 +++ 6 files changed, 1059 insertions(+), 852 deletions(-) create mode 100644 ColorControl/Services/GameLauncher/GamePanel.Designer.cs create mode 100644 ColorControl/Services/GameLauncher/GamePanel.cs create mode 100644 ColorControl/Services/GameLauncher/GamePanel.resx diff --git a/ColorControl/MainForm.Designer.cs b/ColorControl/MainForm.Designer.cs index 42b89b2..a1f5d31 100644 --- a/ColorControl/MainForm.Designer.cs +++ b/ColorControl/MainForm.Designer.cs @@ -94,37 +94,6 @@ this.clbLgPower = new System.Windows.Forms.CheckedListBox(); this.lblLgError = new System.Windows.Forms.Label(); this.tabGameLauncher = new System.Windows.Forms.TabPage(); - this.cbxGameStepType = new System.Windows.Forms.ComboBox(); - this.btnGameOptions = new System.Windows.Forms.Button(); - this.mnuGameOptions = new System.Windows.Forms.ContextMenuStrip(this.components); - this.miGameProcessorAffinity = new System.Windows.Forms.ToolStripMenuItem(); - this.miGameProcessPriority = new System.Windows.Forms.ToolStripMenuItem(); - this.chkGameQuickAccess = new System.Windows.Forms.CheckBox(); - this.btnGameSettings = new System.Windows.Forms.Button(); - this.mnuGameActions = new System.Windows.Forms.ContextMenuStrip(this.components); - this.mnuGameNvInspector = new System.Windows.Forms.ToolStripMenuItem(); - this.miGameSetQuickAccessShortcut = new System.Windows.Forms.ToolStripMenuItem(); - this.chkGameRunAsAdmin = new System.Windows.Forms.CheckBox(); - this.lblGameParameters = new System.Windows.Forms.Label(); - this.edtGameParameters = new System.Windows.Forms.TextBox(); - this.btnGameBrowse = new System.Windows.Forms.Button(); - this.lblGameFilePath = new System.Windows.Forms.Label(); - this.edtGamePath = new System.Windows.Forms.TextBox(); - this.edtGamePrelaunchSteps = new System.Windows.Forms.TextBox(); - this.btnGameAddStep = new System.Windows.Forms.Button(); - this.mnuGameAddStep = new System.Windows.Forms.ContextMenuStrip(this.components); - this.mnuGameNvidiaPresets = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuGameAmdPresets = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuGameLgPresets = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuGameStartProgram = new System.Windows.Forms.ToolStripMenuItem(); - this.label4 = new System.Windows.Forms.Label(); - this.edtGameName = new System.Windows.Forms.TextBox(); - this.btnGameDelete = new System.Windows.Forms.Button(); - this.btnGameClone = new System.Windows.Forms.Button(); - this.btnGameSave = new System.Windows.Forms.Button(); - this.btnGameAdd = new System.Windows.Forms.Button(); - this.btnGameLaunch = new System.Windows.Forms.Button(); - this.lvGamePresets = new System.Windows.Forms.ListView(); this.tabOptions = new System.Windows.Forms.TabPage(); this.grpNvidiaOptions = new System.Windows.Forms.GroupBox(); this.lblDitheringDisplay = new System.Windows.Forms.Label(); @@ -190,10 +159,6 @@ this.scLgController.SuspendLayout(); this.mnuLgExpert.SuspendLayout(); this.mnuLgButtons.SuspendLayout(); - this.tabGameLauncher.SuspendLayout(); - this.mnuGameOptions.SuspendLayout(); - this.mnuGameActions.SuspendLayout(); - this.mnuGameAddStep.SuspendLayout(); this.tabOptions.SuspendLayout(); this.grpNvidiaOptions.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pbGradient)).BeginInit(); @@ -984,26 +949,6 @@ // // tabGameLauncher // - this.tabGameLauncher.Controls.Add(this.cbxGameStepType); - this.tabGameLauncher.Controls.Add(this.btnGameOptions); - this.tabGameLauncher.Controls.Add(this.chkGameQuickAccess); - this.tabGameLauncher.Controls.Add(this.btnGameSettings); - this.tabGameLauncher.Controls.Add(this.chkGameRunAsAdmin); - this.tabGameLauncher.Controls.Add(this.lblGameParameters); - this.tabGameLauncher.Controls.Add(this.edtGameParameters); - this.tabGameLauncher.Controls.Add(this.btnGameBrowse); - this.tabGameLauncher.Controls.Add(this.lblGameFilePath); - this.tabGameLauncher.Controls.Add(this.edtGamePath); - this.tabGameLauncher.Controls.Add(this.edtGamePrelaunchSteps); - this.tabGameLauncher.Controls.Add(this.btnGameAddStep); - this.tabGameLauncher.Controls.Add(this.label4); - this.tabGameLauncher.Controls.Add(this.edtGameName); - this.tabGameLauncher.Controls.Add(this.btnGameDelete); - this.tabGameLauncher.Controls.Add(this.btnGameClone); - this.tabGameLauncher.Controls.Add(this.btnGameSave); - this.tabGameLauncher.Controls.Add(this.btnGameAdd); - this.tabGameLauncher.Controls.Add(this.btnGameLaunch); - this.tabGameLauncher.Controls.Add(this.lvGamePresets); this.tabGameLauncher.Location = new System.Drawing.Point(4, 24); this.tabGameLauncher.Name = "tabGameLauncher"; this.tabGameLauncher.Padding = new System.Windows.Forms.Padding(3); @@ -1012,347 +957,6 @@ this.tabGameLauncher.Text = "Game Launcher"; this.tabGameLauncher.UseVisualStyleBackColor = true; // - // cbxGameStepType - // - this.cbxGameStepType.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.cbxGameStepType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.cbxGameStepType.Enabled = false; - this.cbxGameStepType.FormattingEnabled = true; - this.cbxGameStepType.Location = new System.Drawing.Point(10, 474); - this.cbxGameStepType.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.cbxGameStepType.Name = "cbxGameStepType"; - this.cbxGameStepType.Size = new System.Drawing.Size(136, 23); - this.cbxGameStepType.TabIndex = 46; - this.cbxGameStepType.SelectedIndexChanged += new System.EventHandler(this.cbxGameStepType_SelectedIndexChanged); - // - // btnGameOptions - // - this.btnGameOptions.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.btnGameOptions.ContextMenuStrip = this.mnuGameOptions; - this.btnGameOptions.Enabled = false; - this.btnGameOptions.Location = new System.Drawing.Point(785, 439); - this.btnGameOptions.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.btnGameOptions.Name = "btnGameOptions"; - this.btnGameOptions.Size = new System.Drawing.Size(88, 27); - this.btnGameOptions.TabIndex = 45; - this.btnGameOptions.Text = "Options..."; - this.btnGameOptions.UseVisualStyleBackColor = true; - this.btnGameOptions.Click += new System.EventHandler(this.btnGameOptions_Click); - // - // mnuGameOptions - // - this.mnuGameOptions.ImageScalingSize = new System.Drawing.Size(20, 20); - this.mnuGameOptions.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.miGameProcessorAffinity, - this.miGameProcessPriority}); - this.mnuGameOptions.Name = "mnuLgButtons"; - this.mnuGameOptions.Size = new System.Drawing.Size(166, 48); - // - // miGameProcessorAffinity - // - this.miGameProcessorAffinity.Name = "miGameProcessorAffinity"; - this.miGameProcessorAffinity.Size = new System.Drawing.Size(165, 22); - this.miGameProcessorAffinity.Text = "Processor affinity"; - this.miGameProcessorAffinity.Click += new System.EventHandler(this.btnGameProcessAffinity_Click); - // - // miGameProcessPriority - // - this.miGameProcessPriority.Name = "miGameProcessPriority"; - this.miGameProcessPriority.Size = new System.Drawing.Size(165, 22); - this.miGameProcessPriority.Text = "Process priority"; - this.miGameProcessPriority.Click += new System.EventHandler(this.miGameProcessPriority_Click); - // - // chkGameQuickAccess - // - this.chkGameQuickAccess.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.chkGameQuickAccess.AutoSize = true; - this.chkGameQuickAccess.Enabled = false; - this.chkGameQuickAccess.Location = new System.Drawing.Point(353, 387); - this.chkGameQuickAccess.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.chkGameQuickAccess.Name = "chkGameQuickAccess"; - this.chkGameQuickAccess.Size = new System.Drawing.Size(141, 19); - this.chkGameQuickAccess.TabIndex = 44; - this.chkGameQuickAccess.Text = "Show in Quick Access"; - this.chkGameQuickAccess.UseVisualStyleBackColor = true; - // - // btnGameSettings - // - this.btnGameSettings.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnGameSettings.ContextMenuStrip = this.mnuGameActions; - this.btnGameSettings.Location = new System.Drawing.Point(1018, 351); - this.btnGameSettings.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.btnGameSettings.Name = "btnGameSettings"; - this.btnGameSettings.Size = new System.Drawing.Size(88, 27); - this.btnGameSettings.TabIndex = 43; - this.btnGameSettings.Text = "Settings..."; - this.btnGameSettings.UseVisualStyleBackColor = true; - this.btnGameSettings.Click += new System.EventHandler(this.btnGameActions_Click); - // - // mnuGameActions - // - this.mnuGameActions.ImageScalingSize = new System.Drawing.Size(20, 20); - this.mnuGameActions.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.mnuGameNvInspector, - this.miGameSetQuickAccessShortcut}); - this.mnuGameActions.Name = "mnuLgButtons"; - this.mnuGameActions.Size = new System.Drawing.Size(212, 48); - this.mnuGameActions.Opening += new System.ComponentModel.CancelEventHandler(this.mnuGameActions_Opening); - // - // mnuGameNvInspector - // - this.mnuGameNvInspector.Name = "mnuGameNvInspector"; - this.mnuGameNvInspector.Size = new System.Drawing.Size(211, 22); - this.mnuGameNvInspector.Text = "NVIDIA Profile Inspector"; - this.mnuGameNvInspector.Click += new System.EventHandler(this.mnuGameNvInspector_Click); - // - // miGameSetQuickAccessShortcut - // - this.miGameSetQuickAccessShortcut.Name = "miGameSetQuickAccessShortcut"; - this.miGameSetQuickAccessShortcut.Size = new System.Drawing.Size(211, 22); - this.miGameSetQuickAccessShortcut.Text = "Set Quick Access Shortcut"; - this.miGameSetQuickAccessShortcut.Click += new System.EventHandler(this.miGameSetQuickAccessShortcut_Click); - // - // chkGameRunAsAdmin - // - this.chkGameRunAsAdmin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.chkGameRunAsAdmin.AutoSize = true; - this.chkGameRunAsAdmin.Enabled = false; - this.chkGameRunAsAdmin.Location = new System.Drawing.Point(881, 415); - this.chkGameRunAsAdmin.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.chkGameRunAsAdmin.Name = "chkGameRunAsAdmin"; - this.chkGameRunAsAdmin.Size = new System.Drawing.Size(135, 19); - this.chkGameRunAsAdmin.TabIndex = 42; - this.chkGameRunAsAdmin.Text = "Run as administrator"; - this.chkGameRunAsAdmin.UseVisualStyleBackColor = true; - // - // lblGameParameters - // - this.lblGameParameters.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.lblGameParameters.AutoSize = true; - this.lblGameParameters.Location = new System.Drawing.Point(8, 445); - this.lblGameParameters.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.lblGameParameters.Name = "lblGameParameters"; - this.lblGameParameters.Size = new System.Drawing.Size(69, 15); - this.lblGameParameters.TabIndex = 41; - this.lblGameParameters.Text = "Parameters:"; - // - // edtGameParameters - // - this.edtGameParameters.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.edtGameParameters.Enabled = false; - this.edtGameParameters.Location = new System.Drawing.Point(154, 442); - this.edtGameParameters.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.edtGameParameters.Name = "edtGameParameters"; - this.edtGameParameters.Size = new System.Drawing.Size(623, 23); - this.edtGameParameters.TabIndex = 40; - // - // btnGameBrowse - // - this.btnGameBrowse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.btnGameBrowse.ContextMenuStrip = this.mnuLgButtons; - this.btnGameBrowse.Enabled = false; - this.btnGameBrowse.Location = new System.Drawing.Point(785, 410); - this.btnGameBrowse.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.btnGameBrowse.Name = "btnGameBrowse"; - this.btnGameBrowse.Size = new System.Drawing.Size(88, 27); - this.btnGameBrowse.TabIndex = 39; - this.btnGameBrowse.Text = "Browse..."; - this.btnGameBrowse.UseVisualStyleBackColor = true; - this.btnGameBrowse.Click += new System.EventHandler(this.btnGameBrowse_Click); - // - // lblGameFilePath - // - this.lblGameFilePath.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.lblGameFilePath.AutoSize = true; - this.lblGameFilePath.Location = new System.Drawing.Point(8, 417); - this.lblGameFilePath.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.lblGameFilePath.Name = "lblGameFilePath"; - this.lblGameFilePath.Size = new System.Drawing.Size(51, 15); - this.lblGameFilePath.TabIndex = 38; - this.lblGameFilePath.Text = "File/URI:"; - // - // edtGamePath - // - this.edtGamePath.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.edtGamePath.Enabled = false; - this.edtGamePath.Location = new System.Drawing.Point(154, 413); - this.edtGamePath.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.edtGamePath.Name = "edtGamePath"; - this.edtGamePath.Size = new System.Drawing.Size(623, 23); - this.edtGamePath.TabIndex = 37; - // - // edtGamePrelaunchSteps - // - this.edtGamePrelaunchSteps.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.edtGamePrelaunchSteps.Enabled = false; - this.edtGamePrelaunchSteps.Location = new System.Drawing.Point(154, 471); - this.edtGamePrelaunchSteps.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.edtGamePrelaunchSteps.Multiline = true; - this.edtGamePrelaunchSteps.Name = "edtGamePrelaunchSteps"; - this.edtGamePrelaunchSteps.Size = new System.Drawing.Size(623, 48); - this.edtGamePrelaunchSteps.TabIndex = 35; - this.edtGamePrelaunchSteps.Leave += new System.EventHandler(this.edtGamePrelaunchSteps_Leave); - // - // btnGameAddStep - // - this.btnGameAddStep.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.btnGameAddStep.ContextMenuStrip = this.mnuGameAddStep; - this.btnGameAddStep.Enabled = false; - this.btnGameAddStep.Location = new System.Drawing.Point(785, 470); - this.btnGameAddStep.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.btnGameAddStep.Name = "btnGameAddStep"; - this.btnGameAddStep.Size = new System.Drawing.Size(88, 27); - this.btnGameAddStep.TabIndex = 36; - this.btnGameAddStep.Text = "Add step"; - this.btnGameAddStep.UseVisualStyleBackColor = true; - this.btnGameAddStep.Click += new System.EventHandler(this.btnGameAddStep_Click); - // - // mnuGameAddStep - // - this.mnuGameAddStep.ImageScalingSize = new System.Drawing.Size(20, 20); - this.mnuGameAddStep.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.mnuGameNvidiaPresets, - this.mnuGameAmdPresets, - this.mnuGameLgPresets, - this.mnuGameStartProgram}); - this.mnuGameAddStep.Name = "mnuLgButtons"; - this.mnuGameAddStep.Size = new System.Drawing.Size(153, 92); - this.mnuGameAddStep.Opening += new System.ComponentModel.CancelEventHandler(this.mnuGameAddStep_Opening); - // - // mnuGameNvidiaPresets - // - this.mnuGameNvidiaPresets.Name = "mnuGameNvidiaPresets"; - this.mnuGameNvidiaPresets.Size = new System.Drawing.Size(152, 22); - this.mnuGameNvidiaPresets.Text = "NVIDIA presets"; - // - // mnuGameAmdPresets - // - this.mnuGameAmdPresets.Name = "mnuGameAmdPresets"; - this.mnuGameAmdPresets.Size = new System.Drawing.Size(152, 22); - this.mnuGameAmdPresets.Text = "AMD presets"; - // - // mnuGameLgPresets - // - this.mnuGameLgPresets.Name = "mnuGameLgPresets"; - this.mnuGameLgPresets.Size = new System.Drawing.Size(152, 22); - this.mnuGameLgPresets.Text = "LG presets"; - // - // mnuGameStartProgram - // - this.mnuGameStartProgram.Name = "mnuGameStartProgram"; - this.mnuGameStartProgram.Size = new System.Drawing.Size(152, 22); - this.mnuGameStartProgram.Text = "Start Program"; - this.mnuGameStartProgram.Click += new System.EventHandler(this.mnuGameStartProgram_Click); - // - // label4 - // - this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(8, 388); - this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(42, 15); - this.label4.TabIndex = 33; - this.label4.Text = "Name:"; - // - // edtGameName - // - this.edtGameName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.edtGameName.Enabled = false; - this.edtGameName.Location = new System.Drawing.Point(154, 384); - this.edtGameName.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.edtGameName.Name = "edtGameName"; - this.edtGameName.Size = new System.Drawing.Size(191, 23); - this.edtGameName.TabIndex = 32; - // - // btnGameDelete - // - this.btnGameDelete.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.btnGameDelete.Enabled = false; - this.btnGameDelete.Location = new System.Drawing.Point(291, 351); - this.btnGameDelete.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.btnGameDelete.Name = "btnGameDelete"; - this.btnGameDelete.Size = new System.Drawing.Size(88, 27); - this.btnGameDelete.TabIndex = 30; - this.btnGameDelete.Text = "Delete"; - this.btnGameDelete.UseVisualStyleBackColor = true; - this.btnGameDelete.Click += new System.EventHandler(this.btnGameDelete_Click); - // - // btnGameClone - // - this.btnGameClone.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.btnGameClone.Enabled = false; - this.btnGameClone.Location = new System.Drawing.Point(103, 351); - this.btnGameClone.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.btnGameClone.Name = "btnGameClone"; - this.btnGameClone.Size = new System.Drawing.Size(88, 27); - this.btnGameClone.TabIndex = 29; - this.btnGameClone.Text = "Clone"; - this.btnGameClone.UseVisualStyleBackColor = true; - this.btnGameClone.Click += new System.EventHandler(this.btnGameClone_Click); - // - // btnGameSave - // - this.btnGameSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.btnGameSave.Enabled = false; - this.btnGameSave.Location = new System.Drawing.Point(387, 351); - this.btnGameSave.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.btnGameSave.Name = "btnGameSave"; - this.btnGameSave.Size = new System.Drawing.Size(88, 27); - this.btnGameSave.TabIndex = 28; - this.btnGameSave.Text = "Save"; - this.btnGameSave.UseVisualStyleBackColor = true; - this.btnGameSave.Click += new System.EventHandler(this.btnGameSave_Click); - // - // btnGameAdd - // - this.btnGameAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.btnGameAdd.Location = new System.Drawing.Point(199, 351); - this.btnGameAdd.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.btnGameAdd.Name = "btnGameAdd"; - this.btnGameAdd.Size = new System.Drawing.Size(88, 27); - this.btnGameAdd.TabIndex = 25; - this.btnGameAdd.Text = "Add"; - this.btnGameAdd.UseVisualStyleBackColor = true; - this.btnGameAdd.Click += new System.EventHandler(this.btnGameAdd_Click); - // - // btnGameLaunch - // - this.btnGameLaunch.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.btnGameLaunch.Enabled = false; - this.btnGameLaunch.Location = new System.Drawing.Point(8, 351); - this.btnGameLaunch.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.btnGameLaunch.Name = "btnGameLaunch"; - this.btnGameLaunch.Size = new System.Drawing.Size(88, 27); - this.btnGameLaunch.TabIndex = 24; - this.btnGameLaunch.Text = "Launch"; - this.btnGameLaunch.UseVisualStyleBackColor = true; - this.btnGameLaunch.Click += new System.EventHandler(this.btnGameLaunch_Click); - // - // lvGamePresets - // - this.lvGamePresets.AllowDrop = true; - this.lvGamePresets.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lvGamePresets.CheckBoxes = true; - this.lvGamePresets.FullRowSelect = true; - this.lvGamePresets.Location = new System.Drawing.Point(8, 8); - this.lvGamePresets.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.lvGamePresets.MultiSelect = false; - this.lvGamePresets.Name = "lvGamePresets"; - this.lvGamePresets.ShowItemToolTips = true; - this.lvGamePresets.Size = new System.Drawing.Size(1098, 335); - this.lvGamePresets.TabIndex = 23; - this.lvGamePresets.UseCompatibleStateImageBehavior = false; - this.lvGamePresets.View = System.Windows.Forms.View.Details; - this.lvGamePresets.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.lvLgPresets_ColumnClick); - this.lvGamePresets.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.lvGamePresets_ItemChecked); - this.lvGamePresets.SelectedIndexChanged += new System.EventHandler(this.lvGamePresets_SelectedIndexChanged); - this.lvGamePresets.DragDrop += new System.Windows.Forms.DragEventHandler(this.lvGamePresets_DragDrop); - this.lvGamePresets.DragEnter += new System.Windows.Forms.DragEventHandler(this.lvGamePresets_DragEnter); - this.lvGamePresets.DoubleClick += new System.EventHandler(this.lvGamePresets_DoubleClick); - // // tabOptions // this.tabOptions.Controls.Add(this.grpNvidiaOptions); @@ -2110,11 +1714,6 @@ this.scLgController.ResumeLayout(false); this.mnuLgExpert.ResumeLayout(false); this.mnuLgButtons.ResumeLayout(false); - this.tabGameLauncher.ResumeLayout(false); - this.tabGameLauncher.PerformLayout(); - this.mnuGameOptions.ResumeLayout(false); - this.mnuGameActions.ResumeLayout(false); - this.mnuGameAddStep.ResumeLayout(false); this.tabOptions.ResumeLayout(false); this.grpNvidiaOptions.ResumeLayout(false); this.grpNvidiaOptions.PerformLayout(); @@ -2244,38 +1843,8 @@ private System.Windows.Forms.Label lblLgPcHdmiPort; private System.Windows.Forms.ToolStripMenuItem mnuLgProgram; private System.Windows.Forms.TabPage tabGameLauncher; - private System.Windows.Forms.Label lblGameParameters; - private System.Windows.Forms.TextBox edtGameParameters; - private System.Windows.Forms.Button btnGameBrowse; - private System.Windows.Forms.Label lblGameFilePath; - private System.Windows.Forms.TextBox edtGamePath; - private System.Windows.Forms.TextBox edtGamePrelaunchSteps; - private System.Windows.Forms.Button btnGameAddStep; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.TextBox edtGameName; - private System.Windows.Forms.Button btnGameDelete; - private System.Windows.Forms.Button btnGameClone; - private System.Windows.Forms.Button btnGameSave; - private System.Windows.Forms.Button btnGameAdd; - private System.Windows.Forms.Button btnGameLaunch; - private System.Windows.Forms.ListView lvGamePresets; - private System.Windows.Forms.ContextMenuStrip mnuGameAddStep; - private System.Windows.Forms.ToolStripMenuItem mnuGameNvidiaPresets; - private System.Windows.Forms.ToolStripMenuItem mnuGameAmdPresets; - private System.Windows.Forms.ToolStripMenuItem mnuGameLgPresets; - private System.Windows.Forms.CheckBox chkGameRunAsAdmin; - private System.Windows.Forms.ToolStripMenuItem mnuGameStartProgram; - private System.Windows.Forms.Button btnGameSettings; - private System.Windows.Forms.ContextMenuStrip mnuGameActions; - private System.Windows.Forms.ToolStripMenuItem mnuGameNvInspector; - private System.Windows.Forms.CheckBox chkGameQuickAccess; - private System.Windows.Forms.ToolStripMenuItem miGameSetQuickAccessShortcut; private System.Windows.Forms.CheckBox chkLgQuickAccess; private System.Windows.Forms.Button btnLgSettings; - private System.Windows.Forms.Button btnGameOptions; - private System.Windows.Forms.ContextMenuStrip mnuGameOptions; - private System.Windows.Forms.ToolStripMenuItem miGameProcessorAffinity; - private System.Windows.Forms.ToolStripMenuItem miGameProcessPriority; private System.Windows.Forms.RadioButton rbElevationService; private System.Windows.Forms.RadioButton rbElevationProcess; private System.Windows.Forms.RadioButton rbElevationAdmin; @@ -2285,7 +1854,6 @@ private System.Windows.Forms.Button btnStartStopService; private System.Windows.Forms.Label lblShowLog; private System.Windows.Forms.ComboBox cbxLogType; - private System.Windows.Forms.ComboBox cbxGameStepType; private System.Windows.Forms.CheckBox chkAutoInstallUpdates; private System.Windows.Forms.CheckBox chkLgSetSelectedDeviceByPowerOn; private System.Windows.Forms.Button btnUpdate; diff --git a/ColorControl/MainForm.cs b/ColorControl/MainForm.cs index 1067f2c..f636437 100644 --- a/ColorControl/MainForm.cs +++ b/ColorControl/MainForm.cs @@ -44,7 +44,6 @@ namespace ColorControl private NvService _nvService; private NvPanel _nvPanel; - private string _lastDisplayRefreshRates = string.Empty; private NotifyIcon _trayIcon; private bool _initialized = false; @@ -74,6 +73,7 @@ namespace ColorControl private LgGameBar _gameBarForm; private GameService _gameService; + private GamePanel _gamePanel; //private KeyboardHookManager _keyboardHookManager; private IntPtr _screenStateNotify; @@ -235,9 +235,11 @@ namespace ColorControl { var appContextProvider = Program.ServiceProvider.GetRequiredService(); _gameService = new GameService(appContextProvider, HandleExternalServiceForLgDevice); - FillGamePresets(); - FormUtils.InitSortState(lvGamePresets, _config.GamePresetsSortState); + _gamePanel = new GamePanel(_gameService, _nvService, _amdService, _lgService, _trayIcon, Handle); + _gamePanel.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + + tabGameLauncher.Controls.Add(_gamePanel); InitShortcut(SHORTCUTID_GAMEQA, _config.GameQuickAccessShortcut, _gameService.ToggleQuickAccessForm); } @@ -450,22 +452,6 @@ namespace ColorControl } } - private void FillGamePresets() - { - FormUtils.InitListView(lvGamePresets, GamePreset.GetColumnNames()); - - foreach (var preset in _gameService.GetPresets()) - { - AddOrUpdateItemGame(preset); - Utils.RegisterShortcut(Handle, preset.id, preset.shortcut); - } - } - - private void AddOrUpdateItemGame(GamePreset preset = null) - { - FormUtils.AddOrUpdateListItem(lvGamePresets, _gameService.GetPresets(), _config, preset); - } - private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { if (!(SystemShutdown || EndSession || UserExit) && _config.MinimizeOnClose) @@ -497,9 +483,9 @@ namespace ColorControl _nvPanel?.Save(); _amdPanel?.Save(); + _gamePanel?.Save(); FormUtils.SaveSortState(lvLgPresets.ListViewItemSorter, _config.LgPresetsSortState); - FormUtils.SaveSortState(lvGamePresets.ListViewItemSorter, _config.GamePresetsSortState); SaveConfig(); } @@ -794,19 +780,6 @@ NOTE: installing the service may cause a User Account Control popup."); Utils.HandleKeyboardShortcutUp(e); } - private GamePreset GetSelectedGamePreset() - { - if (lvGamePresets.SelectedItems.Count > 0) - { - var item = lvGamePresets.SelectedItems[0]; - return (GamePreset)item.Tag; - } - else - { - return null; - } - } - private void FillLgPresets() { FormUtils.InitListView(lvLgPresets, LgPreset.GetColumnNames()); @@ -1028,16 +1001,7 @@ NOTE: installing the service may cause a User Account Control popup."); } else if (tcMain.SelectedTab == tabGameLauncher) { - UpdateGameLauncherTab(); - } - } - - private void UpdateGameLauncherTab() - { - if (cbxGameStepType.Items.Count == 0) - { - cbxGameStepType.Items.AddRange(Utils.GetDescriptions().ToArray()); - cbxGameStepType.SelectedIndex = 0; + _gamePanel?.UpdateInfo(); } } @@ -1342,12 +1306,6 @@ NOTE: installing the service may cause a User Account Control popup."); ApplyLgPreset(preset); } - private void ApplySelectedGamePreset() - { - var preset = GetSelectedGamePreset(); - ApplyGamePreset(preset); - } - private void btnDeleteLg_Click(object sender, EventArgs e) { var preset = GetSelectedLgPreset(); @@ -2493,255 +2451,6 @@ The InStart and Software Update items are now visible under the Expert-button." } } - private void lvGamePresets_SelectedIndexChanged(object sender, EventArgs _) - { - var preset = GetSelectedGamePreset(); - var enabled = preset != null; - - FormUtils.EnableControls(tabGameLauncher, enabled, new List { lvGamePresets, btnGameAdd }); - - if (preset != null) - { - edtGameName.Text = preset.name; - edtGamePath.Text = preset.Path; - edtGameParameters.Text = preset.Parameters; - chkGameRunAsAdmin.Checked = preset.RunAsAdministrator; - chkGameQuickAccess.Checked = preset.ShowInQuickAccess; - ShowGameSteps(); - } - else - { - edtGameName.Text = string.Empty; - edtGamePath.Text = string.Empty; - edtGameParameters.Text = string.Empty; - chkGameRunAsAdmin.Checked = false; - chkGameQuickAccess.Checked = false; - edtGamePrelaunchSteps.Text = string.Empty; - } - } - - private void lvGamePresets_DoubleClick(object sender, EventArgs e) - { - ApplySelectedGamePreset(); - } - - private void btnGameLaunch_Click(object sender, EventArgs e) - { - ApplySelectedGamePreset(); - } - - private void btnGameClone_Click(object sender, EventArgs e) - { - var preset = GetSelectedGamePreset(); - - var newPreset = preset.Clone(); - - AddOrUpdateItemGame(newPreset); - } - - private void btnGameAdd_Click(object sender, EventArgs e) - { - var file = Utils.SelectFile(); - - AddGamePreset(file); - } - - private void AddGamePreset(FileInfo file) - { - var preset = _gameService.CreateNewPreset(); - - if (file != null) - { - var versionInfo = FileVersionInfo.GetVersionInfo(file.FullName); - - preset.Path = file.FullName; - - var fileName = Path.GetFileNameWithoutExtension(preset.Path); - - preset.name = !string.IsNullOrEmpty(versionInfo.FileDescription) ? versionInfo.FileDescription : - !string.IsNullOrEmpty(versionInfo.ProductName) ? versionInfo.ProductName : fileName; - } - - AddOrUpdateItemGame(preset); - } - - private void btnGameSave_Click(object sender, EventArgs e) - { - SaveGamePreset(); - } - - private void SaveGamePreset() - { - var shortcut = string.Empty; - if (!Utils.ValidateShortcut(shortcut)) - { - return; - } - - var preset = GetSelectedGamePreset(); - - var name = edtGameName.Text.Trim(); - - if (name.Length == 0 || _gameService.GetPresets().Any(x => x.id != preset.id && x.name.Equals(name, StringComparison.OrdinalIgnoreCase))) - { - MessageForms.WarningOk("The name can not be empty and must be unique."); - return; - } - - preset.name = name; - preset.Path = edtGamePath.Text; - preset.Parameters = edtGameParameters.Text; - preset.RunAsAdministrator = chkGameRunAsAdmin.Checked; - preset.ShowInQuickAccess = chkGameQuickAccess.Checked; - - var clear = !string.IsNullOrEmpty(preset.shortcut); - - var shortcutChanged = !shortcut.Equals(preset.shortcut); - if (shortcutChanged) - { - preset.shortcut = shortcut; - } - - var text = edtGamePrelaunchSteps.Text; - - var stepsList = (GameStepType)cbxGameStepType.SelectedIndex switch - { - GameStepType.PreLaunch => preset.PreLaunchSteps, - GameStepType.PostLaunch => preset.PostLaunchSteps, - GameStepType.Finalize => preset.FinalizeSteps, - _ => throw new InvalidOperationException("Invalid game step type") - }; - - Utils.ParseWords(stepsList, text); - - AddOrUpdateItemGame(); - - if (shortcutChanged) - { - Utils.RegisterShortcut(Handle, preset.id, preset.shortcut, clear); - } - } - - private void btnGameBrowse_Click(object sender, EventArgs e) - { - var file = Utils.SelectFile(); - - if (file == null) - { - return; - } - - var preset = GetSelectedGamePreset(); - - preset.Path = file.FullName; - - edtGamePath.Text = preset.Path; - - if (string.IsNullOrEmpty(preset.name) || preset.name.StartsWith("New preset", StringComparison.OrdinalIgnoreCase)) - { - var fileName = Path.GetFileNameWithoutExtension(preset.Path); - - edtGameName.Text = fileName; - preset.name = fileName; - } - - AddOrUpdateItemGame(); - } - - private void btnGameDelete_Click(object sender, EventArgs e) - { - var preset = GetSelectedGamePreset(); - - if (preset == null) - { - return; - } - - if (!string.IsNullOrEmpty(preset.shortcut)) - { - WinApi.UnregisterHotKey(Handle, preset.id); - } - - _gameService.GetPresets().Remove(preset); - - var item = lvGamePresets.SelectedItems[0]; - lvGamePresets.Items.Remove(item); - } - - private void mnuGameAddStep_Opening(object sender, CancelEventArgs e) - { - FormUtils.BuildServicePresetsMenu(mnuGameNvidiaPresets, _nvService, "NVIDIA", miGameAddPreset_Click); - FormUtils.BuildServicePresetsMenu(mnuGameAmdPresets, _amdService, "AMD", miGameAddPreset_Click); - FormUtils.BuildServicePresetsMenu(mnuGameLgPresets, _lgService, "LG", miGameAddPreset_Click); - } - - private void miGameAddPreset_Click(object sender, EventArgs e) - { - var item = sender as ToolStripItem; - var preset = item.Tag as PresetBase; - - var text = $"{preset.GetType().Name}({preset.name})"; - - FormUtils.AddStepToTextBox(edtGamePrelaunchSteps, text); - } - - private void btnGameAddStep_Click(object sender, EventArgs e) - { - mnuGameAddStep.Show(btnGameAddStep, btnGameAddStep.PointToClient(Cursor.Position)); - } - - private void mnuGameStartProgram_Click(object sender, EventArgs e) - { - var file = Utils.SelectFile(); - - if (file != null) - { - FormUtils.AddStepToTextBox(edtGamePrelaunchSteps, $"StartProgram({file.FullName})"); - } - } - - private void lvGamePresets_DragDrop(object sender, DragEventArgs e) - { - if (e.Data.GetDataPresent(DataFormats.FileDrop)) - { - var files = (string[])e.Data.GetData(DataFormats.FileDrop); - var file = new FileInfo(files.First()); - - AddGamePreset(file); - } - } - - private void lvGamePresets_DragEnter(object sender, DragEventArgs e) - { - e.Effect = DragDropEffects.All; - } - - private void btnGameActions_Click(object sender, EventArgs e) - { - mnuGameActions.Show(btnGameSettings, btnGameSettings.PointToClient(Cursor.Position)); - } - - private void mnuGameNvInspector_Click(object sender, EventArgs e) - { - _nvPanel?.StartNvProfileInspector(); - } - - private void miGameSetQuickAccessShortcut_Click(object sender, EventArgs e) - { - var shortcut = FormUtils.EditShortcut(_config.GameQuickAccessShortcut); - - if (shortcut == null) - { - return; - } - - var clear = !string.IsNullOrEmpty(_config.GameQuickAccessShortcut); - - _config.GameQuickAccessShortcut = shortcut; - - Utils.RegisterShortcut(Handle, SHORTCUTID_GAMEQA, _config.GameQuickAccessShortcut, clear); - } - private void btnLgSettings_Click(object sender, EventArgs e) { var shortcut = FormUtils.EditShortcut(_config.LgQuickAccessShortcut, "Quick Access shortcut", "LG controller settings"); @@ -2758,16 +2467,6 @@ The InStart and Software Update items are now visible under the Expert-button." Utils.RegisterShortcut(Handle, SHORTCUTID_LGQA, _config.LgQuickAccessShortcut, clear); } - private void mnuGameActions_Opening(object sender, CancelEventArgs e) - { - mnuGameNvInspector.Visible = _nvService != null; - } - - private void lvGamePresets_ItemChecked(object sender, ItemCheckedEventArgs e) - { - FormUtils.ListViewItemChecked(lvGamePresets, e); - } - private void lvLgPresets_ItemChecked(object sender, ItemCheckedEventArgs e) { FormUtils.ListViewItemChecked(lvLgPresets, e); @@ -2821,82 +2520,6 @@ The InStart and Software Update items are now visible under the Expert-button." Utils.RegisterShortcut(Handle, SHORTCUTID_AMDQA, _config.AmdQuickAccessShortcut, clear); } - private void btnGameProcessAffinity_Click(object sender, EventArgs e) - { - var preset = GetSelectedGamePreset(); - - if (preset == null) - { - return; - } - - var numberOfProcessors = Environment.ProcessorCount; - - var options = Enumerable.Range(0, numberOfProcessors).Select(i => $"CPU #{i}"); - - var values = MessageForms.ShowDialog("Set processor affinity", new[] { - new MessageForms.FieldDefinition - { - Label = "Set desired processors which are allowed to run program", - FieldType = MessageForms.FieldType.Flags, - Values = options, - Value = preset.ProcessAffinityMask - } - }); - - if (!values.Any()) - { - return; - } - - var value = values.First().Value; - - preset.ProcessAffinityMask = (uint)(int)value; - } - - private void btnGameOptions_Click(object sender, EventArgs e) - { - mnuGameOptions.Show(btnGameOptions, btnGameOptions.PointToClient(Cursor.Position)); - } - - private void miGameProcessPriority_Click(object sender, EventArgs e) - { - var preset = GetSelectedGamePreset(); - - if (preset == null) - { - return; - } - - var dropDownValues = Utils.GetDescriptions(); - - var values = MessageForms.ShowDialog("Set process priority", new[] { - new MessageForms.FieldDefinition - { - Label = "Set desired process priority", - FieldType = MessageForms.FieldType.DropDown, - Values = dropDownValues, - Value = preset.ProcessPriorityClass > 0 ? ((GamePriorityClass)preset.ProcessPriorityClass).GetDescription() : GamePriorityClass.Normal.GetDescription() - } - }); - - if (!values.Any()) - { - return; - } - - var value = values.First().Value.ToString(); - var enumName = Utils.GetEnumNameByDescription(typeof(GamePriorityClass), value); - if (enumName != null) - { - value = enumName; - } - - var enumValue = Enum.Parse(typeof(GamePriorityClass), value); - - preset.ProcessPriorityClass = (uint)(int)enumValue; - } - private void rbElevationNone_CheckedChanged(object sender, EventArgs e) { if (!_initialized) @@ -3041,39 +2664,6 @@ Currently ColorControl is {(Utils.IsAdministrator() ? "" : "not ")}running as ad LoadLog(); } - private void cbxGameStepType_SelectedIndexChanged(object sender, EventArgs e) - { - ShowGameSteps(); - } - - private void ShowGameSteps() - { - var preset = GetSelectedGamePreset(); - - if (preset == null) - { - return; - } - - switch ((GameStepType)cbxGameStepType.SelectedIndex) - { - case GameStepType.PreLaunch: - edtGamePrelaunchSteps.Text = string.Join(", ", preset.PreLaunchSteps); - break; - case GameStepType.PostLaunch: - edtGamePrelaunchSteps.Text = string.Join(", ", preset.PostLaunchSteps); - break; - case GameStepType.Finalize: - edtGamePrelaunchSteps.Text = string.Join(", ", preset.FinalizeSteps); - break; - } - } - - private void edtGamePrelaunchSteps_Leave(object sender, EventArgs e) - { - SaveGamePreset(); - } - private void MainForm_Click(object sender, EventArgs e) { //PipeUtils.SendMessage(SvcMessageType.RestartAfterUpdate); diff --git a/ColorControl/MainForm.resx b/ColorControl/MainForm.resx index 796dc4d..5d309ce 100644 --- a/ColorControl/MainForm.resx +++ b/ColorControl/MainForm.resx @@ -72,9 +72,6 @@ 416, 50 - - 278, 17 - 590, 47 diff --git a/ColorControl/Services/GameLauncher/GamePanel.Designer.cs b/ColorControl/Services/GameLauncher/GamePanel.Designer.cs new file mode 100644 index 0000000..b59a11c --- /dev/null +++ b/ColorControl/Services/GameLauncher/GamePanel.Designer.cs @@ -0,0 +1,485 @@ +namespace ColorControl.Services.GameLauncher +{ + partial class GamePanel + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + + this.cbxGameStepType = new System.Windows.Forms.ComboBox(); + this.btnGameOptions = new System.Windows.Forms.Button(); + this.mnuGameOptions = new System.Windows.Forms.ContextMenuStrip(this.components); + this.miGameProcessorAffinity = new System.Windows.Forms.ToolStripMenuItem(); + this.miGameProcessPriority = new System.Windows.Forms.ToolStripMenuItem(); + this.chkGameQuickAccess = new System.Windows.Forms.CheckBox(); + this.btnGameSettings = new System.Windows.Forms.Button(); + this.mnuGameActions = new System.Windows.Forms.ContextMenuStrip(this.components); + this.mnuGameNvInspector = new System.Windows.Forms.ToolStripMenuItem(); + this.miGameSetQuickAccessShortcut = new System.Windows.Forms.ToolStripMenuItem(); + this.chkGameRunAsAdmin = new System.Windows.Forms.CheckBox(); + this.lblGameParameters = new System.Windows.Forms.Label(); + this.edtGameParameters = new System.Windows.Forms.TextBox(); + this.btnGameBrowse = new System.Windows.Forms.Button(); + this.lblGameFilePath = new System.Windows.Forms.Label(); + this.edtGamePath = new System.Windows.Forms.TextBox(); + this.edtGamePrelaunchSteps = new System.Windows.Forms.TextBox(); + this.btnGameAddStep = new System.Windows.Forms.Button(); + this.mnuGameAddStep = new System.Windows.Forms.ContextMenuStrip(this.components); + this.mnuGameNvidiaPresets = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuGameAmdPresets = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuGameLgPresets = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuGameStartProgram = new System.Windows.Forms.ToolStripMenuItem(); + this.label4 = new System.Windows.Forms.Label(); + this.edtGameName = new System.Windows.Forms.TextBox(); + this.btnGameDelete = new System.Windows.Forms.Button(); + this.btnGameClone = new System.Windows.Forms.Button(); + this.btnGameSave = new System.Windows.Forms.Button(); + this.btnGameAdd = new System.Windows.Forms.Button(); + this.btnGameLaunch = new System.Windows.Forms.Button(); + this.lvGamePresets = new System.Windows.Forms.ListView(); + + this.mnuGameOptions.SuspendLayout(); + this.mnuGameActions.SuspendLayout(); + this.mnuGameAddStep.SuspendLayout(); + + this.SuspendLayout(); + // + // GamePanel + // + + this.Controls.Add(this.cbxGameStepType); + this.Controls.Add(this.btnGameOptions); + this.Controls.Add(this.chkGameQuickAccess); + this.Controls.Add(this.btnGameSettings); + this.Controls.Add(this.chkGameRunAsAdmin); + this.Controls.Add(this.lblGameParameters); + this.Controls.Add(this.edtGameParameters); + this.Controls.Add(this.btnGameBrowse); + this.Controls.Add(this.lblGameFilePath); + this.Controls.Add(this.edtGamePath); + this.Controls.Add(this.edtGamePrelaunchSteps); + this.Controls.Add(this.btnGameAddStep); + this.Controls.Add(this.label4); + this.Controls.Add(this.edtGameName); + this.Controls.Add(this.btnGameDelete); + this.Controls.Add(this.btnGameClone); + this.Controls.Add(this.btnGameSave); + this.Controls.Add(this.btnGameAdd); + this.Controls.Add(this.btnGameLaunch); + this.Controls.Add(this.lvGamePresets); + + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.Name = "GamePanel"; + this.Size = new System.Drawing.Size(1114, 539); + + // + // cbxGameStepType + // + this.cbxGameStepType.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.cbxGameStepType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbxGameStepType.Enabled = false; + this.cbxGameStepType.FormattingEnabled = true; + this.cbxGameStepType.Location = new System.Drawing.Point(10, 474); + this.cbxGameStepType.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.cbxGameStepType.Name = "cbxGameStepType"; + this.cbxGameStepType.Size = new System.Drawing.Size(136, 23); + this.cbxGameStepType.TabIndex = 46; + this.cbxGameStepType.SelectedIndexChanged += new System.EventHandler(this.cbxGameStepType_SelectedIndexChanged); + // + // btnGameOptions + // + this.btnGameOptions.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnGameOptions.ContextMenuStrip = this.mnuGameOptions; + this.btnGameOptions.Enabled = false; + this.btnGameOptions.Location = new System.Drawing.Point(785, 439); + this.btnGameOptions.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.btnGameOptions.Name = "btnGameOptions"; + this.btnGameOptions.Size = new System.Drawing.Size(88, 27); + this.btnGameOptions.TabIndex = 45; + this.btnGameOptions.Text = "Options..."; + this.btnGameOptions.UseVisualStyleBackColor = true; + this.btnGameOptions.Click += new System.EventHandler(this.btnGameOptions_Click); + // + // mnuGameOptions + // + this.mnuGameOptions.ImageScalingSize = new System.Drawing.Size(20, 20); + this.mnuGameOptions.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.miGameProcessorAffinity, + this.miGameProcessPriority}); + this.mnuGameOptions.Name = "mnuLgButtons"; + this.mnuGameOptions.Size = new System.Drawing.Size(166, 48); + // + // miGameProcessorAffinity + // + this.miGameProcessorAffinity.Name = "miGameProcessorAffinity"; + this.miGameProcessorAffinity.Size = new System.Drawing.Size(165, 22); + this.miGameProcessorAffinity.Text = "Processor affinity"; + this.miGameProcessorAffinity.Click += new System.EventHandler(this.btnGameProcessAffinity_Click); + // + // miGameProcessPriority + // + this.miGameProcessPriority.Name = "miGameProcessPriority"; + this.miGameProcessPriority.Size = new System.Drawing.Size(165, 22); + this.miGameProcessPriority.Text = "Process priority"; + this.miGameProcessPriority.Click += new System.EventHandler(this.miGameProcessPriority_Click); + // + // chkGameQuickAccess + // + this.chkGameQuickAccess.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.chkGameQuickAccess.AutoSize = true; + this.chkGameQuickAccess.Enabled = false; + this.chkGameQuickAccess.Location = new System.Drawing.Point(353, 387); + this.chkGameQuickAccess.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.chkGameQuickAccess.Name = "chkGameQuickAccess"; + this.chkGameQuickAccess.Size = new System.Drawing.Size(141, 19); + this.chkGameQuickAccess.TabIndex = 44; + this.chkGameQuickAccess.Text = "Show in Quick Access"; + this.chkGameQuickAccess.UseVisualStyleBackColor = true; + // + // btnGameSettings + // + this.btnGameSettings.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnGameSettings.ContextMenuStrip = this.mnuGameActions; + this.btnGameSettings.Location = new System.Drawing.Point(1018, 351); + this.btnGameSettings.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.btnGameSettings.Name = "btnGameSettings"; + this.btnGameSettings.Size = new System.Drawing.Size(88, 27); + this.btnGameSettings.TabIndex = 43; + this.btnGameSettings.Text = "Settings..."; + this.btnGameSettings.UseVisualStyleBackColor = true; + this.btnGameSettings.Click += new System.EventHandler(this.btnGameActions_Click); + // + // mnuGameActions + // + this.mnuGameActions.ImageScalingSize = new System.Drawing.Size(20, 20); + this.mnuGameActions.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuGameNvInspector, + this.miGameSetQuickAccessShortcut}); + this.mnuGameActions.Name = "mnuLgButtons"; + this.mnuGameActions.Size = new System.Drawing.Size(212, 48); + this.mnuGameActions.Opening += new System.ComponentModel.CancelEventHandler(this.mnuGameActions_Opening); + // + // mnuGameNvInspector + // + this.mnuGameNvInspector.Name = "mnuGameNvInspector"; + this.mnuGameNvInspector.Size = new System.Drawing.Size(211, 22); + this.mnuGameNvInspector.Text = "NVIDIA Profile Inspector"; + this.mnuGameNvInspector.Click += new System.EventHandler(this.mnuGameNvInspector_Click); + // + // miGameSetQuickAccessShortcut + // + this.miGameSetQuickAccessShortcut.Name = "miGameSetQuickAccessShortcut"; + this.miGameSetQuickAccessShortcut.Size = new System.Drawing.Size(211, 22); + this.miGameSetQuickAccessShortcut.Text = "Set Quick Access Shortcut"; + this.miGameSetQuickAccessShortcut.Click += new System.EventHandler(this.miGameSetQuickAccessShortcut_Click); + // + // chkGameRunAsAdmin + // + this.chkGameRunAsAdmin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.chkGameRunAsAdmin.AutoSize = true; + this.chkGameRunAsAdmin.Enabled = false; + this.chkGameRunAsAdmin.Location = new System.Drawing.Point(881, 415); + this.chkGameRunAsAdmin.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.chkGameRunAsAdmin.Name = "chkGameRunAsAdmin"; + this.chkGameRunAsAdmin.Size = new System.Drawing.Size(135, 19); + this.chkGameRunAsAdmin.TabIndex = 42; + this.chkGameRunAsAdmin.Text = "Run as administrator"; + this.chkGameRunAsAdmin.UseVisualStyleBackColor = true; + // + // lblGameParameters + // + this.lblGameParameters.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.lblGameParameters.AutoSize = true; + this.lblGameParameters.Location = new System.Drawing.Point(8, 445); + this.lblGameParameters.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.lblGameParameters.Name = "lblGameParameters"; + this.lblGameParameters.Size = new System.Drawing.Size(69, 15); + this.lblGameParameters.TabIndex = 41; + this.lblGameParameters.Text = "Parameters:"; + // + // edtGameParameters + // + this.edtGameParameters.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.edtGameParameters.Enabled = false; + this.edtGameParameters.Location = new System.Drawing.Point(154, 442); + this.edtGameParameters.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.edtGameParameters.Name = "edtGameParameters"; + this.edtGameParameters.Size = new System.Drawing.Size(623, 23); + this.edtGameParameters.TabIndex = 40; + // + // btnGameBrowse + // + this.btnGameBrowse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnGameBrowse.Enabled = false; + this.btnGameBrowse.Location = new System.Drawing.Point(785, 410); + this.btnGameBrowse.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.btnGameBrowse.Name = "btnGameBrowse"; + this.btnGameBrowse.Size = new System.Drawing.Size(88, 27); + this.btnGameBrowse.TabIndex = 39; + this.btnGameBrowse.Text = "Browse..."; + this.btnGameBrowse.UseVisualStyleBackColor = true; + this.btnGameBrowse.Click += new System.EventHandler(this.btnGameBrowse_Click); + // + // lblGameFilePath + // + this.lblGameFilePath.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.lblGameFilePath.AutoSize = true; + this.lblGameFilePath.Location = new System.Drawing.Point(8, 417); + this.lblGameFilePath.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.lblGameFilePath.Name = "lblGameFilePath"; + this.lblGameFilePath.Size = new System.Drawing.Size(51, 15); + this.lblGameFilePath.TabIndex = 38; + this.lblGameFilePath.Text = "File/URI:"; + // + // edtGamePath + // + this.edtGamePath.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.edtGamePath.Enabled = false; + this.edtGamePath.Location = new System.Drawing.Point(154, 413); + this.edtGamePath.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.edtGamePath.Name = "edtGamePath"; + this.edtGamePath.Size = new System.Drawing.Size(623, 23); + this.edtGamePath.TabIndex = 37; + // + // edtGamePrelaunchSteps + // + this.edtGamePrelaunchSteps.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.edtGamePrelaunchSteps.Enabled = false; + this.edtGamePrelaunchSteps.Location = new System.Drawing.Point(154, 471); + this.edtGamePrelaunchSteps.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.edtGamePrelaunchSteps.Multiline = true; + this.edtGamePrelaunchSteps.Name = "edtGamePrelaunchSteps"; + this.edtGamePrelaunchSteps.Size = new System.Drawing.Size(623, 48); + this.edtGamePrelaunchSteps.TabIndex = 35; + this.edtGamePrelaunchSteps.Leave += new System.EventHandler(this.edtGamePrelaunchSteps_Leave); + // + // btnGameAddStep + // + this.btnGameAddStep.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnGameAddStep.ContextMenuStrip = this.mnuGameAddStep; + this.btnGameAddStep.Enabled = false; + this.btnGameAddStep.Location = new System.Drawing.Point(785, 470); + this.btnGameAddStep.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.btnGameAddStep.Name = "btnGameAddStep"; + this.btnGameAddStep.Size = new System.Drawing.Size(88, 27); + this.btnGameAddStep.TabIndex = 36; + this.btnGameAddStep.Text = "Add step"; + this.btnGameAddStep.UseVisualStyleBackColor = true; + this.btnGameAddStep.Click += new System.EventHandler(this.btnGameAddStep_Click); + // + // mnuGameAddStep + // + this.mnuGameAddStep.ImageScalingSize = new System.Drawing.Size(20, 20); + this.mnuGameAddStep.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuGameNvidiaPresets, + this.mnuGameAmdPresets, + this.mnuGameLgPresets, + this.mnuGameStartProgram}); + this.mnuGameAddStep.Name = "mnuLgButtons"; + this.mnuGameAddStep.Size = new System.Drawing.Size(153, 92); + this.mnuGameAddStep.Opening += new System.ComponentModel.CancelEventHandler(this.mnuGameAddStep_Opening); + // + // mnuGameNvidiaPresets + // + this.mnuGameNvidiaPresets.Name = "mnuGameNvidiaPresets"; + this.mnuGameNvidiaPresets.Size = new System.Drawing.Size(152, 22); + this.mnuGameNvidiaPresets.Text = "NVIDIA presets"; + // + // mnuGameAmdPresets + // + this.mnuGameAmdPresets.Name = "mnuGameAmdPresets"; + this.mnuGameAmdPresets.Size = new System.Drawing.Size(152, 22); + this.mnuGameAmdPresets.Text = "AMD presets"; + // + // mnuGameLgPresets + // + this.mnuGameLgPresets.Name = "mnuGameLgPresets"; + this.mnuGameLgPresets.Size = new System.Drawing.Size(152, 22); + this.mnuGameLgPresets.Text = "LG presets"; + // + // mnuGameStartProgram + // + this.mnuGameStartProgram.Name = "mnuGameStartProgram"; + this.mnuGameStartProgram.Size = new System.Drawing.Size(152, 22); + this.mnuGameStartProgram.Text = "Start Program"; + this.mnuGameStartProgram.Click += new System.EventHandler(this.mnuGameStartProgram_Click); + // + // label4 + // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(8, 388); + this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(42, 15); + this.label4.TabIndex = 33; + this.label4.Text = "Name:"; + // + // edtGameName + // + this.edtGameName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.edtGameName.Enabled = false; + this.edtGameName.Location = new System.Drawing.Point(154, 384); + this.edtGameName.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.edtGameName.Name = "edtGameName"; + this.edtGameName.Size = new System.Drawing.Size(191, 23); + this.edtGameName.TabIndex = 32; + // + // btnGameDelete + // + this.btnGameDelete.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnGameDelete.Enabled = false; + this.btnGameDelete.Location = new System.Drawing.Point(291, 351); + this.btnGameDelete.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.btnGameDelete.Name = "btnGameDelete"; + this.btnGameDelete.Size = new System.Drawing.Size(88, 27); + this.btnGameDelete.TabIndex = 30; + this.btnGameDelete.Text = "Delete"; + this.btnGameDelete.UseVisualStyleBackColor = true; + this.btnGameDelete.Click += new System.EventHandler(this.btnGameDelete_Click); + // + // btnGameClone + // + this.btnGameClone.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnGameClone.Enabled = false; + this.btnGameClone.Location = new System.Drawing.Point(103, 351); + this.btnGameClone.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.btnGameClone.Name = "btnGameClone"; + this.btnGameClone.Size = new System.Drawing.Size(88, 27); + this.btnGameClone.TabIndex = 29; + this.btnGameClone.Text = "Clone"; + this.btnGameClone.UseVisualStyleBackColor = true; + this.btnGameClone.Click += new System.EventHandler(this.btnGameClone_Click); + // + // btnGameSave + // + this.btnGameSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnGameSave.Enabled = false; + this.btnGameSave.Location = new System.Drawing.Point(387, 351); + this.btnGameSave.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.btnGameSave.Name = "btnGameSave"; + this.btnGameSave.Size = new System.Drawing.Size(88, 27); + this.btnGameSave.TabIndex = 28; + this.btnGameSave.Text = "Save"; + this.btnGameSave.UseVisualStyleBackColor = true; + this.btnGameSave.Click += new System.EventHandler(this.btnGameSave_Click); + // + // btnGameAdd + // + this.btnGameAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnGameAdd.Location = new System.Drawing.Point(199, 351); + this.btnGameAdd.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.btnGameAdd.Name = "btnGameAdd"; + this.btnGameAdd.Size = new System.Drawing.Size(88, 27); + this.btnGameAdd.TabIndex = 25; + this.btnGameAdd.Text = "Add"; + this.btnGameAdd.UseVisualStyleBackColor = true; + this.btnGameAdd.Click += new System.EventHandler(this.btnGameAdd_Click); + // + // btnGameLaunch + // + this.btnGameLaunch.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnGameLaunch.Enabled = false; + this.btnGameLaunch.Location = new System.Drawing.Point(8, 351); + this.btnGameLaunch.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.btnGameLaunch.Name = "btnGameLaunch"; + this.btnGameLaunch.Size = new System.Drawing.Size(88, 27); + this.btnGameLaunch.TabIndex = 24; + this.btnGameLaunch.Text = "Launch"; + this.btnGameLaunch.UseVisualStyleBackColor = true; + this.btnGameLaunch.Click += new System.EventHandler(this.btnGameLaunch_Click); + // + // lvGamePresets + // + this.lvGamePresets.AllowDrop = true; + this.lvGamePresets.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.lvGamePresets.CheckBoxes = true; + this.lvGamePresets.FullRowSelect = true; + this.lvGamePresets.Location = new System.Drawing.Point(8, 8); + this.lvGamePresets.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.lvGamePresets.MultiSelect = false; + this.lvGamePresets.Name = "lvGamePresets"; + this.lvGamePresets.ShowItemToolTips = true; + this.lvGamePresets.Size = new System.Drawing.Size(1098, 335); + this.lvGamePresets.TabIndex = 23; + this.lvGamePresets.UseCompatibleStateImageBehavior = false; + this.lvGamePresets.View = System.Windows.Forms.View.Details; + this.lvGamePresets.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.lvLgPresets_ColumnClick); + this.lvGamePresets.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.lvGamePresets_ItemChecked); + this.lvGamePresets.SelectedIndexChanged += new System.EventHandler(this.lvGamePresets_SelectedIndexChanged); + this.lvGamePresets.DragDrop += new System.Windows.Forms.DragEventHandler(this.lvGamePresets_DragDrop); + this.lvGamePresets.DragEnter += new System.Windows.Forms.DragEventHandler(this.lvGamePresets_DragEnter); + this.lvGamePresets.DoubleClick += new System.EventHandler(this.lvGamePresets_DoubleClick); + + this.mnuGameOptions.ResumeLayout(false); + this.mnuGameActions.ResumeLayout(false); + this.mnuGameAddStep.ResumeLayout(false); + + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label lblGameParameters; + private System.Windows.Forms.TextBox edtGameParameters; + private System.Windows.Forms.Button btnGameBrowse; + private System.Windows.Forms.Label lblGameFilePath; + private System.Windows.Forms.TextBox edtGamePath; + private System.Windows.Forms.TextBox edtGamePrelaunchSteps; + private System.Windows.Forms.Button btnGameAddStep; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox edtGameName; + private System.Windows.Forms.Button btnGameDelete; + private System.Windows.Forms.Button btnGameClone; + private System.Windows.Forms.Button btnGameSave; + private System.Windows.Forms.Button btnGameAdd; + private System.Windows.Forms.Button btnGameLaunch; + private System.Windows.Forms.ListView lvGamePresets; + private System.Windows.Forms.ContextMenuStrip mnuGameAddStep; + private System.Windows.Forms.ToolStripMenuItem mnuGameNvidiaPresets; + private System.Windows.Forms.ToolStripMenuItem mnuGameAmdPresets; + private System.Windows.Forms.ToolStripMenuItem mnuGameLgPresets; + private System.Windows.Forms.CheckBox chkGameRunAsAdmin; + private System.Windows.Forms.ToolStripMenuItem mnuGameStartProgram; + private System.Windows.Forms.Button btnGameSettings; + private System.Windows.Forms.ContextMenuStrip mnuGameActions; + private System.Windows.Forms.ToolStripMenuItem mnuGameNvInspector; + private System.Windows.Forms.CheckBox chkGameQuickAccess; + private System.Windows.Forms.ToolStripMenuItem miGameSetQuickAccessShortcut; + private System.Windows.Forms.Button btnGameOptions; + private System.Windows.Forms.ContextMenuStrip mnuGameOptions; + private System.Windows.Forms.ToolStripMenuItem miGameProcessorAffinity; + private System.Windows.Forms.ToolStripMenuItem miGameProcessPriority; + private System.Windows.Forms.ComboBox cbxGameStepType; + } +} diff --git a/ColorControl/Services/GameLauncher/GamePanel.cs b/ColorControl/Services/GameLauncher/GamePanel.cs new file mode 100644 index 0000000..c967968 --- /dev/null +++ b/ColorControl/Services/GameLauncher/GamePanel.cs @@ -0,0 +1,507 @@ +using ColorControl.Common; +using ColorControl.Forms; +using ColorControl.Native; +using ColorControl.Services.AMD; +using ColorControl.Services.Common; +using ColorControl.Services.LG; +using ColorControl.Services.NVIDIA; +using NLog; +using nspector; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Windows.Forms; + +namespace ColorControl.Services.GameLauncher +{ + public partial class GamePanel : UserControl + { + private static int SHORTCUTID_GAMEQA = -203; + + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + private Config _config; + private GameService _gameService; + private IntPtr _mainHandle; + private NotifyIcon _trayIcon; + private NvService _nvService; + private AmdService _amdService; + private LgService _lgService; + + internal GamePanel(GameService gameService, NvService nvService, AmdService amdService, LgService lgService, NotifyIcon trayIcon, IntPtr handle) + { + _gameService = gameService; + _trayIcon = trayIcon; + _mainHandle = handle; + _nvService = nvService; + _amdService = amdService; + _lgService = lgService; + + _config = AppContext.CurrentContext.Config; + + InitializeComponent(); + + FillGamePresets(); + + FormUtils.InitSortState(lvGamePresets, _config.GamePresetsSortState); + } + + private void FillGamePresets() + { + FormUtils.InitListView(lvGamePresets, GamePreset.GetColumnNames()); + + foreach (var preset in _gameService.GetPresets()) + { + AddOrUpdateItemGame(preset); + Utils.RegisterShortcut(_mainHandle, preset.id, preset.shortcut); + } + } + + private void AddOrUpdateItemGame(GamePreset preset = null) + { + FormUtils.AddOrUpdateListItem(lvGamePresets, _gameService.GetPresets(), _config, preset); + } + + internal void Save() + { + FormUtils.SaveSortState(lvGamePresets.ListViewItemSorter, _config.GamePresetsSortState); + } + + private void edtShortcut_KeyDown(object sender, KeyEventArgs e) + { + ((TextBox)sender).Text = Utils.FormatKeyboardShortcut(e); + } + + private void edtShortcut_KeyUp(object sender, KeyEventArgs e) + { + Utils.HandleKeyboardShortcutUp(e); + } + + private GamePreset GetSelectedGamePreset() + { + if (lvGamePresets.SelectedItems.Count > 0) + { + var item = lvGamePresets.SelectedItems[0]; + return (GamePreset)item.Tag; + } + else + { + return null; + } + } + + public void UpdateInfo() + { + if (cbxGameStepType.Items.Count == 0) + { + cbxGameStepType.Items.AddRange(Utils.GetDescriptions().ToArray()); + cbxGameStepType.SelectedIndex = 0; + } + } + + private void ApplySelectedGamePreset() + { + var preset = GetSelectedGamePreset(); + ApplyGamePreset(preset); + } + + private bool ApplyGamePreset(GamePreset preset) + { + if (preset == null || _gameService == null) + { + return false; + } + try + { + var result = _gameService.ApplyPreset(preset, Program.AppContext); + if (!result) + { + throw new Exception("Error while applying Game-preset. At least one setting could not be applied. Check the log for details."); + } + + return true; + } + catch (Exception e) + { + MessageForms.ErrorOk($"Error applying Game-preset ({e.TargetSite.Name}): {e.Message}"); + return false; + } + } + + private void lvGamePresets_SelectedIndexChanged(object sender, EventArgs _) + { + var preset = GetSelectedGamePreset(); + var enabled = preset != null; + + FormUtils.EnableControls(this, enabled, new List { lvGamePresets, btnGameAdd }); + + if (preset != null) + { + edtGameName.Text = preset.name; + edtGamePath.Text = preset.Path; + edtGameParameters.Text = preset.Parameters; + chkGameRunAsAdmin.Checked = preset.RunAsAdministrator; + chkGameQuickAccess.Checked = preset.ShowInQuickAccess; + ShowGameSteps(); + } + else + { + edtGameName.Text = string.Empty; + edtGamePath.Text = string.Empty; + edtGameParameters.Text = string.Empty; + chkGameRunAsAdmin.Checked = false; + chkGameQuickAccess.Checked = false; + edtGamePrelaunchSteps.Text = string.Empty; + } + } + + private void lvGamePresets_DoubleClick(object sender, EventArgs e) + { + ApplySelectedGamePreset(); + } + + private void btnGameLaunch_Click(object sender, EventArgs e) + { + ApplySelectedGamePreset(); + } + + private void btnGameClone_Click(object sender, EventArgs e) + { + var preset = GetSelectedGamePreset(); + + var newPreset = preset.Clone(); + + AddOrUpdateItemGame(newPreset); + } + + private void btnGameAdd_Click(object sender, EventArgs e) + { + var file = Utils.SelectFile(); + + AddGamePreset(file); + } + + private void AddGamePreset(FileInfo file) + { + var preset = _gameService.CreateNewPreset(); + + if (file != null) + { + var versionInfo = FileVersionInfo.GetVersionInfo(file.FullName); + + preset.Path = file.FullName; + + var fileName = Path.GetFileNameWithoutExtension(preset.Path); + + preset.name = !string.IsNullOrEmpty(versionInfo.FileDescription) ? versionInfo.FileDescription : + !string.IsNullOrEmpty(versionInfo.ProductName) ? versionInfo.ProductName : fileName; + } + + AddOrUpdateItemGame(preset); + } + + private void btnGameSave_Click(object sender, EventArgs e) + { + SaveGamePreset(); + } + + private void SaveGamePreset() + { + var shortcut = string.Empty; + if (!Utils.ValidateShortcut(shortcut)) + { + return; + } + + var preset = GetSelectedGamePreset(); + + var name = edtGameName.Text.Trim(); + + if (name.Length == 0 || _gameService.GetPresets().Any(x => x.id != preset.id && x.name.Equals(name, StringComparison.OrdinalIgnoreCase))) + { + MessageForms.WarningOk("The name can not be empty and must be unique."); + return; + } + + preset.name = name; + preset.Path = edtGamePath.Text; + preset.Parameters = edtGameParameters.Text; + preset.RunAsAdministrator = chkGameRunAsAdmin.Checked; + preset.ShowInQuickAccess = chkGameQuickAccess.Checked; + + var clear = !string.IsNullOrEmpty(preset.shortcut); + + var shortcutChanged = !shortcut.Equals(preset.shortcut); + if (shortcutChanged) + { + preset.shortcut = shortcut; + } + + var text = edtGamePrelaunchSteps.Text; + + var stepsList = (GameStepType)cbxGameStepType.SelectedIndex switch + { + GameStepType.PreLaunch => preset.PreLaunchSteps, + GameStepType.PostLaunch => preset.PostLaunchSteps, + GameStepType.Finalize => preset.FinalizeSteps, + _ => throw new InvalidOperationException("Invalid game step type") + }; + + Utils.ParseWords(stepsList, text); + + AddOrUpdateItemGame(); + + if (shortcutChanged) + { + Utils.RegisterShortcut(_mainHandle, preset.id, preset.shortcut, clear); + } + } + + private void btnGameBrowse_Click(object sender, EventArgs e) + { + var file = Utils.SelectFile(); + + if (file == null) + { + return; + } + + var preset = GetSelectedGamePreset(); + + preset.Path = file.FullName; + + edtGamePath.Text = preset.Path; + + if (string.IsNullOrEmpty(preset.name) || preset.name.StartsWith("New preset", StringComparison.OrdinalIgnoreCase)) + { + var fileName = Path.GetFileNameWithoutExtension(preset.Path); + + edtGameName.Text = fileName; + preset.name = fileName; + } + + AddOrUpdateItemGame(); + } + + private void btnGameDelete_Click(object sender, EventArgs e) + { + var preset = GetSelectedGamePreset(); + + if (preset == null) + { + return; + } + + if (!string.IsNullOrEmpty(preset.shortcut)) + { + WinApi.UnregisterHotKey(_mainHandle, preset.id); + } + _gameService.GetPresets().Remove(preset); + + var item = lvGamePresets.SelectedItems[0]; + lvGamePresets.Items.Remove(item); + } + + private void mnuGameAddStep_Opening(object sender, CancelEventArgs e) + { + FormUtils.BuildServicePresetsMenu(mnuGameNvidiaPresets, _nvService, "NVIDIA", miGameAddPreset_Click); + FormUtils.BuildServicePresetsMenu(mnuGameAmdPresets, _amdService, "AMD", miGameAddPreset_Click); + FormUtils.BuildServicePresetsMenu(mnuGameLgPresets, _lgService, "LG", miGameAddPreset_Click); + } + + private void miGameAddPreset_Click(object sender, EventArgs e) + { + var item = sender as ToolStripItem; + var preset = item.Tag as PresetBase; + + var text = $"{preset.GetType().Name}({preset.name})"; + + FormUtils.AddStepToTextBox(edtGamePrelaunchSteps, text); + } + + private void btnGameAddStep_Click(object sender, EventArgs e) + { + mnuGameAddStep.Show(btnGameAddStep, btnGameAddStep.PointToClient(Cursor.Position)); + } + + private void mnuGameStartProgram_Click(object sender, EventArgs e) + { + var file = Utils.SelectFile(); + + if (file != null) + { + FormUtils.AddStepToTextBox(edtGamePrelaunchSteps, $"StartProgram({file.FullName})"); + } + } + + private void lvGamePresets_DragDrop(object sender, DragEventArgs e) + { + if (e.Data.GetDataPresent(DataFormats.FileDrop)) + { + var files = (string[])e.Data.GetData(DataFormats.FileDrop); + var file = new FileInfo(files.First()); + + AddGamePreset(file); + } + } + + private void lvGamePresets_DragEnter(object sender, DragEventArgs e) + { + e.Effect = DragDropEffects.All; + } + + private void btnGameActions_Click(object sender, EventArgs e) + { + mnuGameActions.Show(btnGameSettings, btnGameSettings.PointToClient(Cursor.Position)); + } + + private void mnuGameNvInspector_Click(object sender, EventArgs e) + { + var form = new frmDrvSettings(); + form.Show(); + } + + private void miGameSetQuickAccessShortcut_Click(object sender, EventArgs e) + { + var shortcut = FormUtils.EditShortcut(_config.GameQuickAccessShortcut); + + if (shortcut == null) + { + return; + } + + var clear = !string.IsNullOrEmpty(_config.GameQuickAccessShortcut); + + _config.GameQuickAccessShortcut = shortcut; + + Utils.RegisterShortcut(_mainHandle, SHORTCUTID_GAMEQA, _config.GameQuickAccessShortcut, clear); + } + + private void mnuGameActions_Opening(object sender, CancelEventArgs e) + { + mnuGameNvInspector.Visible = _nvService != null; + } + + private void lvGamePresets_ItemChecked(object sender, ItemCheckedEventArgs e) + { + FormUtils.ListViewItemChecked(lvGamePresets, e); + } + + private void btnGameProcessAffinity_Click(object sender, EventArgs e) + { + var preset = GetSelectedGamePreset(); + + if (preset == null) + { + return; + } + + var numberOfProcessors = Environment.ProcessorCount; + + var options = Enumerable.Range(0, numberOfProcessors).Select(i => $"CPU #{i}"); + + var values = MessageForms.ShowDialog("Set processor affinity", new[] { + new MessageForms.FieldDefinition + { + Label = "Set desired processors which are allowed to run program", + FieldType = MessageForms.FieldType.Flags, + Values = options, + Value = preset.ProcessAffinityMask + } + }); + + if (!values.Any()) + { + return; + } + + var value = values.First().Value; + + preset.ProcessAffinityMask = (uint)(int)value; + } + + private void btnGameOptions_Click(object sender, EventArgs e) + { + mnuGameOptions.Show(btnGameOptions, btnGameOptions.PointToClient(Cursor.Position)); + } + + private void miGameProcessPriority_Click(object sender, EventArgs e) + { + var preset = GetSelectedGamePreset(); + + if (preset == null) + { + return; + } + + var dropDownValues = Utils.GetDescriptions(); + + var values = MessageForms.ShowDialog("Set process priority", new[] { + new MessageForms.FieldDefinition + { + Label = "Set desired process priority", + FieldType = MessageForms.FieldType.DropDown, + Values = dropDownValues, + Value = preset.ProcessPriorityClass > 0 ? ((GamePriorityClass)preset.ProcessPriorityClass).GetDescription() : GamePriorityClass.Normal.GetDescription() + } + }); + + if (!values.Any()) + { + return; + } + + var value = values.First().Value.ToString(); + var enumName = Utils.GetEnumNameByDescription(typeof(GamePriorityClass), value); + if (enumName != null) + { + value = enumName; + } + + var enumValue = Enum.Parse(typeof(GamePriorityClass), value); + + preset.ProcessPriorityClass = (uint)(int)enumValue; + } + + private void cbxGameStepType_SelectedIndexChanged(object sender, EventArgs e) + { + ShowGameSteps(); + } + + private void ShowGameSteps() + { + var preset = GetSelectedGamePreset(); + + if (preset == null) + { + return; + } + + switch ((GameStepType)cbxGameStepType.SelectedIndex) + { + case GameStepType.PreLaunch: + edtGamePrelaunchSteps.Text = string.Join(", ", preset.PreLaunchSteps); + break; + case GameStepType.PostLaunch: + edtGamePrelaunchSteps.Text = string.Join(", ", preset.PostLaunchSteps); + break; + case GameStepType.Finalize: + edtGamePrelaunchSteps.Text = string.Join(", ", preset.FinalizeSteps); + break; + } + } + + private void edtGamePrelaunchSteps_Leave(object sender, EventArgs e) + { + SaveGamePreset(); + } + + private void lvLgPresets_ColumnClick(object sender, ColumnClickEventArgs e) + { + FormUtils.ListViewSort(sender, e); + } + } +} diff --git a/ColorControl/Services/GameLauncher/GamePanel.resx b/ColorControl/Services/GameLauncher/GamePanel.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/ColorControl/Services/GameLauncher/GamePanel.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file