2 // System.Drawing.SolidBrush.cs
5 // Dennis Hayes (dennish@Raytek.com)
6 // Alexandre Pigolkine(pigolkine@gmx.de)
7 // Ravindra (rkumar@novell.com)
9 // (C) 2002 Ximian, Inc.
10 // (C) 2004 Novell, Inc.
14 namespace System.Drawing
16 public sealed class SolidBrush : Brush {
18 internal bool isModifiable = true;
21 internal SolidBrush (IntPtr ptr)
25 Status status = GDIPlus.GdipGetSolidFillColor (ptr, out val);
26 GDIPlus.CheckStatus (status);
27 color = Color.FromArgb (val);
30 public SolidBrush (Color color)
34 Status status = GDIPlus.GdipCreateSolidFill (color.ToArgb (), out brush);
35 GDIPlus.CheckStatus (status);
36 nativeObject = (IntPtr) brush;
46 Status status = GDIPlus.GdipSetSolidFillColor (nativeObject, value.ToArgb ());
47 GDIPlus.CheckStatus (status);
50 throw new ArgumentException ("This SolidBrush object can't be modified.");
54 public override object Clone()
57 Status status = GDIPlus.GdipCloneBrush (nativeObject, out clonePtr);
58 GDIPlus.CheckStatus (status);
60 SolidBrush clone = new SolidBrush (clonePtr);
64 protected override void Dispose (bool disposing)
66 // SolidBrush is disposed if and only if it is not disposed
67 // and it is modifiable OR it is not disposed and it is being
69 if ((disposed == false) && (isModifiable || disposing == false)) {
70 Status status = GDIPlus.GdipDeleteBrush (nativeObject);
71 GDIPlus.CheckStatus (status);
75 throw new ArgumentException ("This SolidBrush object can't be modified.");