diff --git a/Eve-O-Preview/Configuration/ThumbnailConfig.cs b/Eve-O-Preview/Configuration/ThumbnailConfig.cs index dd53fbf..73b9104 100644 --- a/Eve-O-Preview/Configuration/ThumbnailConfig.cs +++ b/Eve-O-Preview/Configuration/ThumbnailConfig.cs @@ -67,21 +67,7 @@ namespace EveOPreview.Configuration public bool EnableActiveClientHighlight { get; set; } - public Color ActiveClientHighlightColor - { - get - { - return this._activeClientHighlightColor; - } - set - { - // Some WinForms magic - // True Black color cannot be used as highlight frame color - // So a somewhat less-Black one is used - this._activeClientHighlightColor = (value != Color.Black) ? value : Color.FromArgb(1, 1, 1); - } - } - private Color _activeClientHighlightColor; + public Color ActiveClientHighlightColor { get; set; } public int ActiveClientHighlightThickness { get; set; } @@ -184,7 +170,7 @@ namespace EveOPreview.Configuration ThumbnailConfig.ApplyRestrictions(this.ThumbnailSize.Height, this.ThumbnailMinimumSize.Height, this.ThumbnailMaximumSize.Height)); this.ThumbnailOpacity = ThumbnailConfig.ApplyRestrictions((int)(this.ThumbnailOpacity * 100.00), 20, 100) / 100.00; this.ThumbnailZoomFactor = ThumbnailConfig.ApplyRestrictions(this.ThumbnailZoomFactor, 2, 10); - this.ActiveClientHighlightThickness = ThumbnailConfig.ApplyRestrictions(this.ActiveClientHighlightThickness, 1, 3); + this.ActiveClientHighlightThickness = ThumbnailConfig.ApplyRestrictions(this.ActiveClientHighlightThickness, 1, 6); } private static int ApplyRestrictions(int value, int minimum, int maximum) diff --git a/Eve-O-Preview/UI/Implementation/ThumbnailOverlay.cs b/Eve-O-Preview/UI/Implementation/ThumbnailOverlay.cs index 8b507ae..49a757c 100644 --- a/Eve-O-Preview/UI/Implementation/ThumbnailOverlay.cs +++ b/Eve-O-Preview/UI/Implementation/ThumbnailOverlay.cs @@ -1,5 +1,4 @@ using System; -using System.Drawing; using System.Windows.Forms; namespace EveOPreview.UI @@ -8,12 +7,6 @@ namespace EveOPreview.UI { #region Private fields private readonly Action _areaClickAction; - private bool _isHighlightEnabled; - private Color _highlightColor; - private int _highlightWidthLeft; - private int _highlightWidthTop; - private int _highlightWidthRight; - private int _highlightWidthBottom; #endregion public ThumbnailOverlay(Form owner, Action areaClickAction) @@ -21,9 +14,6 @@ namespace EveOPreview.UI this.Owner = owner; this._areaClickAction = areaClickAction; - this._isHighlightEnabled = false; - this._highlightColor = Color.Red; - InitializeComponent(); } @@ -42,27 +32,6 @@ namespace EveOPreview.UI this.OverlayLabel.Visible = enable; } - public void SetHighlightWidth(int left, int top, int right, int bottom) - { - this._highlightWidthLeft = left; - this._highlightWidthTop = top; - this._highlightWidthRight = right; - this._highlightWidthBottom = bottom; - } - - public void EnableHighlight(bool enabled, Color color) - { - if (enabled == this._isHighlightEnabled) - { - // Nothing to do here - return; - } - - this._isHighlightEnabled = enabled; - this._highlightColor = color; - this.Refresh(); - } - protected override CreateParams CreateParams { get @@ -72,19 +41,5 @@ namespace EveOPreview.UI return Params; } } - - protected override void OnPaint(PaintEventArgs e) - { - base.OnPaint(e); - - if (this._isHighlightEnabled) - { - ControlPaint.DrawBorder(e.Graphics, this.ClientRectangle, - this._highlightColor, this._highlightWidthLeft, ButtonBorderStyle.Solid, - this._highlightColor, this._highlightWidthTop, ButtonBorderStyle.Solid, - this._highlightColor, this._highlightWidthRight, ButtonBorderStyle.Solid, - this._highlightColor, this._highlightWidthBottom, ButtonBorderStyle.Solid); - } - } } } diff --git a/Eve-O-Preview/UI/Implementation/ThumbnailView.cs b/Eve-O-Preview/UI/Implementation/ThumbnailView.cs index 4c8c2be..fd9e606 100644 --- a/Eve-O-Preview/UI/Implementation/ThumbnailView.cs +++ b/Eve-O-Preview/UI/Implementation/ThumbnailView.cs @@ -203,10 +203,24 @@ namespace EveOPreview.UI public void SetHighlight(bool enabled, Color color, int width) { - this._isSizeChanged = this._isSizeChanged || (this._isHighlightEnabled != enabled); - this._isHighlightEnabled = enabled; - this._highlightWidth = width; - this._overlay.EnableHighlight(enabled, color); + if (this._isHighlightEnabled == enabled) + { + return; + } + + if (enabled) + { + this._isHighlightEnabled = true; + this._highlightWidth = width; + this.BackColor = color; + } + else + { + this._isHighlightEnabled = false; + this.BackColor = SystemColors.Control; + } + + this._isSizeChanged = true; } public void ZoomIn(ViewZoomAnchor anchor, int zoomFactor) @@ -330,11 +344,10 @@ namespace EveOPreview.UI int actualHeight = baseHeight - 2 * this._highlightWidth; double desiredWidth = actualHeight * baseAspectRatio; int actualWidth = (int)Math.Round(desiredWidth, MidpointRounding.AwayFromZero); - int highlightWidthLeft = Math.Min(4, (baseWidth - actualWidth) / 2); - int highlightWidthRight = Math.Min(4, baseWidth - actualWidth - highlightWidthLeft); + int highlightWidthLeft = (baseWidth - actualWidth) / 2; + int highlightWidthRight = baseWidth - actualWidth - highlightWidthLeft; - this._overlay.SetHighlightWidth(highlightWidthLeft, this._highlightWidth, highlightWidthRight, this._highlightWidth); - this._thumbnail.rcDestination = new RECT(0 + highlightWidthLeft, 0 + this._highlightWidth, actualWidth + highlightWidthLeft, actualHeight + this._highlightWidth); + this._thumbnail.rcDestination = new RECT(0 + highlightWidthLeft, 0 + this._highlightWidth, baseWidth - highlightWidthRight, baseHeight - this._highlightWidth); } else { @@ -378,8 +391,9 @@ namespace EveOPreview.UI Size overlaySize = this.ClientSize; Point overlayLocation = this.Location; - overlayLocation.X += (this.Size.Width - this.ClientSize.Width) / 2; - overlayLocation.Y += (this.Size.Height - this.ClientSize.Height) - (this.Size.Width - this.ClientSize.Width) / 2; + int borderWidth = (this.Size.Width - this.ClientSize.Width) / 2; + overlayLocation.X += borderWidth; + overlayLocation.Y += (this.Size.Height - this.ClientSize.Height) - borderWidth; this._isPositionChanged = false; this._overlay.Size = overlaySize;