diff --git a/Source/Core/Controls/ImageBrowserItem.cs b/Source/Core/Controls/ImageBrowserItem.cs index da0085ba8cd586b20062c723c986814cc8f76bdb..e63fd55d871b8f2af801295365709cfe6b4e29d4 100755 --- a/Source/Core/Controls/ImageBrowserItem.cs +++ b/Source/Core/Controls/ImageBrowserItem.cs @@ -105,11 +105,9 @@ namespace CodeImp.DoomBuilder.Controls } else { - Color topselected = Color.FromArgb(255, 37, 67, 151); - Color bottomselected = Color.FromArgb(255, 1, 20, 83); // FIXME - ano - okay this is a bit off - selectedbgbrush = new LinearGradientBrush(new Point(x - 2, y - 3), new Point(x - 2, y + h + 4 + SystemFonts.MessageBoxFont.Height), topselected, bottomselected); - ((LinearGradientBrush)selectedbgbrush).WrapMode = WrapMode.Tile; + // [ZZ] this is not "a bit" off. this is completely off. especially when items have different sizes. + // moved to item drawing. } frame_used = Pens.Orange; @@ -131,11 +129,7 @@ namespace CodeImp.DoomBuilder.Controls } else { - Color topselected = Color.FromArgb(255, 37, 67, 151); - Color bottomselected = Color.FromArgb(255, 1, 20, 83); - - selectedbgbrush = new LinearGradientBrush(new Point(x - 2, y - 3), new Point(x - 2, y + h + 4 + SystemFonts.MessageBoxFont.Height), topselected, bottomselected); - ((LinearGradientBrush)selectedbgbrush).WrapMode = WrapMode.Tile; + selectedbgbrush = null; } frame_used = SystemPens.HotTrack; @@ -195,6 +189,11 @@ namespace CodeImp.DoomBuilder.Controls } else { + // calculate selectedbgbrush here. once. + Color topselected = Color.FromArgb(255, 37, 67, 151); + Color bottomselected = Color.FromArgb(255, 1, 20, 83); + selectedbgbrush = new LinearGradientBrush(new Point(x - 2, y - 3), new Point(x - 2, y + h + fontH), topselected, bottomselected); + g.FillRectangle(selectedbgbrush, x - 13, y - 2, w + 26, h + fontH); } } @@ -217,7 +216,7 @@ namespace CodeImp.DoomBuilder.Controls } // Image name - float textureNameX = classicview ? (x + (float)w / 2 - g.MeasureString(TextureName, SystemFonts.MessageBoxFont).Width / 2) : (x - 2); + float textureNameX = classicview ? (x + (float)w / 2 - TextureNameWidth / 2) : (x - 2); g.DrawString(TextureName, SystemFonts.MessageBoxFont, (selected ? selectiontextbrush : (used ? fgbrush_used : fgbrush_unused)), textureNameX, y + h2 + 1); // Image size