2 // System.Drawing.Brush.cs
5 // Miguel de Icaza (miguel@ximian.com)
6 // Ravindra (rkumar@novell.com)
8 // (C) Ximian, Inc. http://www.ximian.com
9 // (C) Novell, Inc. Http://www.novell.com
14 using System.Drawing.Drawing2D;
16 namespace System.Drawing
18 public abstract class Brush : MarshalByRefObject, ICloneable, IDisposable
20 internal IntPtr nativeObject;
21 internal bool disposed = false;
22 abstract public object Clone ();
27 internal Brush (IntPtr ptr)
32 internal IntPtr NativeObject {
41 internal Brush CreateBrush (IntPtr brush, System.Drawing.BrushType type)
45 case BrushType.BrushTypeSolidColor:
46 return new SolidBrush (brush);
48 case BrushType.BrushTypeHatchFill:
49 return new HatchBrush (brush);
51 case BrushType.BrushTypeTextureFill:
52 return new TextureBrush (brush);
55 throw new NotImplementedException ();
59 public void Dispose ()
62 System.GC.SuppressFinalize (this);
65 protected virtual void Dispose (bool disposing)
67 if (disposed == false) {
70 Status status = GDIPlus.GdipDeleteBrush (nativeObject);
71 GDIPlus.CheckStatus (status);