]> git.saurik.com Git - wxWidgets.git/blame - wxPython/src/_pen.i
PS can output to ta stream (but still need to make output streams more
[wxWidgets.git] / wxPython / src / _pen.i
CommitLineData
d14a1e28
RD
1/////////////////////////////////////////////////////////////////////////////
2// Name: _pen.i
3// Purpose: SWIG interface for wxPen
4//
5// Author: Robin Dunn
6//
7// Created: 7-July-1997
8// RCS-ID: $Id$
9// Copyright: (c) 2003 by Total Control Software
10// Licence: wxWindows license
11/////////////////////////////////////////////////////////////////////////////
12
13// Not a %module
14
15
16//---------------------------------------------------------------------------
17
18// wxDash is a signed char, byte is unsigned char...
19%typemap(in) (int dashes, wxDash* dashes_array ) {
20 $1 = PyList_Size($input);
21 $2 = (wxDash*)byte_LIST_helper($input);
22 if ($2 == NULL) SWIG_fail;
23}
24%typemap(freearg) (int dashes, wxDash* dashes_array ) {
25 if ($2) delete [] $2;
26}
27
28//---------------------------------------------------------------------------
29%newgroup
30
31
32class wxPen : public wxGDIObject {
33public:
34 wxPen(wxColour& colour, int width=1, int style=wxSOLID);
35 ~wxPen();
36
37 int GetCap();
38 wxColour GetColour();
39 int GetJoin();
40 int GetStyle();
41 int GetWidth();
42
43 bool Ok();
44
45 void SetCap(int cap_style);
46 void SetColour(wxColour& colour);
47 void SetJoin(int join_style);
48 void SetStyle(int style);
49 void SetWidth(int width);
50
51 void SetDashes(int dashes, wxDash* dashes_array);
52 //int GetDashes(wxDash **dashes);
53 %extend {
54 PyObject* GetDashes() {
55 wxDash* dashes;
56 int count = self->GetDashes(&dashes);
57 wxPyBeginBlockThreads();
58 PyObject* retval = PyList_New(0);
59 for (int x=0; x<count; x++)
60 PyList_Append(retval, PyInt_FromLong(dashes[x]));
61 wxPyEndBlockThreads();
62 return retval;
63 }
64 }
b159c5c4
RD
65
66 bool operator==(const wxPen& pen) const;
d14a1e28 67
9fd4be55
RD
68#ifndef __WXMAC__
69// wxDash* GetDash() const;
3f0ff538 70 int GetDashCount() const;
9fd4be55
RD
71#endif
72
d14a1e28
RD
73#ifdef __WXMSW__
74 wxBitmap* GetStipple();
75 void SetStipple(wxBitmap& stipple);
76#endif
77
78 %pythoncode { def __nonzero__(self): return self.Ok() }
79};
80
81
82// The list of ints for the dashes needs to exist for the life of the pen
83// so we make it part of the class to save it. See pyclasses.h
84
85%{
86wxPyPen::~wxPyPen()
87{
88 if (m_dash)
89 delete [] m_dash;
90}
91
92void wxPyPen::SetDashes(int nb_dashes, const wxDash *dash)
93{
94 if (m_dash)
95 delete [] m_dash;
96 m_dash = new wxDash[nb_dashes];
97 for (int i=0; i<nb_dashes; i++) {
98 m_dash[i] = dash[i];
99 }
100 wxPen::SetDashes(nb_dashes, m_dash);
101}
102%}
103
104
105class wxPyPen : public wxPen {
106public:
107 wxPyPen(wxColour& colour, int width=1, int style=wxSOLID);
108 ~wxPyPen();
109
110 void SetDashes(int dashes, wxDash* dashes_array);
111};
112
113// wxPyPen is aliased to wxPen
114%pythoncode { Pen = PyPen };
115
116//---------------------------------------------------------------------------