git-svn-id: https://pdfsharp.svn.codeplex.com/svn@39620 56d0cb2f-6006-4f69-a5a2-94740...
[pdfsharp:pdfsharp.git] / PDFsharp / code / PdfSharp / PdfSharp.Drawing / XBrush.cs
1 #region PDFsharp - A .NET library for processing PDF\r
2 //\r
3 // Authors:\r
4 //   Stefan Lange (mailto:Stefan.Lange@pdfsharp.com)\r
5 //\r
6 // Copyright (c) 2005-2009 empira Software GmbH, Cologne (Germany)\r
7 //\r
8 // http://www.pdfsharp.com\r
9 // http://sourceforge.net/projects/pdfsharp\r
10 //\r
11 // Permission is hereby granted, free of charge, to any person obtaining a\r
12 // copy of this software and associated documentation files (the "Software"),\r
13 // to deal in the Software without restriction, including without limitation\r
14 // the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
15 // and/or sell copies of the Software, and to permit persons to whom the\r
16 // Software is furnished to do so, subject to the following conditions:\r
17 //\r
18 // The above copyright notice and this permission notice shall be included\r
19 // in all copies or substantial portions of the Software.\r
20 //\r
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
22 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
23 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\r
24 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
25 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r
26 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER \r
27 // DEALINGS IN THE SOFTWARE.\r
28 #endregion\r
29 \r
30 using System;\r
31 using System.IO;\r
32 #if GDI\r
33 using System.Drawing;\r
34 using System.Drawing.Drawing2D;\r
35 #endif\r
36 #if WPF\r
37 using System.Windows.Media;\r
38 #endif\r
39 using PdfSharp.Internal;\r
40 \r
41 namespace PdfSharp.Drawing\r
42 {\r
43   /// <summary>\r
44   /// Classes derived from this abstract base class define objects used to fill the \r
45   /// interiors of paths.\r
46   /// </summary>\r
47   public abstract class XBrush\r
48   {\r
49 #if GDI\r
50     internal abstract System.Drawing. Brush RealizeGdiBrush();\r
51 \r
52 #if UseGdiObjects\r
53     /// <summary>\r
54     /// Converts from a System.Drawing.Brush.\r
55     /// </summary>\r
56     public static implicit operator XBrush(Brush brush)\r
57     {\r
58       XBrush xbrush;\r
59       SolidBrush solidBrush;\r
60       LinearGradientBrush lgBrush;\r
61       if ((solidBrush = brush as SolidBrush) != null)\r
62       {\r
63         xbrush = new XSolidBrush(solidBrush.Color);\r
64       }\r
65       else if ((lgBrush = brush as LinearGradientBrush) != null)\r
66       {\r
67         // TODO: xbrush = new LinearGradientBrush(lgBrush.Rectangle, lgBrush.co(solidBrush.Color);\r
68         throw new NotImplementedException("Brush type not yet supported by PDFsharp.");\r
69       }\r
70       else\r
71       {\r
72         throw new NotImplementedException("Brush type not supported by PDFsharp.");\r
73       }\r
74       return xbrush;\r
75     }\r
76 #endif\r
77 #endif\r
78 #if WPF\r
79     internal abstract System.Windows.Media. Brush RealizeWpfBrush();\r
80 #endif\r
81   }\r
82 }\r