+2007-04-05 Jonathan Pobst <monkey@jpobst.com>
+
+ * ToolStripRenderer.cs: Add static method to mirror image.
+ * ToolStripProfessionalRenderer.cs: Support ImageTransparentColor
+ and RightToLeftAutoMirrorImage.
+ * ToolStripItem.cs: Remove MonoTODO from ImageTransparentColor.
+
2007-04-05 Jonathan Pobst <monkey@jpobst.com>
* ToolStripSplitStackLayout.cs: Support Alignment property.
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
+using System.Drawing.Imaging;
namespace System.Windows.Forms
{
{
base.OnRenderItemImage (e);
- e.Graphics.DrawImage (e.Image, e.ImageRectangle);
+ bool need_dispose = false;
+ Image i = e.Image;
+
+ if (e.Item.RightToLeft == RightToLeft.Yes && e.Item.RightToLeftAutoMirrorImage == true) {
+ i = CreateMirrorImage (i);
+ need_dispose = true;
+ }
+
+
+ if (e.Item.ImageTransparentColor != Color.Empty) {
+ ImageAttributes ia = new ImageAttributes ();
+ ia.SetColorKey (e.Item.ImageTransparentColor, e.Item.ImageTransparentColor);
+ e.Graphics.DrawImage (i, e.ImageRectangle, 0, 0, i.Width, i.Height, GraphicsUnit.Pixel, ia);
+ ia.Dispose ();
+ }
+ else
+ e.Graphics.DrawImage (i, e.ImageRectangle);
+
+ if (need_dispose)
+ i.Dispose ();
}
protected override void OnRenderItemText (ToolStripItemTextRenderEventArgs e)
return b;
}
+ public static Image CreateMirrorImage (Image normalImage)
+ {
+ if (normalImage == null)
+ return null;
+
+ Bitmap b = new Bitmap (normalImage);
+ b.RotateFlip (RotateFlipType.RotateNoneFlipX);
+
+ return b;
+ }
+
public void DrawArrow (ToolStripArrowRenderEventArgs e)
{ this.OnRenderArrow (e); }