diff --git a/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs b/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs index 47e2ba94c..ccf7bae50 100644 --- a/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs +++ b/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs @@ -360,9 +360,9 @@ namespace ShareX.ScreenCaptureLib internal void InitBackground(Bitmap canvas, bool centerCanvas = true) { - if (Canvas != null) Canvas.Dispose(); - if (backgroundBrush != null) backgroundBrush.Dispose(); - if (backgroundHighlightBrush != null) backgroundHighlightBrush.Dispose(); + Canvas?.Dispose(); + backgroundBrush?.Dispose(); + backgroundHighlightBrush?.Dispose(); Canvas = canvas; @@ -404,13 +404,15 @@ namespace ShareX.ScreenCaptureLib CenterCanvas(); } } - else if (Options.UseDimming) + else if (Options.BackgroundDimStrength > 0) { DimmedCanvas?.Dispose(); DimmedCanvas = (Bitmap)Canvas.Clone(); + int alpha = (int)Math.Round(255 * (Options.BackgroundDimStrength / 100f)); + using (Graphics g = Graphics.FromImage(DimmedCanvas)) - using (Brush brush = new SolidBrush(Color.FromArgb(30, Color.Black))) + using (Brush brush = new SolidBrush(Color.FromArgb(alpha, Color.Black))) { g.FillRectangle(brush, 0, 0, DimmedCanvas.Width, DimmedCanvas.Height); @@ -956,7 +958,7 @@ namespace ShareX.ScreenCaptureLib UpdateRegionPath(); // If background is dimmed then draw non dimmed background to region selections - if (!IsEditorMode && Options.UseDimming) + if (!IsEditorMode && Options.BackgroundDimStrength > 0 && backgroundHighlightBrush != null) { using (Region region = new Region(regionDrawPath)) { diff --git a/ShareX.ScreenCaptureLib/RegionCaptureOptions.cs b/ShareX.ScreenCaptureLib/RegionCaptureOptions.cs index a40159230..41ee01427 100644 --- a/ShareX.ScreenCaptureLib/RegionCaptureOptions.cs +++ b/ShareX.ScreenCaptureLib/RegionCaptureOptions.cs @@ -49,7 +49,9 @@ namespace ShareX.ScreenCaptureLib public RegionCaptureAction RegionCaptureActionX2Click = RegionCaptureAction.CaptureActiveMonitor; public bool DetectWindows = true; public bool DetectControls = true; + // TEMP: For backward compatibility public bool UseDimming = true; + public int BackgroundDimStrength = 10; public bool UseCustomInfoText = false; public string CustomInfoText = "X: $x, Y: $y$nR: $r, G: $g, B: $b$nHex: $hex"; // Formats: $x, $y, $r, $g, $b, $hex, $HEX, $n public List SnapSizes = new List() diff --git a/ShareX.ScreenCaptureLib/RegionCaptureTasks.cs b/ShareX.ScreenCaptureLib/RegionCaptureTasks.cs index 90cae6669..2f49530aa 100644 --- a/ShareX.ScreenCaptureLib/RegionCaptureTasks.cs +++ b/ShareX.ScreenCaptureLib/RegionCaptureTasks.cs @@ -105,7 +105,7 @@ namespace ShareX.ScreenCaptureLib { RegionCaptureOptions newOptions = GetRegionCaptureOptions(options); newOptions.DetectWindows = false; - newOptions.UseDimming = false; + newOptions.BackgroundDimStrength = 0; using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.ScreenColorPicker, newOptions, canvas)) { @@ -126,7 +126,7 @@ namespace ShareX.ScreenCaptureLib public static SimpleWindowInfo GetWindowInfo(RegionCaptureOptions options) { RegionCaptureOptions newOptions = GetRegionCaptureOptions(options); - newOptions.UseDimming = false; + newOptions.BackgroundDimStrength = 0; newOptions.ShowMagnifier = false; using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.OneClick, newOptions)) diff --git a/ShareX/Forms/TaskSettingsForm.Designer.cs b/ShareX/Forms/TaskSettingsForm.Designer.cs index 4a8453d29..bfe286938 100644 --- a/ShareX/Forms/TaskSettingsForm.Designer.cs +++ b/ShareX/Forms/TaskSettingsForm.Designer.cs @@ -199,7 +199,6 @@ this.RegionCaptureSnapSizesHeight = new System.Windows.Forms.Label(); this.nudRegionCaptureSnapSizesWidth = new System.Windows.Forms.NumericUpDown(); this.lblRegionCaptureSnapSizesWidth = new System.Windows.Forms.Label(); - this.cbRegionCaptureUseDimming = new System.Windows.Forms.CheckBox(); this.txtRegionCaptureCustomInfoText = new System.Windows.Forms.TextBox(); this.nudRegionCaptureMagnifierPixelCount = new System.Windows.Forms.NumericUpDown(); this.nudRegionCaptureMagnifierPixelSize = new System.Windows.Forms.NumericUpDown(); @@ -302,6 +301,9 @@ this.pgTaskSettings = new System.Windows.Forms.PropertyGrid(); this.cbOverrideAdvancedSettings = new System.Windows.Forms.CheckBox(); this.tttvMain = new ShareX.HelpersLib.TabToTreeView(); + this.lblRegionCaptureBackgroundDimStrength = new System.Windows.Forms.Label(); + this.nudRegionCaptureBackgroundDimStrength = new System.Windows.Forms.NumericUpDown(); + this.lblRegionCaptureBackgroundDimStrengthHint = new System.Windows.Forms.Label(); this.tcTaskSettings.SuspendLayout(); this.tpTask.SuspendLayout(); this.cmsDestinations.SuspendLayout(); @@ -363,6 +365,7 @@ this.tpTools.SuspendLayout(); this.pTools.SuspendLayout(); this.tpAdvanced.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudRegionCaptureBackgroundDimStrength)).BeginInit(); this.SuspendLayout(); // // cmsAfterCapture @@ -1434,6 +1437,9 @@ // tpRegionCapture // this.tpRegionCapture.BackColor = System.Drawing.SystemColors.Window; + this.tpRegionCapture.Controls.Add(this.lblRegionCaptureBackgroundDimStrengthHint); + this.tpRegionCapture.Controls.Add(this.nudRegionCaptureBackgroundDimStrength); + this.tpRegionCapture.Controls.Add(this.lblRegionCaptureBackgroundDimStrength); this.tpRegionCapture.Controls.Add(this.cbRegionCaptureActiveMonitorMode); this.tpRegionCapture.Controls.Add(this.nudRegionCaptureFPSLimit); this.tpRegionCapture.Controls.Add(this.lblRegionCaptureFPSLimit); @@ -1463,7 +1469,6 @@ this.tpRegionCapture.Controls.Add(this.lblRegionCaptureMouseRightClickAction); this.tpRegionCapture.Controls.Add(this.cbRegionCaptureMultiRegionMode); this.tpRegionCapture.Controls.Add(this.pRegionCaptureSnapSizes); - this.tpRegionCapture.Controls.Add(this.cbRegionCaptureUseDimming); this.tpRegionCapture.Controls.Add(this.txtRegionCaptureCustomInfoText); this.tpRegionCapture.Controls.Add(this.nudRegionCaptureMagnifierPixelCount); this.tpRegionCapture.Controls.Add(this.nudRegionCaptureMagnifierPixelSize); @@ -1798,13 +1803,6 @@ resources.ApplyResources(this.lblRegionCaptureSnapSizesWidth, "lblRegionCaptureSnapSizesWidth"); this.lblRegionCaptureSnapSizesWidth.Name = "lblRegionCaptureSnapSizesWidth"; // - // cbRegionCaptureUseDimming - // - resources.ApplyResources(this.cbRegionCaptureUseDimming, "cbRegionCaptureUseDimming"); - this.cbRegionCaptureUseDimming.Name = "cbRegionCaptureUseDimming"; - this.cbRegionCaptureUseDimming.UseVisualStyleBackColor = true; - this.cbRegionCaptureUseDimming.CheckedChanged += new System.EventHandler(this.cbRegionCaptureUseDimming_CheckedChanged); - // // txtRegionCaptureCustomInfoText // resources.ApplyResources(this.txtRegionCaptureCustomInfoText, "txtRegionCaptureCustomInfoText"); @@ -2626,6 +2624,27 @@ this.tttvMain.TreeViewSize = 190; this.tttvMain.TabChanged += new ShareX.HelpersLib.TabToTreeView.TabChangedEventHandler(this.tttvMain_TabChanged); // + // lblRegionCaptureBackgroundDimStrength + // + resources.ApplyResources(this.lblRegionCaptureBackgroundDimStrength, "lblRegionCaptureBackgroundDimStrength"); + this.lblRegionCaptureBackgroundDimStrength.Name = "lblRegionCaptureBackgroundDimStrength"; + // + // nudRegionCaptureBackgroundDimStrength + // + resources.ApplyResources(this.nudRegionCaptureBackgroundDimStrength, "nudRegionCaptureBackgroundDimStrength"); + this.nudRegionCaptureBackgroundDimStrength.Maximum = new decimal(new int[] { + 50, + 0, + 0, + 0}); + this.nudRegionCaptureBackgroundDimStrength.Name = "nudRegionCaptureBackgroundDimStrength"; + this.nudRegionCaptureBackgroundDimStrength.ValueChanged += new System.EventHandler(this.nudRegionCaptureBackgroundDimStrength_ValueChanged); + // + // lblRegionCaptureBackgroundDimStrengthHint + // + resources.ApplyResources(this.lblRegionCaptureBackgroundDimStrengthHint, "lblRegionCaptureBackgroundDimStrengthHint"); + this.lblRegionCaptureBackgroundDimStrengthHint.Name = "lblRegionCaptureBackgroundDimStrengthHint"; + // // TaskSettingsForm // resources.ApplyResources(this, "$this"); @@ -2722,6 +2741,7 @@ this.pTools.PerformLayout(); this.tpAdvanced.ResumeLayout(false); this.tpAdvanced.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudRegionCaptureBackgroundDimStrength)).EndInit(); this.ResumeLayout(false); } @@ -2880,7 +2900,6 @@ private System.Windows.Forms.ComboBox cbRegionCaptureMouseRightClickAction; private System.Windows.Forms.CheckBox cbRegionCaptureDetectWindows; private System.Windows.Forms.CheckBox cbRegionCaptureDetectControls; - private System.Windows.Forms.CheckBox cbRegionCaptureUseDimming; private System.Windows.Forms.CheckBox cbRegionCaptureUseCustomInfoText; private System.Windows.Forms.TextBox txtRegionCaptureCustomInfoText; private System.Windows.Forms.Label lblRegionCaptureSnapSizes; @@ -3000,5 +3019,8 @@ private System.Windows.Forms.CheckBox cbUseRandomImageEffect; private System.Windows.Forms.Label lblCaptureCustomWindow; private System.Windows.Forms.TextBox txtCaptureCustomWindow; + private System.Windows.Forms.NumericUpDown nudRegionCaptureBackgroundDimStrength; + private System.Windows.Forms.Label lblRegionCaptureBackgroundDimStrength; + private System.Windows.Forms.Label lblRegionCaptureBackgroundDimStrengthHint; } } \ No newline at end of file diff --git a/ShareX/Forms/TaskSettingsForm.cs b/ShareX/Forms/TaskSettingsForm.cs index 8e57c7a3e..84063f958 100644 --- a/ShareX/Forms/TaskSettingsForm.cs +++ b/ShareX/Forms/TaskSettingsForm.cs @@ -298,7 +298,7 @@ namespace ShareX cbRegionCaptureDetectWindows.Checked = TaskSettings.CaptureSettings.SurfaceOptions.DetectWindows; cbRegionCaptureDetectControls.Enabled = TaskSettings.CaptureSettings.SurfaceOptions.DetectWindows; cbRegionCaptureDetectControls.Checked = TaskSettings.CaptureSettings.SurfaceOptions.DetectControls; - cbRegionCaptureUseDimming.Checked = TaskSettings.CaptureSettings.SurfaceOptions.UseDimming; + nudRegionCaptureBackgroundDimStrength.SetValue(TaskSettings.CaptureSettings.SurfaceOptions.BackgroundDimStrength); cbRegionCaptureUseCustomInfoText.Checked = TaskSettings.CaptureSettings.SurfaceOptions.UseCustomInfoText; txtRegionCaptureCustomInfoText.Enabled = TaskSettings.CaptureSettings.SurfaceOptions.UseCustomInfoText; TaskSettings.CaptureSettings.SurfaceOptions.CustomInfoText = TaskSettings.CaptureSettings.SurfaceOptions.CustomInfoText.Replace("\r\n", "$n").Replace("\n", "$n"); @@ -1153,9 +1153,9 @@ namespace ShareX TaskSettings.CaptureSettings.SurfaceOptions.DetectControls = cbRegionCaptureDetectControls.Checked; } - private void cbRegionCaptureUseDimming_CheckedChanged(object sender, EventArgs e) + private void nudRegionCaptureBackgroundDimStrength_ValueChanged(object sender, EventArgs e) { - TaskSettings.CaptureSettings.SurfaceOptions.UseDimming = cbRegionCaptureUseDimming.Checked; + TaskSettings.CaptureSettings.SurfaceOptions.BackgroundDimStrength = (int)nudRegionCaptureBackgroundDimStrength.Value; } private void cbRegionCaptureUseCustomInfoText_CheckedChanged(object sender, EventArgs e) diff --git a/ShareX/Forms/TaskSettingsForm.resx b/ShareX/Forms/TaskSettingsForm.resx index 6ab41ef00..cdfd9f384 100644 --- a/ShareX/Forms/TaskSettingsForm.resx +++ b/ShareX/Forms/TaskSettingsForm.resx @@ -526,7 +526,7 @@ btnAfterCapture - ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null + ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=16.0.4.0, Culture=neutral, PublicKeyToken=null tpTask @@ -556,7 +556,7 @@ btnAfterUpload - ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null + ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=16.0.4.0, Culture=neutral, PublicKeyToken=null tpTask @@ -628,7 +628,7 @@ btnDestinations - ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null + ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=16.0.4.0, Culture=neutral, PublicKeyToken=null tpTask @@ -664,7 +664,7 @@ btnTask - ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null + ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=16.0.4.0, Culture=neutral, PublicKeyToken=null tpTask @@ -3378,6 +3378,84 @@ 0 + + True + + + 365, 176 + + + 15, 13 + + + 36 + + + % + + + lblRegionCaptureBackgroundDimStrengthHint + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tpRegionCapture + + + 0 + + + 312, 172 + + + 48, 20 + + + 35 + + + Center + + + nudRegionCaptureBackgroundDimStrength + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tpRegionCapture + + + 1 + + + True + + + 5, 176 + + + 128, 13 + + + 34 + + + Background dim strength: + + + lblRegionCaptureBackgroundDimStrength + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tpRegionCapture + + + 2 + True @@ -3403,7 +3481,7 @@ tpRegionCapture - 0 + 3 312, 436 @@ -3427,7 +3505,7 @@ tpRegionCapture - 1 + 4 True @@ -3454,7 +3532,7 @@ tpRegionCapture - 2 + 5 True @@ -3484,7 +3562,7 @@ tpRegionCapture - 3 + 6 True @@ -3634,7 +3712,7 @@ tpRegionCapture - 4 + 7 True @@ -3664,7 +3742,7 @@ tpRegionCapture - 5 + 8 True @@ -3694,7 +3772,7 @@ tpRegionCapture - 6 + 9 True @@ -3724,7 +3802,7 @@ tpRegionCapture - 7 + 10 True @@ -3754,7 +3832,7 @@ tpRegionCapture - 8 + 11 True @@ -3784,7 +3862,7 @@ tpRegionCapture - 9 + 12 True @@ -3814,7 +3892,7 @@ tpRegionCapture - 10 + 13 True @@ -3844,7 +3922,7 @@ tpRegionCapture - 11 + 14 NoControl @@ -3871,7 +3949,7 @@ tpRegionCapture - 12 + 15 NoControl @@ -3898,7 +3976,7 @@ tpRegionCapture - 13 + 16 312, 220 @@ -3919,7 +3997,7 @@ tpRegionCapture - 14 + 17 True @@ -3949,7 +4027,7 @@ tpRegionCapture - 15 + 18 True @@ -3979,7 +4057,7 @@ tpRegionCapture - 16 + 19 True @@ -4009,7 +4087,7 @@ tpRegionCapture - 17 + 20 True @@ -4039,7 +4117,7 @@ tpRegionCapture - 18 + 21 312, 100 @@ -4060,7 +4138,7 @@ tpRegionCapture - 19 + 22 True @@ -4090,7 +4168,7 @@ tpRegionCapture - 20 + 23 312, 76 @@ -4111,7 +4189,7 @@ tpRegionCapture - 21 + 24 True @@ -4141,7 +4219,7 @@ tpRegionCapture - 22 + 25 312, 52 @@ -4162,7 +4240,7 @@ tpRegionCapture - 23 + 26 True @@ -4192,7 +4270,7 @@ tpRegionCapture - 24 + 27 312, 28 @@ -4213,7 +4291,7 @@ tpRegionCapture - 25 + 28 True @@ -4243,7 +4321,7 @@ tpRegionCapture - 26 + 29 True @@ -4273,7 +4351,7 @@ tpRegionCapture - 27 + 30 NoControl @@ -4459,37 +4537,7 @@ tpRegionCapture - 28 - - - True - - - NoControl - - - 8, 176 - - - 400, 17 - - - 11 - - - Dim background so selection can be differentiated easily (affects startup speed) - - - cbRegionCaptureUseDimming - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tpRegionCapture - - - 29 + 31 312, 198 @@ -4510,7 +4558,7 @@ tpRegionCapture - 30 + 32 312, 316 @@ -4534,7 +4582,7 @@ tpRegionCapture - 31 + 33 312, 340 @@ -4558,7 +4606,7 @@ tpRegionCapture - 32 + 34 4, 22 @@ -6019,7 +6067,7 @@ lvUploaderFiltersList - ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null + ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=16.0.4.0, Culture=neutral, PublicKeyToken=null tpUploaderFilters @@ -6472,7 +6520,7 @@ lvActions - ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null + ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=16.0.4.0, Culture=neutral, PublicKeyToken=null pActions @@ -6718,7 +6766,7 @@ lvWatchFolderList - ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null + ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=16.0.4.0, Culture=neutral, PublicKeyToken=null tpWatchFolders @@ -7177,7 +7225,7 @@ tttvMain - ShareX.HelpersLib.TabToTreeView, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null + ShareX.HelpersLib.TabToTreeView, ShareX.HelpersLib, Version=16.0.4.0, Culture=neutral, PublicKeyToken=null $this diff --git a/ShareX/SettingManager.cs b/ShareX/SettingManager.cs index cf4c1761e..5d281fe46 100644 --- a/ShareX/SettingManager.cs +++ b/ShareX/SettingManager.cs @@ -242,6 +242,11 @@ namespace ShareX { Settings.UpdateChannel = UpdateChannel.PreRelease; } + + if (!DefaultTaskSettings.CaptureSettings.SurfaceOptions.UseDimming) + { + DefaultTaskSettings.CaptureSettings.SurfaceOptions.BackgroundDimStrength = 0; + } } }