///////////////////////////////////////////////////////////////////////////// // Name: _pen.i // Purpose: SWIG interface for wxPen // // Author: Robin Dunn // // Created: 7-July-1997 // RCS-ID: $Id$ // Copyright: (c) 2003 by Total Control Software // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// // Not a %module //--------------------------------------------------------------------------- // wxDash is a signed char, byte is unsigned char... %typemap(in) (int dashes, wxDash* dashes_array ) { $1 = PyList_Size($input); $2 = (wxDash*)byte_LIST_helper($input); if ($2 == NULL) SWIG_fail; } %typemap(freearg) (int dashes, wxDash* dashes_array ) { if ($2) delete [] $2; } //--------------------------------------------------------------------------- %newgroup class wxPen : public wxGDIObject { public: wxPen(wxColour& colour, int width=1, int style=wxSOLID); ~wxPen(); int GetCap(); wxColour GetColour(); int GetJoin(); int GetStyle(); int GetWidth(); bool Ok(); void SetCap(int cap_style); void SetColour(wxColour& colour); void SetJoin(int join_style); void SetStyle(int style); void SetWidth(int width); void SetDashes(int dashes, wxDash* dashes_array); //int GetDashes(wxDash **dashes); %extend { PyObject* GetDashes() { wxDash* dashes; int count = self->GetDashes(&dashes); wxPyBeginBlockThreads(); PyObject* retval = PyList_New(0); for (int x=0; x<count; x++) PyList_Append(retval, PyInt_FromLong(dashes[x])); wxPyEndBlockThreads(); return retval; } } %extend { bool __eq__(const wxPen* other) { return other ? (*self == *other) : False; } bool __ne__(const wxPen* other) { return other ? (*self != *other) : True; } } #ifndef __WXMAC__ // wxDash* GetDash() const; int GetDashCount() const; #endif #ifdef __WXMSW__ wxBitmap* GetStipple(); void SetStipple(wxBitmap& stipple); #endif %pythoncode { def __nonzero__(self): return self.Ok() } }; // The list of ints for the dashes needs to exist for the life of the pen // so we make it part of the class to save it. See pyclasses.h %{ wxPyPen::~wxPyPen() { if (m_dash) delete [] m_dash; } void wxPyPen::SetDashes(int nb_dashes, const wxDash *dash) { if (m_dash) delete [] m_dash; m_dash = new wxDash[nb_dashes]; for (int i=0; i<nb_dashes; i++) { m_dash[i] = dash[i]; } wxPen::SetDashes(nb_dashes, m_dash); } %} class wxPyPen : public wxPen { public: wxPyPen(wxColour& colour, int width=1, int style=wxSOLID); ~wxPyPen(); void SetDashes(int dashes, wxDash* dashes_array); }; // wxPyPen is aliased to wxPen %pythoncode { Pen = PyPen }; //---------------------------------------------------------------------------