Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/System.Drawing/System.Drawing.Drawing2D')
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/AdjustableArrowCap.cs25
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/Blend.cs25
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/ChangeLog59
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/ColorBlend.cs25
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/CombineMode.cs25
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/CompostingMode.cs21
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/CompostingQuality.cs24
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/CoordinateSpace.cs21
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/CustomLineCap.cs25
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/DashCap.cs21
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/DashStyle.cs24
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/FillMode.cs21
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/FlushIntention.cs20
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsContainer.cs25
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsPath.cs36
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsPathIterator.cs25
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsState.cs25
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/HatchBrush.cs25
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/HatchStyle.cs75
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/InterpolationMode.cs27
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/LineCap.cs29
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/LineJoin.cs22
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/LinearGradientBrush.cs25
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/LinearGradientMode.cs22
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/Matrix.cs454
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/MatrixOrder.cs20
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/PathData.cs25
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/PathGradientBrush.cs25
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/PathPointType.cs26
-rwxr-xr-xmcs/class/System.Drawing/System.Drawing.Drawing2D/PenAlignment.cs21
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/PenType.cs23
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/PixelOffsetMode.cs25
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/QualityMode.cs22
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/RegionData.cs25
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/SmoothingMode.cs24
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/TODOAttribute.cs37
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/WarpMode.cs20
-rw-r--r--mcs/class/System.Drawing/System.Drawing.Drawing2D/WrapMode.cs23
38 files changed, 1442 insertions, 0 deletions
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/AdjustableArrowCap.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/AdjustableArrowCap.cs
new file mode 100644
index 00000000000..6699a15126d
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/AdjustableArrowCap.cs
@@ -0,0 +1,25 @@
+//
+// System.Drawing.Drawing2D.AdjustableArrowCap.cs
+//
+// Author:
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D
+{
+ /// <summary>
+ /// Summary description for AdjustableArrowCap.
+ /// </summary>
+ public class AdjustableArrowCap
+ {
+ public AdjustableArrowCap()
+ {
+ //
+ // TODO: Add constructor logic here
+ //
+ }
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/Blend.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/Blend.cs
new file mode 100644
index 00000000000..af2869c8527
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/Blend.cs
@@ -0,0 +1,25 @@
+//
+// System.Drawing.Drawing2D.Blend.cs
+//
+// Author:
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D
+{
+ /// <summary>
+ /// Summary description for Blend.
+ /// </summary>
+ public class Blend
+ {
+ public Blend()
+ {
+ //
+ // TODO: Add constructor logic here
+ //
+ }
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/ChangeLog b/mcs/class/System.Drawing/System.Drawing.Drawing2D/ChangeLog
new file mode 100644
index 00000000000..b9cbdedf27f
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/ChangeLog
@@ -0,0 +1,59 @@
+2002-10-13 DennisHayes <dennish@raytek.com>
+ * Changed namespace from *2d to *2D
+ * Changed comment header from system.Drawing to System.Drawing.Drawing2D
+
+2002-9-2 DennisHayes <dennish@raytek.com>
+
+ * AdjustableArrowCap.cs
+ * Blend.cs
+ * ColorBlend.cs
+ * CombineMode.cs
+ * CompostingMode.cs
+ * CompostingQuality.cs
+ * CoordinateSpace.cs
+ * CustomLineCap.cs
+ * DashCap.cs
+ * DashStyle.cs
+ * FillMode.cs
+ * FlushIntention.cs
+ * GraphicsContainer.cs
+ * GraphicsPathIterator.cs
+ * GraphicsState.cs
+ * HatchBrush.cs
+ * HatchStyle.cs
+ * InterpolationMode.cs
+ * LinearGradientBrush.cs
+ * LinearGradientMode.cs
+ * LineCap.cs
+ * LineJoin.cs
+ * MatrixOrder.cs
+ * PathData.cs
+ * PathGradientBrush.cs
+ * PathPointType.cs
+ * PenAligment.cs
+ * PenType.cs
+ * PixelOffsetMode.cs
+ * QualityMode.cs
+ * RegionData.cs
+ * SmoothingMode.cs
+ * WarpMode.cs
+ * WrapMode.cs
+ * Added null classes for most/all classes, Many stubs, and some implmentation
+
+2002-9-2 DennisHayes <dennish@raytek.com>
+
+ * Matrix.cs
+ * Added stubs, implmentation
+
+2002-9-2 DennisHayes <dennish@raytek.com>
+
+ * GraphicsPath.cs
+ * added stub needed for system.windows.forms
+
+2002-01-06 Ravi Pratap <ravi@ximian.com>
+
+ * ChangeLog : Add.
+
+ * Matrix.cs : MonoTODO everywhere.
+
+ * TODOAttribute.cs : Add here too. \ No newline at end of file
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/ColorBlend.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/ColorBlend.cs
new file mode 100644
index 00000000000..b970a5c5dc3
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/ColorBlend.cs
@@ -0,0 +1,25 @@
+//
+// System.Drawing.Drawing2D.ColorBlend.cs
+//
+// Author:
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D
+{
+ /// <summary>
+ /// Summary description for ColorBlend.
+ /// </summary>
+ public class ColorBlend
+ {
+ public ColorBlend()
+ {
+ //
+ // TODO: Add constructor logic here
+ //
+ }
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/CombineMode.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/CombineMode.cs
new file mode 100644
index 00000000000..1c72b7a2a00
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/CombineMode.cs
@@ -0,0 +1,25 @@
+//
+// System.Drawing.Drawing2D.CombineMode.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for CombineMode.
+ /// </summary>
+ public enum CombineMode
+ {
+ Complement = 5,
+ Exclude = 4,
+ Intersect =4,
+ Replace = 0,
+ Union = 2,
+ Xor =3
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/CompostingMode.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/CompostingMode.cs
new file mode 100644
index 00000000000..27baa9f1645
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/CompostingMode.cs
@@ -0,0 +1,21 @@
+//
+// System.Drawing.Drawing2D.CompostingMode.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for CompostingMode.
+ /// </summary>
+ public enum CompositingMode {
+ SourceCopy,
+ SourceOver
+ }
+}
+
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/CompostingQuality.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/CompostingQuality.cs
new file mode 100644
index 00000000000..0f24e2caab9
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/CompostingQuality.cs
@@ -0,0 +1,24 @@
+//
+// System.Drawing.CompostingQuality.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for CompostingQuality.
+ /// </summary>
+ public enum CompositingQuality {
+ AssumeLinear,
+ Default,
+ GammaCorrected,
+ HighQuality,
+ HighSpeed,
+ Invalid
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/CoordinateSpace.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/CoordinateSpace.cs
new file mode 100644
index 00000000000..bea5a6f10b3
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/CoordinateSpace.cs
@@ -0,0 +1,21 @@
+//
+// System.Drawing.Drawing2D.CoordinateSpace.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for CoordinateSpace.
+ /// </summary>
+ public enum CoordinateSpace {
+ Device,
+ Page,
+ World
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/CustomLineCap.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/CustomLineCap.cs
new file mode 100644
index 00000000000..0fca8daf19a
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/CustomLineCap.cs
@@ -0,0 +1,25 @@
+//
+// System.Drawing.Drawing2D.CustomLineCap.cs
+//
+// Author:
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D
+{
+ /// <summary>
+ /// Summary description for CustomLineCap.
+ /// </summary>
+ public class CustomLineCap
+ {
+ public CustomLineCap()
+ {
+ //
+ // TODO: Add constructor logic here
+ //
+ }
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/DashCap.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/DashCap.cs
new file mode 100644
index 00000000000..9f2a4624563
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/DashCap.cs
@@ -0,0 +1,21 @@
+//
+// System.Drawing.Drawing2D.DashCap.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for DashCap.
+ /// </summary>
+ public enum DashCap {
+ Flat,
+ Round,
+ Triangle
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/DashStyle.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/DashStyle.cs
new file mode 100644
index 00000000000..92bbaeba853
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/DashStyle.cs
@@ -0,0 +1,24 @@
+//
+// System.Drawing.Drawing2D.DashStyle.cs
+//
+// Author:
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D
+{
+ /// <summary>
+ /// Summary description for DashStyle.
+ /// </summary>
+ public enum DashStyle {
+ Custom,
+ Dash,
+ DashDot,
+ DashDotDot,
+ Dot,
+ Solid
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/FillMode.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/FillMode.cs
new file mode 100644
index 00000000000..e5f8279eb36
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/FillMode.cs
@@ -0,0 +1,21 @@
+//
+// System.Drawing.Drawing2D.FillMode.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for FillMode.
+ /// </summary>
+ public enum FillMode {
+ Alternate,
+ Winding
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/FlushIntention.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/FlushIntention.cs
new file mode 100644
index 00000000000..769b71c089f
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/FlushIntention.cs
@@ -0,0 +1,20 @@
+//
+// System.Drawing.Drawing2D.FlushIntention.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for FlushIntention.
+ /// </summary>
+ public enum FlushIntention {
+ Flush,
+ Sync
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsContainer.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsContainer.cs
new file mode 100644
index 00000000000..1df69bcd704
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsContainer.cs
@@ -0,0 +1,25 @@
+//
+// System.Drawing.Drawing2D.GraphicsContainer.cs
+//
+// Author:
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D
+{
+ /// <summary>
+ /// Summary description for GraphicsContainer.
+ /// </summary>
+ public class GraphicsContainer
+ {
+ public GraphicsContainer()
+ {
+ //
+ // TODO: Add constructor logic here
+ //
+ }
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsPath.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsPath.cs
new file mode 100644
index 00000000000..5b2655316d6
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsPath.cs
@@ -0,0 +1,36 @@
+//
+// System.Drawing.Drawing2D.GraphicsPath.cs
+//
+// Author:
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+namespace System.Drawing.Drawing2D
+{
+ /// <summary>
+ /// Summary description for GraphicsPath.
+ /// </summary>
+ public sealed class GraphicsPath //: MarshalByRefObject, ICloneable, IDisposable
+ {
+ //[MonoTODO]
+ public GraphicsPath() {
+ }
+ //[MonoTODO]
+ //public GraphicsPath(FillMode fillMode) : this() {
+ //}
+ //[MonoTODO]
+ //public GraphicsPath(Point[] pts, byte[] types) : this() {
+ //}
+ //[MonoTODO]
+ //public GraphicsPath(PointF[] pts, byte[] types) : this() {
+ //}
+ //[MonoTODO]
+ //public GraphicsPath(Point[] pts, byte[] types, FillMode fillmode) : this(pts, types) {
+ //}
+ //[MonoTODO]
+ //public GraphicsPath(PointF[] pts, byte[] types, FillMode fillmode) : this(pts, types) {
+ //}
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsPathIterator.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsPathIterator.cs
new file mode 100644
index 00000000000..8525c9531c6
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsPathIterator.cs
@@ -0,0 +1,25 @@
+//
+// System.Drawing.Drawing2D.GraphicsPathIterator.cs
+//
+// Author:
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D
+{
+ /// <summary>
+ /// Summary description for GraphicsPathIterator.
+ /// </summary>
+ public class GraphicsPathIterator
+ {
+ public GraphicsPathIterator()
+ {
+ //
+ // TODO: Add constructor logic here
+ //
+ }
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsState.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsState.cs
new file mode 100644
index 00000000000..922144d272e
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/GraphicsState.cs
@@ -0,0 +1,25 @@
+//
+// System.Drawing.Drawing2D.GraphicsState.cs
+//
+// Author:
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D
+{
+ /// <summary>
+ /// Summary description for GraphicsState.
+ /// </summary>
+ public class GraphicsState
+ {
+ public GraphicsState()
+ {
+ //
+ // TODO: Add constructor logic here
+ //
+ }
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/HatchBrush.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/HatchBrush.cs
new file mode 100644
index 00000000000..edb375793a9
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/HatchBrush.cs
@@ -0,0 +1,25 @@
+//
+// System.Drawing.Drawing2D.HatchBrush.cs
+//
+// Author:
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D
+{
+ /// <summary>
+ /// Summary description for HatchBrush.
+ /// </summary>
+ public class HatchBrush
+ {
+ public HatchBrush()
+ {
+ //
+ // TODO: Add constructor logic here
+ //
+ }
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/HatchStyle.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/HatchStyle.cs
new file mode 100644
index 00000000000..59c81e556c1
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/HatchStyle.cs
@@ -0,0 +1,75 @@
+//
+// System.Drawing.Drawing2D.HatchStyle.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for HatchStyle.
+ /// </summary>
+ public enum HatchStyle {
+ BackwardDiagonal,
+ Cross,
+ DarkDownwardDiagonal,
+ DarkHorizontal,
+ DarkUpwardDiagonal,
+ DarkVertical,
+ DashedDownwardDiagonal,
+ DashedHorizontal,
+ DashedUpwardDiagonal,
+ DashedVertical,
+ DiagonalBrick,
+ DiagonalCross,
+ Divot,
+ DottedDiamond,
+ DottedGrid,
+ ForwardDiagonal,
+ Horizontal,
+ HorizontalBrick,
+ LargeCheckerBoard,
+ LargeConfetti,
+ LargeGrid,
+ LightDownwardDiagonal,
+ LightHorizontal,
+ LightUpwardDiagonal,
+ LightVertical,
+ Max,
+ Min,
+ NarrowHorizontal,
+ NarrowVertical,
+ OutlinedDiamond,
+ Percent05,
+ Percent10,
+ Percent20,
+ Percent25,
+ Percent30,
+ Percent40,
+ Percent50,
+ Percent60,
+ Percent70,
+ Percent75,
+ Percent80,
+ Percent90,
+ Plaid,
+ Shingle,
+ SmallCheckerBoard,
+ SmallConfetti,
+ SmallGrid,
+ SolidDiamond,
+ Sphere,
+ Trellis,
+ Vertical,
+ Wave,
+ Weave,
+ WideDownwardDiagonal,
+ WideUpwardDiagonal,
+ ZigZag
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/InterpolationMode.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/InterpolationMode.cs
new file mode 100644
index 00000000000..9d7cebbf66a
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/InterpolationMode.cs
@@ -0,0 +1,27 @@
+//
+// System.Drawing.Drawing2D.InterpolationMode.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for InterpolationMode.
+ /// </summary>
+ public enum InterpolationMode {
+ Bicubic,
+ Bilinear,
+ Default,
+ High,
+ HighQualityBicubic,
+ HighQualityBilinear,
+ Invalid,
+ Low,
+ NearestNeighbour
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/LineCap.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/LineCap.cs
new file mode 100644
index 00000000000..161c3b2fe85
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/LineCap.cs
@@ -0,0 +1,29 @@
+//
+// System.Drawing.Drawing2D.LineCap.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for LineCap.
+ /// </summary>
+ public enum LineCap {
+ AnchorMask,
+ ArrowAnchor,
+ Custom,
+ DiamondAnchor,
+ Flat,
+ NoAnchor,
+ Round,
+ RoundAnchor,
+ Square,
+ SquareAnchor,
+ Triangle
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/LineJoin.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/LineJoin.cs
new file mode 100644
index 00000000000..4ced9b10d24
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/LineJoin.cs
@@ -0,0 +1,22 @@
+//
+// System.Drawing.Drawing2D.LineJoin.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for LineJoin.
+ /// </summary>
+ public enum LineJoin {
+ Bevel,
+ Miter,
+ MiterClipped,
+ Round
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/LinearGradientBrush.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/LinearGradientBrush.cs
new file mode 100644
index 00000000000..9e4527fd75c
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/LinearGradientBrush.cs
@@ -0,0 +1,25 @@
+//
+// System.Drawing.Drawing2D.LinearGradientBrush.cs
+//
+// Author:
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D
+{
+ /// <summary>
+ /// Summary description for LinearGradientBrush.
+ /// </summary>
+ public class LinearGradientBrush
+ {
+ public LinearGradientBrush()
+ {
+ //
+ // TODO: Add constructor logic here
+ //
+ }
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/LinearGradientMode.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/LinearGradientMode.cs
new file mode 100644
index 00000000000..e1f0cd91dd5
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/LinearGradientMode.cs
@@ -0,0 +1,22 @@
+//
+// System.Drawing.Drawing2D.LinearGradientMode.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for LinearGradientMode.
+ /// </summary>
+ public enum LinearGradientMode {
+ BackwardDiagonal,
+ ForwardDiagonal,
+ Horizontal,
+ Vertical
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/Matrix.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/Matrix.cs
new file mode 100644
index 00000000000..a3b4ddccaec
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/Matrix.cs
@@ -0,0 +1,454 @@
+//
+// System.Drawing.Drawing2D.Matrix.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) Ximian, Inc. http://www.ximian.com
+//
+
+using System;
+using System.Drawing;
+using System.Runtime.InteropServices;
+
+namespace System.Drawing.Drawing2D
+{
+ public sealed class Matrix : MarshalByRefObject, IDisposable
+ {
+ // initialize to identity
+ private float[] m = {1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f};
+
+ // constructors
+ public Matrix() { }
+
+ /* TODO: depends on System.Drawing.Drawing2D.Rectangle
+ public Matrix(Rectangle rect , Point[] plgpts)
+ {
+ // TODO
+ }
+ */
+
+ /* TODO: depends on System.Drawing.Drawing2D.RectangleF
+ public Matrix(RectangleF rect , PointF[] pa)
+ {
+ // TODO
+ }
+ */
+ public Matrix(float m11, float m12,
+ float m21, float m22,
+ float dx, float dy)
+ {
+ m[0] = m11; m[1] = m12;
+ m[2] = m21; m[3] = m22;
+ m[4] = dx; m[5] = dy;
+ }
+
+ // properties
+ public float[] Elements
+ {
+ get { return m; }
+ }
+
+ public bool IsIdentity
+ {
+ get
+ {
+ if ( (m[0] == 1.0f) && (m[1] == 0.0f) &&
+ (m[2] == 0.0f) && (m[3] == 1.0f) &&
+ (m[4] == 0.0f) && (m[5] == 0.0f) )
+ return true;
+ else
+ return false;
+ }
+ }
+
+ public bool IsInvertible
+ {
+ get
+ {
+ // matrix M is invertible if det(M) != 0
+ float det = m[0] * m[3] - m[2] * m[1];
+ if (det != 0.0f) return true;
+ else return false;
+ }
+ }
+
+ public float OffsetX
+ {
+ get { return m[4]; }
+ }
+
+ public float OffsetY
+ {
+ get { return m[5]; }
+ }
+
+ // methods
+ public Matrix Clone()
+ {
+ return new Matrix(m[0], m[1], m[2], m[3], m[4], m[5]);
+ }
+
+ public void Dispose() { }
+
+ public override bool Equals(object obj)
+ {
+ if (obj is Matrix)
+ {
+ float[] a = ((Matrix)obj).Elements;
+ if ( m[0] == a[0] && m[1] == a[1] &&
+ m[2] == a[2] && m[3] == a[3] &&
+ m[4] == a[4] && m[5] == a[5] )
+ return true;
+ else
+ return false;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ ~Matrix() {}
+
+ [StructLayout(LayoutKind.Explicit)]
+ internal struct BitConverter
+ {
+ [FieldOffset(0)] public float f;
+ [FieldOffset(0)] public int i;
+ }
+
+ public override int GetHashCode()
+ {
+ BitConverter b;
+ // compiler is not smart
+ b.i = 0;
+ int h = 0;
+ for (int i = 0; i < 6; i++)
+ {
+ b.f = m[i];
+ h ^= b.i >> i;
+ }
+ return h;
+ }
+
+ public void Invert()
+ {
+ float det = m[0] * m[3] - m[2] * m[1];
+ if (det != 0.0f) // if invertible
+ {
+ float[] r =
+ {
+ m[3] / det,
+ -m[1] / det,
+ -m[2] / det,
+ m[0] / det,
+ (-m[3] * m[4] + m[1] * m[5]) / det,
+ (m[2] * m[4] - m[0] * m[5]) / det
+ };
+ m = r;
+ }
+ }
+
+ public void Multiply(Matrix matrix)
+ {
+ Multiply(matrix, MatrixOrder.Prepend);
+ }
+
+ public void Multiply(Matrix matrix, MatrixOrder order)
+ {
+ switch (order)
+ {
+ case MatrixOrder.Prepend:
+ // this = matrix * this
+ float[] p = matrix.Elements;
+ float[] r0 =
+ {
+ p[0] * m[0] + p[1] * m[2],
+ p[0] * m[1] + p[1] * m[3],
+ p[2] * m[0] + p[3] * m[2],
+ p[2] * m[1] + p[3] * m[3],
+ p[4] * m[0] + p[5] * m[2] + m[4],
+ p[4] * m[1] + p[5] * m[3] + m[5]
+ };
+ m = r0;
+ break;
+ case MatrixOrder.Append:
+ // this = this * matrix
+ float[] a = matrix.Elements;
+ float[] r1 =
+ {
+ m[0] * a[0] + m[1] * a[2],
+ m[0] * a[1] + m[1] * a[3],
+ m[2] * a[0] + m[3] * a[2],
+ m[2] * a[1] + m[3] * a[3],
+ m[4] * a[0] + m[5] * a[2] + a[4],
+ m[4] * a[1] + m[5] * a[3] + a[5]
+ };
+ m = r1;
+ break;
+ }
+ }
+
+ public void Reset()
+ {
+ m[0] = 1.0f; m[1] = 0.0f;
+ m[2] = 0.0f; m[3] = 1.0f;
+ m[4] = 0.0f; m[5] = 0.0f;
+ }
+
+ public void Rotate(float angle)
+ {
+ Rotate(angle, MatrixOrder.Prepend);
+ }
+
+ public void Rotate(float angle, MatrixOrder order)
+ {
+ angle *= (float)(Math.PI / 180.0); // degrees to randians
+ float cos = (float)Math.Cos(angle);
+ float sin = (float)Math.Sin(angle);
+ switch (order)
+ {
+ case MatrixOrder.Prepend:
+ // this = rotation * this
+ float[] r0 =
+ {
+ cos * m[0] + sin * m[2],
+ cos * m[1] + sin * m[3],
+ -sin * m[0] + cos * m[2],
+ -sin * m[1] + cos * m[3],
+ m[4],
+ m[5]
+ };
+ m = r0;
+ break;
+ case MatrixOrder.Append:
+ // this = this * rotation
+ float[] r1 =
+ {
+ m[0] * cos + m[1] * -sin,
+ m[0] * sin + m[1] * cos,
+ m[2] * cos + m[3] * -sin,
+ m[2] * sin + m[3] * cos,
+ m[4] * cos + m[5] * -sin,
+ m[4] * sin + m[5] * cos
+ };
+ m = r1;
+ break;
+ }
+ }
+
+ public void RotateAt(float angle, PointF point)
+ {
+ RotateAt(angle, point, MatrixOrder.Prepend);
+ }
+
+ public void RotateAt(float angle, PointF point, MatrixOrder order)
+ {
+ angle *= (float)(Math.PI / 180.0); // degrees to randians
+ float cos = (float)Math.Cos(angle);
+ float sin = (float)Math.Sin(angle);
+ float e4 = -point.X * cos + point.Y * sin + point.X;
+ float e5 = -point.X * sin - point.Y * cos + point.Y;
+ switch (order)
+ {
+ case MatrixOrder.Prepend:
+ // this = rotation * this
+ float[] r0 =
+ {
+ cos * m[0] + sin * m[2],
+ cos * m[1] + sin * m[3],
+ -sin * m[0] + cos * m[2],
+ -sin * m[1] + cos * m[3],
+ e4 * m[0] + e5 * m[2] + m[4],
+ e4 * m[1] + e5 * m[3] + m[5]
+ };
+ m = r0;
+ break;
+ case MatrixOrder.Append:
+ // this = this * rotation
+ float[] r1 =
+ {
+ m[0] * cos + m[1] * -sin,
+ m[0] * sin + m[1] * cos,
+ m[2] * cos + m[3] * -sin,
+ m[2] * sin + m[3] * cos,
+ m[4] * cos + m[5] * -sin + e4,
+ m[4] * sin + m[5] * cos + e5
+ };
+ m = r1;
+ break;
+ }
+ }
+
+ public void Scale(float scaleX, float scaleY)
+ {
+ Scale(scaleX, scaleY, MatrixOrder.Prepend);
+ }
+
+ public void Scale(float scaleX, float scaleY, MatrixOrder order)
+ {
+ switch (order)
+ {
+ case MatrixOrder.Prepend:
+ // this = scale * this
+ m[0] *= scaleX; m[1] *= scaleX;
+ m[2] *= scaleY; m[3] *= scaleY;
+ break;
+ case MatrixOrder.Append:
+ // this = this * scale
+ m[0] *= scaleX; m[1] *= scaleY;
+ m[2] *= scaleX; m[3] *= scaleY;
+ m[4] *= scaleX; m[5] *= scaleY;
+ break;
+ }
+ }
+
+ public void Shear(float shearX, float shearY)
+ {
+ Shear(shearX, shearY, MatrixOrder.Prepend);
+ }
+
+ // LAMESPEC: quote from beta 2 sdk docs: "[To be supplied!]"
+ //
+ // assuming transformation matrix:
+ //
+ // (1 shearY 0)
+ // (shearX 1 0)
+ // (0 0 1)
+ //
+ public void Shear(float shearX, float shearY, MatrixOrder order)
+ {
+ switch (order)
+ {
+ case MatrixOrder.Prepend:
+ // this = shear * this
+ float[] r0 =
+ {
+ m[0] + shearY * m[2],
+ m[1] + shearY * m[3],
+ shearX * m[0] + m[2],
+ shearX * m[1] + m[3],
+ m[4],
+ m[5]
+ };
+ m = r0;
+ break;
+ case MatrixOrder.Append:
+ // this = this * shear
+ float[] r1 =
+ {
+ m[0] + m[1] * shearX,
+ m[0] * shearY + m[1],
+ m[2] + m[3] * shearX,
+ m[2] * shearY + m[3],
+ m[4] + m[5] * shearX ,
+ m[4] * shearY + m[5]
+ };
+ m = r1;
+ break;
+ }
+ }
+
+ public void TransformPoints(Point[] pts)
+ {
+ for (int i = 0; i < pts.Length; i++)
+ {
+ float x = (float)pts[i].X;
+ float y = (float)pts[i].Y;
+ pts[i].X = (int)(x * m[0] + y * m[2] + m[4]);
+ pts[i].Y = (int)(x * m[1] + y * m[3] + m[5]);
+ }
+ }
+
+ public void TransformPoints(PointF[] pts)
+ {
+ for (int i = 0; i < pts.Length; i++)
+ {
+ float x = pts[i].X;
+ float y = pts[i].Y;
+ pts[i].X = x * m[0] + y * m[2] + m[4];
+ pts[i].Y = x * m[1] + y * m[3] + m[5];
+ }
+ }
+
+ public void TransformVectors(Point[] pts)
+ {
+ for (int i = 0; i < pts.Length; i++)
+ {
+ float x = (float)pts[i].X;
+ float y = (float)pts[i].Y;
+ pts[i].X = (int)(x * m[0] + y * m[2]);
+ pts[i].Y = (int)(x * m[1] + y * m[3]);
+ }
+ }
+
+ public void TransformVectors(PointF[] pts)
+ {
+ for (int i = 0; i < pts.Length; i++)
+ {
+ float x = pts[i].X;
+ float y = pts[i].Y;
+ pts[i].X = x * m[0] + y * m[2];
+ pts[i].Y = x * m[1] + y * m[3];
+ }
+ }
+
+ public void Translate(float offsetX, float offsetY)
+ {
+ Translate(offsetX, offsetY, MatrixOrder.Prepend);
+ }
+
+ public void Translate(float offsetX, float offsetY, MatrixOrder order)
+ {
+ switch (order)
+ {
+ case MatrixOrder.Prepend:
+ // this = translation * this
+ m[4] = offsetX * m[0] + offsetY * m[2] + m[4];
+ m[5] = offsetX * m[1] + offsetY * m[3] + m[5];
+ break;
+ case MatrixOrder.Append:
+ // this = this * translation
+ m[4] += offsetX;
+ m[5] += offsetY;
+ break;
+ }
+ }
+
+ // LAMESPEC: quote from beta 2 sdk docs: "[To be supplied!]"
+// [MonoTODO]
+ public void VectorTransformPoints(Point[] pts)
+ {
+ // TODO
+ }
+
+ // some simple test (TODO: remove)
+ /*
+ public static void Main()
+ {
+ PointF[] p = {new PointF(1.0f, 2.0f)};
+ Console.WriteLine("(" + p[0].X + " " + p[0].Y + ")");
+ Matrix m = new Matrix();
+
+ m.Translate(1.0f, 1.0f);
+ m.Scale(2.0f, 2.0f);
+ m.Rotate(180.0f);
+
+ m.TransformPoints(p);
+ Console.WriteLine("(" + p[0].X + " " + p[0].Y + ")");
+ m.Invert();
+ m.TransformPoints(p);
+ Console.WriteLine("(" + p[0].X + " " + p[0].Y + ")");
+
+ Matrix a = new Matrix(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f);
+ Matrix b = new Matrix(2.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f);
+
+ Console.WriteLine("h(a) = " + a.GetHashCode());
+ Console.WriteLine("h(b) = " + b.GetHashCode());
+ }
+ */
+
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/MatrixOrder.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/MatrixOrder.cs
new file mode 100644
index 00000000000..241b2842465
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/MatrixOrder.cs
@@ -0,0 +1,20 @@
+//
+// System.Drawing.Drawing2D.MatrixOrder.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for MatrixOrder.
+ /// </summary>
+ public enum MatrixOrder {
+ Append,
+ Prepend
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/PathData.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/PathData.cs
new file mode 100644
index 00000000000..168cf90ba31
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/PathData.cs
@@ -0,0 +1,25 @@
+//
+// System.Drawing.Drawing2D.PathData.cs
+//
+// Author:
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D
+{
+ /// <summary>
+ /// Summary description for PathData.
+ /// </summary>
+ public class PathData
+ {
+ public PathData()
+ {
+ //
+ // TODO: Add constructor logic here
+ //
+ }
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/PathGradientBrush.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/PathGradientBrush.cs
new file mode 100644
index 00000000000..f40b12f6ddb
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/PathGradientBrush.cs
@@ -0,0 +1,25 @@
+//
+// System.Drawing.Drawing2D.PathGradientBrush.cs
+//
+// Author:
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D
+{
+ /// <summary>
+ /// Summary description for PathGradientBrush.
+ /// </summary>
+ public class PathGradientBrush
+ {
+ public PathGradientBrush()
+ {
+ //
+ // TODO: Add constructor logic here
+ //
+ }
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/PathPointType.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/PathPointType.cs
new file mode 100644
index 00000000000..d7c7eaa1eb9
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/PathPointType.cs
@@ -0,0 +1,26 @@
+//
+// System.Drawing.Drawing2D.PathPointType.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for PathPointType.
+ /// </summary>
+ public enum PathPointType {
+ Bezier,
+ Bezier3,
+ CloseSubpath,
+ DashMode,
+ Line,
+ PathMarker,
+ PathTypeMask,
+ Start
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/PenAlignment.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/PenAlignment.cs
new file mode 100755
index 00000000000..eac30272a8e
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/PenAlignment.cs
@@ -0,0 +1,21 @@
+//
+// System.Drawing.Drawing2D.PenAlignment.cs
+//
+// Author:
+// Miguel de Icaza (miguel@ximian.com)
+// Dennis Hayes (dennish@Raytek.com)
+// (C) Ximian, Inc. http://www.ximian.com
+//
+
+using System;
+
+namespace System.Drawing.Drawing2D {
+
+ public enum PenAlignment {
+ Center = 0,
+ Inset = 1,
+ Outset = 2,
+ Left = 3,
+ Right =4
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/PenType.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/PenType.cs
new file mode 100644
index 00000000000..4a047f64cc0
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/PenType.cs
@@ -0,0 +1,23 @@
+//
+// System.Drawing.Drawing2D.PenType.cs
+//
+// Author:
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D
+{
+ /// <summary>
+ /// Summary description for PenType.
+ /// </summary>
+ public enum PenType {
+ HatchFill,
+ LinearGradient,
+ PathGradient,
+ SolidColor,
+ TextureFill
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/PixelOffsetMode.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/PixelOffsetMode.cs
new file mode 100644
index 00000000000..ce39b1049d5
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/PixelOffsetMode.cs
@@ -0,0 +1,25 @@
+//
+// System.Drawing.Drawing2D.PixelOffsetMode.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for PixelOffsetMode.
+ /// </summary>
+ public enum PixelOffsetMode {
+ Default,
+ Half,
+ HighQuality,
+ HighSpeed,
+ Invalid,
+ None
+ }
+}
+
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/QualityMode.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/QualityMode.cs
new file mode 100644
index 00000000000..b91df06140d
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/QualityMode.cs
@@ -0,0 +1,22 @@
+//
+// System.Drawing.Drawing2D.QualityMode.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for QualityMode.
+ /// </summary>
+ public enum QualityMode {
+ Default,
+ Hight,
+ Invalid,
+ Low
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/RegionData.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/RegionData.cs
new file mode 100644
index 00000000000..83dcafab301
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/RegionData.cs
@@ -0,0 +1,25 @@
+//
+// System.Drawing.Drawing2D.RegionData.cs
+//
+// Author:
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D
+{
+ /// <summary>
+ /// Summary description for RegionData.
+ /// </summary>
+ public class RegionData
+ {
+ public RegionData()
+ {
+ //
+ // TODO: Add constructor logic here
+ //
+ }
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/SmoothingMode.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/SmoothingMode.cs
new file mode 100644
index 00000000000..0c9d0eadfeb
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/SmoothingMode.cs
@@ -0,0 +1,24 @@
+//
+// System.Drawing.Drawing2D.SmoothingMode.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for SmoothingMode.
+ /// </summary>
+ public enum SmoothingMode {
+ AntiAlias,
+ Default,
+ HighQuality,
+ HighSpeed,
+ Invalid,
+ None
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/TODOAttribute.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/TODOAttribute.cs
new file mode 100644
index 00000000000..0920ce8f92d
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/TODOAttribute.cs
@@ -0,0 +1,37 @@
+//
+// TODOAttribute.cs
+//
+// Author:
+// Ravi Pratap (ravi@ximian.com)
+//
+// (C) Ximian, Inc. http://www.ximian.com
+//
+
+namespace System {
+
+ /// <summary>
+ /// The TODO attribute is used to flag all incomplete bits in our class libraries
+ /// </summary>
+ ///
+ /// <remarks>
+ /// Use this to decorate any element which you think is not complete
+ /// </remarks>
+ [AttributeUsage (AttributeTargets.All, AllowMultiple=true)]
+ public class MonoTODOAttribute : Attribute {
+
+ private string comment;
+
+ public MonoTODOAttribute ()
+ {}
+
+ public MonoTODOAttribute (string comment)
+ {
+ this.comment = comment;
+ }
+
+ public string Comment
+ {
+ get { return comment; }
+ }
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/WarpMode.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/WarpMode.cs
new file mode 100644
index 00000000000..89fec37a0b1
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/WarpMode.cs
@@ -0,0 +1,20 @@
+//
+// System.Drawing.Drawing2D.WarpMode.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for WarpMode.
+ /// </summary>
+ public enum WarpMode {
+ Bilinear,
+ Perspective
+ }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing.Drawing2D/WrapMode.cs b/mcs/class/System.Drawing/System.Drawing.Drawing2D/WrapMode.cs
new file mode 100644
index 00000000000..b76b166de71
--- /dev/null
+++ b/mcs/class/System.Drawing/System.Drawing.Drawing2D/WrapMode.cs
@@ -0,0 +1,23 @@
+//
+// System.Drawing.Drawing2D.WrapMode.cs
+//
+// Author:
+// Stefan Maierhofer <sm@cg.tuwien.ac.at>
+// Dennis Hayes (dennish@Raytek.com)
+//
+// (C) 2002 Ximian, Inc
+//
+using System;
+
+namespace System.Drawing.Drawing2D {
+ /// <summary>
+ /// Summary description for WrapMode.
+ /// </summary>
+ public enum WrapMode {
+ Clamp,
+ Tile,
+ TileFlipX,
+ TileFlipXY,
+ TileFlipY
+ }
+}