-
-class wxPyPen : public wxPen {
-public:
- wxPyPen(wxColour& colour, int width=1, int style=wxSOLID);
- ~wxPyPen();
-
- void SetDashes(int LCOUNT, wxDash* choices);
-};
-
-
-
-
-class wxPenList : public wxObject {
-public:
-
- void AddPen(wxPen* pen);
- wxPen* FindOrCreatePen(const wxColour& colour, int width, int style);
- void RemovePen(wxPen* pen);
-
- int GetCount();
-};
-
-
-
-//----------------------------------------------------------------------
-
-class wxBrush : public wxGDIObject {
-public:
- wxBrush(const wxColour& colour, int style=wxSOLID);
- ~wxBrush();
-
- wxColour GetColour();
- wxBitmap * GetStipple();
- int GetStyle();
- bool Ok();
- void SetColour(wxColour &colour);
- void SetStipple(wxBitmap& bitmap);
- void SetStyle(int style);
-};
-
-
-class wxBrushList : public wxObject {
-public:
-
- void AddBrush(wxBrush *brush);
- wxBrush * FindOrCreateBrush(const wxColour& colour, int style);
- void RemoveBrush(wxBrush *brush);
-
- int GetCount();
-};
-
-//----------------------------------------------------------------------
-
-
-class wxDC : public wxObject {
-public:
-// wxDC(); **** abstract base class, can't instantiate.
- ~wxDC();
-
- void BeginDrawing();
-
-// %name(BlitXY)
- bool Blit(wxCoord xdest, wxCoord ydest,
- wxCoord width, wxCoord height,
- wxDC *source, wxCoord xsrc, wxCoord ysrc,
- int logicalFunc = wxCOPY, int useMask = FALSE);
-// bool Blit(const wxPoint& destPt, const wxSize& sz,
-// wxDC *source, const wxPoint& srcPt,
-// int logicalFunc = wxCOPY, int useMask = FALSE);
-
- void Clear();
- void CrossHair(wxCoord x, wxCoord y);
- void DestroyClippingRegion();
- wxCoord DeviceToLogicalX(wxCoord x);
- wxCoord DeviceToLogicalXRel(wxCoord x);
- wxCoord DeviceToLogicalY(wxCoord y);
- wxCoord DeviceToLogicalYRel(wxCoord y);
- void DrawArc(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2, wxCoord xc, wxCoord yc);
- void DrawCircle(wxCoord x, wxCoord y, wxCoord radius);
- void DrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
- void DrawEllipticArc(wxCoord x, wxCoord y, wxCoord width, wxCoord height, wxCoord start, wxCoord end);
- void DrawIcon(const wxIcon& icon, wxCoord x, wxCoord y);
-
- void DrawLabel(const wxString& text, const wxRect& rect,
- int alignment = wxALIGN_LEFT | wxALIGN_TOP,
- int indexAccel = -1);
-
- %addmethods {
- wxRect DrawImageLabel(const wxString& text,
- const wxBitmap& image,
- const wxRect& rect,
- int alignment = wxALIGN_LEFT | wxALIGN_TOP,
- int indexAccel = -1) {
- wxRect rv;
- self->DrawLabel(text, image, rect, alignment, indexAccel, &rv);
- return rv;
- }
- }
-
- void DrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2);
- void DrawLines(int PCOUNT, wxPoint* points, wxCoord xoffset=0, wxCoord yoffset=0);
- void DrawPolygon(int PCOUNT, wxPoint* points, wxCoord xoffset=0, wxCoord yoffset=0,
- int fill_style=wxODDEVEN_RULE);
- void DrawPoint(wxCoord x, wxCoord y);
- void DrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
- %name(DrawRectangleRect)void DrawRectangle(const wxRect& rect);
- void DrawRotatedText(const wxString& text, wxCoord x, wxCoord y, double angle);
- void DrawRoundedRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height, wxCoord radius=20);
- void DrawSpline(int PCOUNT, wxPoint* points);
- void DrawText(const wxString& text, wxCoord x, wxCoord y);
- void EndDoc();
- void EndDrawing();
- void EndPage();
- bool FloodFill(wxCoord x, wxCoord y, const wxColour& colour, int style=wxFLOOD_SURFACE);
- wxBrush GetBackground();
- wxBrush GetBrush();
- wxCoord GetCharHeight();
- wxCoord GetCharWidth();
- void GetClippingBox(wxCoord *OUTPUT, wxCoord *OUTPUT,
- wxCoord *OUTPUT, wxCoord *OUTPUT);
- wxFont GetFont();
- int GetLogicalFunction();
- void GetLogicalScale(double *OUTPUT, double *OUTPUT);
- int GetMapMode();
- bool GetOptimization();
- wxPen GetPen();
- %addmethods {
- %new wxColour* GetPixel(wxCoord x, wxCoord y) {
- wxColour* wc = new wxColour();
- self->GetPixel(x, y, wc);
- return wc;
- }
- }
- %name(GetSizeTuple)void GetSize(int* OUTPUT, int* OUTPUT);
- wxSize GetSize();
- wxSize GetSizeMM();
- wxColour GetTextBackground();
- void GetTextExtent(const wxString& string, wxCoord *OUTPUT, wxCoord *OUTPUT);
- %name(GetFullTextExtent)void GetTextExtent(const wxString& string,
- wxCoord *OUTPUT, wxCoord *OUTPUT, wxCoord *OUTPUT, wxCoord* OUTPUT,
- const wxFont* font = NULL);
- void GetMultiLineTextExtent(const wxString& text, wxCoord *OUTPUT, wxCoord *OUTPUT, wxCoord *OUTPUT,
- wxFont *font = NULL);
- wxColour GetTextForeground();
- void GetUserScale(double *OUTPUT, double *OUTPUT);
- wxCoord LogicalToDeviceX(wxCoord x);
- wxCoord LogicalToDeviceXRel(wxCoord x);
- wxCoord LogicalToDeviceY(wxCoord y);
- wxCoord LogicalToDeviceYRel(wxCoord y);
- wxCoord MaxX();
- wxCoord MaxY();
- wxCoord MinX();
- wxCoord MinY();
- bool Ok();
- void SetDeviceOrigin(wxCoord x, wxCoord y);
- void SetBackground(const wxBrush& brush);
- void SetBackgroundMode(int mode);
- void SetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
- %name(SetClippingRegionAsRegion) void SetClippingRegion(const wxRegion& region);
- %name(SetClippingRect) void SetClippingRegion(const wxRect& rect);
- void SetPalette(const wxPalette& colourMap);
- void SetBrush(const wxBrush& brush);
- void SetFont(const wxFont& font);
- void SetLogicalFunction(int function);
- void SetLogicalScale(double x, double y);
- void SetMapMode(int mode);
- void SetOptimization(bool optimize);
- void SetPen(const wxPen& pen);
- void SetTextBackground(const wxColour& colour);
- void SetTextForeground(const wxColour& colour);
- void SetUserScale(double x_scale, double y_scale);
- bool StartDoc(const wxString& message);
- void StartPage();
-
-
-
- void DrawBitmap(const wxBitmap& bitmap, wxCoord x, wxCoord y,
- int useMask = FALSE);
-
- bool CanDrawBitmap();
- bool CanGetTextExtent();
- int GetDepth();
- wxSize GetPPI();
-
- void GetLogicalOrigin(int *OUTPUT, int *OUTPUT);
- void SetLogicalOrigin(int x, int y);
- void GetDeviceOrigin(int *OUTPUT, int *OUTPUT);
- void SetAxisOrientation(bool xLeftRight, bool yBottomUp);
-
- void CalcBoundingBox(int x, int y);
- void ResetBoundingBox();
-
- %addmethods {
- void GetBoundingBox(int* OUTPUT, int* OUTPUT, int* OUTPUT, int* OUTPUT);
- // See below for implementation
- }
-
-#ifdef __WXMSW__
- long GetHDC();
-#endif
-
-
- %addmethods { // See drawlist.cpp for impplementaion of these...
-
- PyObject* _DrawPointList(PyObject* pyCoords, PyObject* pyPens, PyObject* pyBrushes)
- {
- return wxPyDrawXXXList(*self, wxPyDrawXXXPoint, pyCoords, pyPens, pyBrushes);
- }
-
- PyObject* _DrawLineList(PyObject* pyCoords, PyObject* pyPens, PyObject* pyBrushes)
- {
- return wxPyDrawXXXList(*self, wxPyDrawXXXLine, pyCoords, pyPens, pyBrushes);
- }
-
- PyObject* _DrawRectangleList(PyObject* pyCoords, PyObject* pyPens, PyObject* pyBrushes)
- {
- return wxPyDrawXXXList(*self, wxPyDrawXXXRectangle, pyCoords, pyPens, pyBrushes);
- }
-
- PyObject* _DrawEllipseList(PyObject* pyCoords, PyObject* pyPens, PyObject* pyBrushes)
- {
- return wxPyDrawXXXList(*self, wxPyDrawXXXEllipse, pyCoords, pyPens, pyBrushes);
- }
-
- PyObject* _DrawPolygonList(PyObject* pyCoords, PyObject* pyPens, PyObject* pyBrushes)
- {
- return wxPyDrawXXXList(*self, wxPyDrawXXXPolygon, pyCoords, pyPens, pyBrushes);
- }
-
- PyObject* _DrawTextList(PyObject* textList, PyObject* pyPoints,
- PyObject* foregroundList, PyObject* backgroundList) {
- return wxPyDrawTextList(*self, textList, pyPoints, foregroundList, backgroundList);
- }
- }
-
- %pragma(python) addtoclass = "
- def DrawPointList(self, points, pens=None):
- if pens is None:
- pens = []
- elif isinstance(pens, wxPenPtr):
- pens = [pens]
- elif len(pens) != len(points):
- raise ValueError('points and pens must have same length')
- return self._DrawPointList(points, pens, [])
-
-
- def DrawLineList(self, lines, pens=None):
- if pens is None:
- pens = []
- elif isinstance(pens, wxPenPtr):
- pens = [pens]
- elif len(pens) != len(lines):
- raise ValueError('lines and pens must have same length')
- return self._DrawLineList(lines, pens, [])
-
-
- def DrawRectangleList(self, rectangles, pens=None, brushes=None):
- if pens is None:
- pens = []
- elif isinstance(pens, wxPenPtr):
- pens = [pens]
- elif len(pens) != len(rectangles):
- raise ValueError('rectangles and pens must have same length')
- if brushes is None:
- brushes = []
- elif isinstance(brushes, wxBrushPtr):
- brushes = [brushes]
- elif len(brushes) != len(rectangles):
- raise ValueError('rectangles and brushes must have same length')
- return self._DrawRectangleList(rectangles, pens, brushes)
-
-
- def DrawEllipseList(self, ellipses, pens=None, brushes=None):
- if pens is None:
- pens = []
- elif isinstance(pens, wxPenPtr):
- pens = [pens]
- elif len(pens) != len(ellipses):
- raise ValueError('ellipses and pens must have same length')
- if brushes is None:
- brushes = []
- elif isinstance(brushes, wxBrushPtr):
- brushes = [brushes]
- elif len(brushes) != len(ellipses):
- raise ValueError('ellipses and brushes must have same length')
- return self._DrawEllipseList(ellipses, pens, brushes)
-
-
- def DrawPolygonList(self, polygons, pens=None, brushes=None):
- ## Note: This does not currently support fill style or offset
- ## you can always use the non-List version if need be.
- ## I really would like to support fill-style, however,
- ## but wxODDEVEN_RULE does not appear to be defined at the Python level
- ## [It's in wx.py... --Robin]
- if pens is None:
- pens = []
- elif isinstance(pens, wxPenPtr):
- pens = [pens]
- elif len(pens) != len(polygons):
- raise ValueError('polygons and pens must have same length')
- if brushes is None:
- brushes = []
- elif isinstance(brushes, wxBrushPtr):
- brushes = [brushes]
- elif len(brushes) != len(polygons):
- raise ValueError('polygons and brushes must have same length')
- return self._DrawPolygonList(polygons, pens, brushes)
-
-
- def DrawTextList(self, textList, coords, foregrounds = None, backgrounds = None, fonts = None):
- ## NOTE: this does not currently support changing the font
- ## Make sure you set Background mode to wxSolid (DC.SetBackgroundMode)
- ## If you want backgounds to do anything.
- if type(textList) == type(''):
- textList = [textList]
- elif len(textList) != len(coords):
- raise ValueError('textlist and coords must have same length')
- if foregrounds is None:
- foregrounds = []
- elif isinstance(foregrounds, wxColourPtr):
- foregrounds = [foregrounds]
- elif len(foregrounds) != len(coords):
- raise ValueError('foregrounds and coords must have same length')
- if backgrounds is None:
- backgrounds = []
- elif isinstance(backgrounds, wxColourPtr):
- backgrounds = [backgrounds]
- elif len(backgrounds) != len(coords):
- raise ValueError('backgrounds and coords must have same length')
- return self._DrawTextList(textList, coords, foregrounds, backgrounds)
-"
-
-
-};
-
-
-
-%{
-static void wxDC_GetBoundingBox(wxDC* dc, int* x1, int* y1, int* x2, int* y2) {
- *x1 = dc->MinX();
- *y1 = dc->MinY();
- *x2 = dc->MaxX();
- *y2 = dc->MaxY();
-}
-%}
-
-//----------------------------------------------------------------------
-
-class wxMemoryDC : public wxDC {
-public:
- wxMemoryDC();
-
- void SelectObject(const wxBitmap& bitmap);
-}
-
-%new wxMemoryDC* wxMemoryDCFromDC(wxDC* oldDC);
-%{ // Alternate 'constructor'
- wxMemoryDC* wxMemoryDCFromDC(wxDC* oldDC) {
- return new wxMemoryDC(oldDC);
- }
-%}
-
-
-//---------------------------------------------------------------------------
-
-class wxBufferedDC : public wxMemoryDC {
-public:
- // Construct a wxBufferedDC using a user supplied buffer.
- wxBufferedDC( wxDC *dc, const wxBitmap &buffer );
-
- // Construct a wxBufferedDC with an internal buffer of 'area'
- // (where area is usually something like the size of the window
- // being buffered)
- %name(wxBufferedDCInternalBuffer)wxBufferedDC( wxDC *dc, const wxSize &area );
-
- // Blits the buffer to the dc, and detaches the dc from
- // the buffer. Usually called in the dtor or by the dtor
- // of derived classes if the BufferedDC must blit before
- // the derived class (which may own the dc it's blitting
- // to) is destroyed.
- void UnMask();
-
-
- %pragma(python) addtomethod =
- "__init__:self._dc = _args[0] # save a ref so the other dc won't be deleted before self"
- %pragma(python) addtomethod =
- "wxBufferedDCInternalBuffer:val._dc = _args[0] # save a ref so the other dc won't be deleted before self"
-};
-
-
-class wxBufferedPaintDC : public wxBufferedDC
-{
-public:
- wxBufferedPaintDC( wxWindow *window, const wxBitmap &buffer = wxNullBitmap );
-};
-
-//---------------------------------------------------------------------------
-
-class wxScreenDC : public wxDC {
-public:
- wxScreenDC();
-
- %name(StartDrawingOnTopWin) bool StartDrawingOnTop(wxWindow* window);
- bool StartDrawingOnTop(wxRect* rect = NULL);
- bool EndDrawingOnTop();
-};
-
-//---------------------------------------------------------------------------
-
-class wxClientDC : public wxDC {
-public:
- wxClientDC(wxWindow* win);
-};
-
-//---------------------------------------------------------------------------
-
-class wxPaintDC : public wxDC {
-public:
- wxPaintDC(wxWindow* win);
-};
-
-//---------------------------------------------------------------------------
-
-class wxWindowDC : public wxDC {
-public:
- wxWindowDC(wxWindow* win);
-};
-