Add libwx-perl
[pkg-perl] / deb-src / libwx-perl / libwx-perl-0.96 / XS / GraphicsPath.xs
1 #############################################################################
2 ## Name:        XS/GraphicsPath.xs
3 ## Purpose:     XS for Wx::GraphicsPath
4 ## Author:      Klaas Hartmann
5 ## Modified by:
6 ## Created:     29/06/2007
7 ## RCS-ID:      $Id: GraphicsPath.xs 2523 2009-02-04 23:50:57Z mbarbon $
8 ## Copyright:   (c) 2007, 2009 Klaas Hartmann
9 ## Licence:     This program is free software; you can redistribute it and/or
10 ##              modify it under the same terms as Perl itself
11 #############################################################################
12
13 ## There are several overloaded functions (see below) where one variant takes a 
14 ## wxPoint2DDouble and the other takes x and y values individually. In these
15 ## cases the former variant has not been implemented.  Feel free to do so!
16 ##
17 ## Unimplemented overloaded functions
18 ## void MoveToPoint(const wxPoint2DDouble& p)
19 ## void AddArc(const wxPoint2DDouble& c, wxDouble r, wxDouble startAngle, wxDouble endAngle, bool clockwise)
20 ## void AddCurveToPoint(const wxPoint2DDouble& c1, const wxPoint2DDouble& c2, const wxPoint2DDouble& e)
21 ## void AddLineToPoint(const wxPoint2DDouble& p)
22 ## bool Contains(const wxPoint2DDouble& c, int fillStyle = wxODDEVEN_RULE) const
23
24 #if wxUSE_GRAPHICS_CONTEXT
25
26 #include <wx/graphics.h>
27
28 MODULE=Wx PACKAGE=Wx::GraphicsPath
29
30 void
31 wxGraphicsPath::MoveToPoint (x, y)
32     wxDouble x
33     wxDouble y
34
35 void
36 wxGraphicsPath::AddArc(x,y,r,startAngle,endAngle,clockwise )
37     wxDouble x
38     wxDouble y
39     wxDouble r
40     wxDouble startAngle
41     wxDouble endAngle
42     bool clockwise
43
44 void
45 wxGraphicsPath::AddArcToPoint ( x1, y1, x2, y2, r)
46     wxDouble x1
47     wxDouble y1
48     wxDouble x2
49     wxDouble y2
50     wxDouble r 
51
52 void 
53 wxGraphicsPath::AddCircle ( x, y, r)
54     wxDouble x
55     wxDouble y
56     wxDouble r
57
58 void 
59 wxGraphicsPath::AddCurveToPoint (cx1, cy1, cx2, cy2, x, y)
60     wxDouble cx1
61     wxDouble cy1
62     wxDouble cx2
63     wxDouble cy2
64     wxDouble x
65     wxDouble y
66
67 void 
68 wxGraphicsPath::AddEllipse ( x, y, w, h)
69     wxDouble x
70     wxDouble y
71     wxDouble w
72     wxDouble h
73
74 void 
75 wxGraphicsPath::AddLineToPoint ( x, y)
76     wxDouble x
77     wxDouble y
78
79 void 
80 wxGraphicsPath::AddPath (path)
81     wxGraphicsPath* path
82   CODE:
83     THIS->AddPath(*path);
84
85 void 
86 wxGraphicsPath::AddQuadCurveToPoint (cx, cy, x, y)
87     wxDouble cx
88     wxDouble cy
89     wxDouble x
90     wxDouble y
91
92 void
93 wxGraphicsPath::AddRectangle (x, y, w, h)
94     wxDouble x
95     wxDouble y
96     wxDouble w 
97     wxDouble h
98
99 void 
100 wxGraphicsPath::AddRoundedRectangle (x, y, w, h, radius)
101     wxDouble x
102     wxDouble y
103     wxDouble w
104     wxDouble h
105     wxDouble radius
106
107 void 
108 wxGraphicsPath::CloseSubpath ( )
109
110 bool
111 wxGraphicsPath::Contains (x, y, fillStyle = wxODDEVEN_RULE)
112     wxDouble x
113     wxDouble y
114     wxPolygonFillMode fillStyle
115
116 void
117 wxGraphicsPath::GetBox ( )
118   PREINIT:
119     wxDouble x, y, w, h;
120   PPCODE:
121     THIS->GetBox( &x, &y, &w, &h );
122     EXTEND( SP, 4 );
123     PUSHs( sv_2mortal( newSVnv( x ) ) );
124     PUSHs( sv_2mortal( newSVnv( y ) ) );
125     PUSHs( sv_2mortal( newSVnv( w ) ) );
126     PUSHs( sv_2mortal( newSVnv( h ) ) );
127
128 void
129 wxGraphicsPath::GetCurrentPoint ( )
130   PREINIT:
131     wxDouble x, y;
132   PPCODE:
133     THIS->GetCurrentPoint( &x, &y );
134     EXTEND( SP, 2 );
135     PUSHs( sv_2mortal( newSVnv( x ) ) );
136     PUSHs( sv_2mortal( newSVnv( y ) ) );
137
138 void
139 wxGraphicsPath::Transform (matrix)
140     wxGraphicsMatrix* matrix
141   CODE:
142     THIS->Transform( *matrix );
143
144 #endif