-#if defined(wxUSE_DC_OLD_METHODS)
+#if 1 // The < 2.4 and > 2.5.1.5 way
bool FloodFill(wxCoord x, wxCoord y, const wxColour& col, int style = wxFLOOD_SURFACE);
+ %name(FloodFillPoint) bool FloodFill(const wxPoint& pt, const wxColour& col, int style = wxFLOOD_SURFACE);
+
//bool GetPixel(wxCoord x, wxCoord y, wxColour *col) const;
%extend {
wxColour GetPixel(wxCoord x, wxCoord y) {
self->GetPixel(x, y, &col);
return col;
}
+ wxColour GetPixelPoint(const wxPoint& pt) {
+ wxColour col;
+ self->GetPixel(pt, &col);
+ return col;
+ }
}
+
void DrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2);
+ %name(DrawLinePoint) void DrawLine(const wxPoint& pt1, const wxPoint& pt2);
+
void CrossHair(wxCoord x, wxCoord y);
+ %name(CrossHairPoint) void CrossHair(const wxPoint& pt);
+
void DrawArc(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2, wxCoord xc, wxCoord yc);
+ %name(DrawArcPoint) void DrawArc(const wxPoint& pt1, const wxPoint& pt2, const wxPoint& centre);
+
void DrawCheckMark(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
+ %name(DrawCheckMarkRect) void DrawCheckMark(const wxRect& rect);
+
void DrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h, double sa, double ea);
+ %name(DrawEllipticArcPointSize) void DrawEllipticArc(const wxPoint& pt, const wxSize& sz, double sa, double ea);
+
void DrawPoint(wxCoord x, wxCoord y);
+ %name(DrawPointPoint) void DrawPoint(const wxPoint& pt);
+
void DrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
%name(DrawRectangleRect)void DrawRectangle(const wxRect& rect);
+ %name(DrawRectanglePointSize) void DrawRectangle(const wxPoint& pt, const wxSize& sz);
+
void DrawRoundedRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height, double radius);
+ %name(DrawRoundedRectangleRect) void DrawRoundedRectangle(const wxRect& r, double radius);
+ %name(DrawRoundedRectanglePointSize) void DrawRoundedRectangle(const wxPoint& pt, const wxSize& sz, double radius);
+
void DrawCircle(wxCoord x, wxCoord y, wxCoord radius);
+ %name(DrawCirclePoint) void DrawCircle(const wxPoint& pt, wxCoord radius);
+
void DrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
+ %name(DrawEllipseRect) void DrawEllipse(const wxRect& rect);
+ %name(DrawEllipsePointSize) void DrawEllipse(const wxPoint& pt, const wxSize& sz);
+
void DrawIcon(const wxIcon& icon, wxCoord x, wxCoord y);
+ %name(DrawIconPoint) void DrawIcon(const wxIcon& icon, const wxPoint& pt);
+
void DrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y, bool useMask = False);
+ %name(DrawBitmapPoint) void DrawBitmap(const wxBitmap &bmp, const wxPoint& pt, bool useMask = False);
+
void DrawText(const wxString& text, wxCoord x, wxCoord y);
+ %name(DrawTextPoint) void DrawText(const wxString& text, const wxPoint& pt);
+
void DrawRotatedText(const wxString& text, wxCoord x, wxCoord y, double angle);
+ %name(DrawRotatedTextPoint) void DrawRotatedText(const wxString& text, const wxPoint& pt, double angle);
+
bool Blit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height,
wxDC *source, wxCoord xsrc, wxCoord ysrc,
int rop = wxCOPY, bool useMask = False,
wxCoord xsrcMask = -1, wxCoord ysrcMask = -1);
+ %name(BlitPointSize) bool Blit(const wxPoint& destPt, const wxSize& sz,
+ wxDC *source, const wxPoint& srcPt,
+ int rop = wxCOPY, bool useMask = False,
+ const wxPoint& srcPtMask = wxDefaultPosition);
+ void SetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
+ %name(SetClippingRegionPointSize) void SetClippingRegion(const wxPoint& pt, const wxSize& sz);
+ %name(SetClippingRegionAsRegion) void SetClippingRegion(const wxRegion& region);
+ %name(SetClippingRect) void SetClippingRegion(const wxRect& rect);
-#else // The new way
+#else // The doomed 2.5.1.5
%name(FloodFillXY) bool FloodFill(wxCoord x, wxCoord y, const wxColour& col, int style = wxFLOOD_SURFACE);
bool FloodFill(const wxPoint& pt, const wxColour& col, int style = wxFLOOD_SURFACE);
return col;
}
}
+
%name(DrawLineXY) void DrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2);
void DrawLine(const wxPoint& pt1, const wxPoint& pt2);
int rop = wxCOPY, bool useMask = False,
const wxPoint& srcPtMask = wxDefaultPosition);
+
+ %name(SetClippingRegionXY)void SetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
+ void SetClippingRegion(const wxPoint& pt, const wxSize& sz);
+ %name(SetClippingRect) void SetClippingRegion(const wxRect& rect);
+ %name(SetClippingRegionAsRegion) void SetClippingRegion(const wxRegion& region);
+
#endif
void DrawLines(int points, wxPoint* points_array, wxCoord xoffset = 0, wxCoord yoffset = 0);
wxCoord xoffset = 0, wxCoord yoffset = 0,
int fillStyle = wxODDEVEN_RULE);
- // TODO: Figure out what the start parameter means and devise a
- // good typemap for this
- //void DrawPolyPolygon(int n, int start[], wxPoint points[],
- // wxCoord xoffset = 0, wxCoord yoffset = 0,
- // int fillStyle = wxODDEVEN_RULE)
+ // TODO: Figure out a good typemap for this...
+ // Convert the first 3 args from a sequence of sequences?
+// void DrawPolyPolygon(int n, int count[], wxPoint points[],
+// wxCoord xoffset = 0, wxCoord yoffset = 0,
+// int fillStyle = wxODDEVEN_RULE);
+
// this version puts both optional bitmap and the text into the given
// rectangle and aligns is as specified by alignment parameter; it also
// will emphasize the character with the given index if it is != -1 and
virtual void SetPalette(const wxPalette& palette);
- // clipping region
- // ---------------
-
- %name(SetClippingRegionXY)void SetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
- void SetClippingRegion(const wxPoint& pt, const wxSize& sz);
- %name(SetClippingRect) void SetClippingRegion(const wxRect& rect);
- %name(SetClippingRegionAsRegion) void SetClippingRegion(const wxRegion& region);
-
virtual void DestroyClippingRegion();
DocDeclA(
DocDeclAStr(
void, GetTextExtent(const wxString& string, wxCoord *OUTPUT, wxCoord *OUTPUT),
"GetTextExtent(wxString string) -> (width, height)",
- "Get the width and height of the text using the current font.\n"
- "Only works for single line strings.");
+ "Get the width and height of the text using the current font. Only
+works for single line strings.", "");
+
DocDeclAStrName(
void, GetTextExtent(const wxString& string,
wxCoord *OUTPUT, wxCoord *OUTPUT, wxCoord *OUTPUT, wxCoord* OUTPUT,
wxFont* font = NULL),
"GetFullTextExtent(wxString string, Font font=None) ->\n (width, height, descent, externalLeading)",
- "Get the width, height, decent and leading of the text using the current or specified font.\n"
- "Only works for single line strings.",
+ "Get the width, height, decent and leading of the text using the
+current or specified font. Only works for single line strings.", "",
GetFullTextExtent);
wxCoord *OUTPUT, wxCoord *OUTPUT, wxCoord *OUTPUT,
wxFont *font = NULL),
"GetMultiLineTextExtent(wxString string, Font font=None) ->\n (width, height, descent, externalLeading)",
- "Get the width, height, decent and leading of the text using the current or specified font.\n"
- "Works for single as well as multi-line strings.");
+ "Get the width, height, decent and leading of the text using the
+current or specified font. Works for single as well as multi-line
+strings.", "");
+
+ %extend {
+ wxArrayInt GetPartialTextExtents(const wxString& text) {
+ wxArrayInt widths;
+ self->GetPartialTextExtents(text, widths);
+ return widths;
+ }
+ }
+
// size and resolution
// -------------------
- DocStr(GetSize, "Get the DC size in device units.");
+ DocStr(GetSize, "Get the DC size in device units.", "");
wxSize GetSize();
DocDeclAName(
void, GetSize( int *OUTPUT, int *OUTPUT ),
GetSizeTuple);
- DocStr(GetSizeMM, "Get the DC size in milimeters.");
+ DocStr(GetSizeMM, "Get the DC size in milimeters.", "");
wxSize GetSizeMM() const;
DocDeclAName(
void, GetSizeMM( int *OUTPUT, int *OUTPUT ) const,
GetLogicalOriginTuple);
virtual void SetLogicalOrigin(wxCoord x, wxCoord y);
+ %extend {
+ void SetLogicalOriginPoint(const wxPoint& point) {
+ self->SetLogicalOrigin(point.x, point.y);
+ }
+ }
-
+
wxPoint GetDeviceOrigin() const;
DocDeclAName(
void, GetDeviceOrigin(wxCoord *OUTPUT, wxCoord *OUTPUT) const,
GetDeviceOriginTuple);
virtual void SetDeviceOrigin(wxCoord x, wxCoord y);
+ %extend {
+ void SetDeviceOriginPoint(const wxPoint& point) {
+ self->SetDeviceOrigin(point.x, point.y);
+ }
+ }
virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp);
// ------------
virtual void CalcBoundingBox(wxCoord x, wxCoord y);
+ %extend {
+ void CalcBoundingBoxPoint(const wxPoint& point) {
+ self->CalcBoundingBox(point.x, point.y);
+ }
+ }
+
void ResetBoundingBox();
// Get the final bounding box of the PostScript or Metafile picture.
%pythoncode { def __nonzero__(self): return self.Ok() };
+#ifdef __WXMSW__
+ long GetHDC();
+#endif
+
%extend { // See drawlist.cpp for impplementaion of these...
PyObject* _DrawPointList(PyObject* pyCoords, PyObject* pyPens, PyObject* pyBrushes)
//---------------------------------------------------------------------------
%newgroup
+MustHaveApp(wxMemoryDC);
+
class wxMemoryDC : public wxDC {
public:
wxMemoryDC();
//---------------------------------------------------------------------------
%newgroup
-enum
-{
- // this is more efficient and hence default
- wxBUFFER_DC_OVERWRITE_BG = 0,
- // preserve the old background: more time consuming
- wxBUFFER_DC_PRESERVE_BG = 1,
+%{
+#include <wx/dcbuffer.h>
+%}
- // flags used by default
- wxBUFFER_DC_DEFAULT = wxBUFFER_DC_OVERWRITE_BG
-};
+MustHaveApp(wxBufferedDC);
class wxBufferedDC : public wxMemoryDC
{
public:
- %pythonAppend wxBufferedDC( wxDC *dc, const wxBitmap &buffer )
+ %pythonAppend wxBufferedDC
"self._dc = args[0] # save a ref so the other dc will not be deleted before self";
- %pythonAppend wxBufferedDC( wxDC *dc, const wxSize &area, int flags = wxBUFFER_DC_DEFAULT )
- "val._dc = args[0] # save a ref so the other dc will not be deleted before self";
%nokwargs wxBufferedDC;
// Construct a wxBufferedDC with an internal buffer of 'area'
// (where area is usually something like the size of the window
// being buffered)
- wxBufferedDC( wxDC *dc, const wxSize &area, int flags = wxBUFFER_DC_DEFAULT );
+ wxBufferedDC( wxDC *dc, const wxSize &area );
+
// TODO: Keep this one too?
- %name(BufferedDCInternalBuffer) wxBufferedDC( wxDC *dc, const wxSize &area, int flags = wxBUFFER_DC_DEFAULT );
+ %pythonAppend wxBufferedDC( wxDC *dc, const wxSize &area )
+ "val._dc = args[0] # save a ref so the other dc will not be deleted before self";
+ %name(BufferedDCInternalBuffer) wxBufferedDC( wxDC *dc, const wxSize &area );
+
+
+ // The buffer is blit to the real DC when the BufferedDC is destroyed.
+ ~wxBufferedDC();
+
// 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
};
+
+MustHaveApp(wxBufferedPaintDC);
+
+// Creates a double buffered wxPaintDC, optionally allowing the
+// user to specify their own buffer to use.
class wxBufferedPaintDC : public wxBufferedDC
{
public:
- %nokwargs wxBufferedPaintDC;
-
- wxBufferedPaintDC( wxWindow *window, const wxBitmap &buffer );
-
- // this ctor creates a bitmap of the size of the window for buffering
- wxBufferedPaintDC(wxWindow *window, int flags = wxBUFFER_DC_DEFAULT);
+ // If no bitmap is supplied by the user, a temporary one will be created.
+ wxBufferedPaintDC( wxWindow *window, const wxBitmap &buffer = wxNullBitmap );
};
//---------------------------------------------------------------------------
%newgroup
+MustHaveApp(wxScreenDC);
+
class wxScreenDC : public wxDC {
public:
wxScreenDC();
//---------------------------------------------------------------------------
%newgroup
+MustHaveApp(wxClientDC);
+
class wxClientDC : public wxDC {
public:
wxClientDC(wxWindow* win);
//---------------------------------------------------------------------------
%newgroup
+MustHaveApp(wxPaintDC);
+
class wxPaintDC : public wxDC {
public:
wxPaintDC(wxWindow* win);
//---------------------------------------------------------------------------
%newgroup
+MustHaveApp(wxWindowDC);
+
class wxWindowDC : public wxDC {
public:
wxWindowDC(wxWindow* win);
//---------------------------------------------------------------------------
%newgroup
+MustHaveApp(wxMirrorDC);
+
class wxMirrorDC : public wxDC
{
public:
#include <wx/dcps.h>
%}
+MustHaveApp(wxPostScriptDC);
+
class wxPostScriptDC : public wxDC {
public:
wxPostScriptDC(const wxPrintData& printData);
%newgroup
-#ifdef __WXMSW__
+MustHaveApp(wxMetaFile);
+MustHaveApp(wxMetaFileDC);
+
+
+#if defined(__WXMSW__) || defined(__WXMAC__)
%{
#include <wx/metafile.h>
int GetWidth();
int GetHeight();
+#ifdef __WXMSW__
const wxString& GetFileName() const;
-
+#endif
+
%pythoncode { def __nonzero__(self): return self.Ok() }
};
//---------------------------------------------------------------------------
+MustHaveApp(wxPrinterDC);
+
#if defined(__WXMSW__) || defined(__WXMAC__)
class wxPrinterDC : public wxDC {
// compatible with the DC Draw methods in 2.4. See also wxPython/_wx.py.
+#if 0
+
%define MAKE_OLD_DC_CLASS(classname)
%pythoncode {
class classname##_old(classname):
MAKE_OLD_DC_CLASS(MetaFileDC);
MAKE_OLD_DC_CLASS(PrinterDC);
+#endif
//---------------------------------------------------------------------------