2 using awt = java.awt;
\r
3 using geom = java.awt.geom;
\r
5 namespace System.Drawing {
\r
6 internal sealed class StrokeFactory {
\r
10 interface StrokeCreator {
\r
11 awt.Stroke Create(float width, int cap, int join, float miterlimit,
\r
12 float[] dash, float dash_phase, geom.AffineTransform penTransform,
\r
13 geom.AffineTransform outputTransform, bool fitPen);
\r
16 sealed class AdvancedCreator : StrokeCreator {
\r
17 #region StrokeCreator Members
\r
19 public awt.Stroke Create(float width, int cap, int join, float miterlimit, float[] dash, float dash_phase, geom.AffineTransform penTransform,
\r
20 geom.AffineTransform outputTransform, bool fitPen) {
\r
21 return new System.Drawing.AdvancedStroke(width, cap, join, miterlimit, dash, dash_phase, penTransform, outputTransform, fitPen);
\r
27 sealed class DefaultCreator : StrokeCreator {
\r
28 #region StrokeCreator Members
\r
30 public awt.Stroke Create(float width, int cap, int join, float miterlimit, float[] dash, float dash_phase, geom.AffineTransform penTransform,
\r
31 geom.AffineTransform outputTransform, bool fitPen) {
\r
32 return new awt.BasicStroke(width, cap, join, miterlimit, dash, dash_phase);
\r
38 static readonly StrokeCreator Creator;
\r
39 static StrokeFactory() {
\r
41 Type type = typeof(System.Drawing.AdvancedStroke);
\r
42 Activator.CreateInstance(type);
\r
43 Creator = new AdvancedCreator();
\r
46 Creator = new DefaultCreator();
\r
50 static public bool CanCreateAdvancedStroke {
\r
52 return !(Creator is DefaultCreator);
\r
56 static public awt.Stroke CreateStroke(float width, int cap, int join, float miterlimit,
\r
57 float[] dash, float dash_phase, geom.AffineTransform penTransform,
\r
58 geom.AffineTransform outputTransform, bool fitPen) {
\r
60 return Creator.Create(width, cap, join, miterlimit, dash, dash_phase, penTransform, outputTransform, fitPen);
\r