]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/dcsvg.h
Applied #15226 with modifications: wxRichTextCtrl: Implement setting properties with...
[wxWidgets.git] / interface / wx / dcsvg.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: dcsvg.h
e54c96f1 3// Purpose: interface of wxSVGFileDC
23324ae1 4// Author: wxWidgets team
526954c5 5// Licence: wxWindows licence
23324ae1
FM
6/////////////////////////////////////////////////////////////////////////////
7
8/**
9 @class wxSVGFileDC
7c913512 10
3a7fb603 11 A wxSVGFileDC is a device context onto which graphics and text can be
e844dc64
VZ
12 drawn, and the output produced as a vector file, in SVG format.
13
14 This format can be read by a range of programs, including a Netscape plugin
15 (Adobe) and the open source Inkscape program (http://inkscape.org/). Full
16 details are given in the W3C SVG recommendation (http://www.w3.org/TR/SVG/).
7c913512 17
23324ae1 18 The intention behind wxSVGFileDC is that it can be used to produce a file
3a7fb603 19 corresponding to the screen display context, wxSVGFileDC, by passing the
e844dc64 20 wxSVGFileDC as a parameter instead of a wxDC. Thus the wxSVGFileDC
3a7fb603 21 is a write-only class.
7c913512 22
3a7fb603
BP
23 As the wxSVGFileDC is a vector format, raster operations like GetPixel()
24 are unlikely to be supported. However, the SVG specification allows for PNG
25 format raster files to be embedded in the SVG, and so bitmaps, icons and
26 blit operations in wxSVGFileDC are supported.
7c913512 27
3a7fb603
BP
28 A more substantial SVG library (for reading and writing) is available at
29 the wxArt2D website <http://wxart2d.sourceforge.net/>.
7c913512 30
23324ae1 31 @library{wxcore}
3a7fb603 32 @category{dc}
23324ae1
FM
33*/
34class wxSVGFileDC : public wxDC
35{
36public:
1db8f1dc
BP
37 /**
38 Initializes a wxSVGFileDC with the given @a f filename with the given
39 @a Width and @a Height at @a dpi resolution.
40 */
11e3af6e 41 wxSVGFileDC(const wxString& filename, int width = 320, int height = 240, double dpi = 72);
23324ae1
FM
42
43 /**
44 Destructor.
45 */
adaaa686 46 virtual ~wxSVGFileDC();
23324ae1 47
23324ae1 48 /**
1db8f1dc 49 Does nothing.
23324ae1
FM
50 */
51 void EndDoc();
52
23324ae1 53 /**
1db8f1dc 54 Does nothing.
23324ae1
FM
55 */
56 void EndPage();
57
58 /**
f045ad8d 59 This makes no sense in wxSVGFileDC and does nothing.
23324ae1 60 */
f045ad8d 61 void Clear();
23324ae1
FM
62
63 /**
f045ad8d
FM
64 Does the same as wxDC::SetLogicalFunction(), except that only wxCOPY is
65 available. Trying to set one of the other values will fail.
23324ae1 66 */
f045ad8d 67 void SetLogicalFunction(wxRasterOperationMode function);
23324ae1 68
614e38db
VZ
69 /**
70 Sets the clipping region for this device context to the intersection of
71 the given region described by the parameters of this method and the previously
72 set clipping region.
8c6471af 73 Clipping is implemented in the SVG output using SVG group elements (\<g\>), with
614e38db
VZ
74 nested group elements being used to represent clipping region intersections when
75 two or more calls are made to SetClippingRegion().
76 */
77 void SetClippingRegion(wxCoord x, wxCoord y, wxCoord width,
78 wxCoord height);
79
80 /**
81 This is an overloaded member function, provided for convenience. It differs from the
82 above function only in what argument(s) it accepts.
83 */
84 void SetClippingRegion(const wxPoint& pt, const wxSize& sz);
85
86 /**
87 This is an overloaded member function, provided for convenience. It differs from the
88 above function only in what argument(s) it accepts.
89 */
90 void SetClippingRegion(const wxRect& rect);
91
92 /**
93 This function is not implemented in this DC class.
94 It could be implemented in future if a GetPoints() function were made available on wxRegion.
95 */
96 void SetClippingRegion(const wxRegion& region);
97
98 /**
99 Destroys the current clipping region so that none of the DC is clipped.
100 Since intersections arising from sequential calls to SetClippingRegion are represented
8c6471af 101 with nested SVG group elements (\<g\>), all such groups are closed when
614e38db
VZ
102 DestroyClippingRegion is called.
103 */
104 void DestroyClippingRegion();
105
23324ae1
FM
106 //@{
107 /**
f045ad8d 108 Functions not implemented in this DC class.
23324ae1 109 */
f045ad8d 110 void CrossHair(wxCoord x, wxCoord y);
f045ad8d
FM
111 bool FloodFill(wxCoord x, wxCoord y, const wxColour& colour,
112 wxFloodFillStyle style = wxFLOOD_SURFACE);
4ccf0566 113 void GetClippingBox(wxCoord *x, wxCoord *y, wxCoord *width, wxCoord *height) const;
0004982c 114 bool GetPixel(wxCoord x, wxCoord y, wxColour* colour) const;
23324ae1 115 void SetPalette(const wxPalette& palette);
23324ae1 116 bool StartDoc(const wxString& message);
f045ad8d 117 //@}
23324ae1 118};
e54c96f1 119