wxPRINT_MODE_STREAM = 4 // Send postscript data into a stream
};
+enum wxPrintBin
+{
+ wxPRINTBIN_DEFAULT,
+
+ wxPRINTBIN_ONLYONE,
+ wxPRINTBIN_LOWER,
+ wxPRINTBIN_MIDDLE,
+ wxPRINTBIN_MANUAL,
+ wxPRINTBIN_ENVELOPE,
+ wxPRINTBIN_ENVMANUAL,
+ wxPRINTBIN_AUTO,
+ wxPRINTBIN_TRACTOR,
+ wxPRINTBIN_SMALLFMT,
+ wxPRINTBIN_LARGEFMT,
+ wxPRINTBIN_LARGECAPACITY,
+ wxPRINTBIN_CASSETTE,
+ wxPRINTBIN_FORMSOURCE,
+
+ wxPRINTBIN_USER,
+};
class wxPrintData : public wxObject {
public:
+ %nokwargs wxPrintData;
wxPrintData();
+ wxPrintData(const wxPrintData& data); // for making copies
+
~wxPrintData();
int GetNoCopies();
bool GetCollate();
int GetOrientation();
- bool Ok();
+ bool IsOk();
+ %pythoncode { Ok = IsOk }
const wxString& GetPrinterName();
bool GetColour();
const wxSize& GetPaperSize();
int GetQuality();
-
+ wxPrintBin GetBin();
+ wxPrintMode GetPrintMode() const;
+
void SetNoCopies(int v);
void SetCollate(bool flag);
void SetOrientation(int orient);
void SetPaperId(wxPaperSize sizeId);
void SetPaperSize(const wxSize& sz);
void SetQuality(int quality);
+ void SetBin(wxPrintBin bin);
+ void SetPrintMode(wxPrintMode printMode);
+
+ wxString GetFilename() const;
+ void SetFilename( const wxString &filename );
+
+ %pythoncode { def __nonzero__(self): return self.IsOk() }
+
+ //char* GetPrivData() const;
+ //int GetPrivDataLen() const;
+ //void SetPrivData( char *privData, int len );
+
+ %extend {
+ PyObject* GetPrivData() {
+ PyObject* data;
+ wxPyBlock_t blocked = wxPyBeginBlockThreads();
+ data = PyString_FromStringAndSize(self->GetPrivData(),
+ self->GetPrivDataLen());
+ wxPyEndBlockThreads(blocked);
+ return data;
+ }
+
+ void SetPrivData(PyObject* data) {
+ if (! PyString_Check(data)) {
+ wxPyBLOCK_THREADS(PyErr_SetString(PyExc_TypeError,
+ "Expected string object"));
+ return /* NULL */ ;
+ }
+
+ wxPyBlock_t blocked = wxPyBeginBlockThreads();
+ self->SetPrivData(PyString_AS_STRING(data), PyString_GET_SIZE(data));
+ wxPyEndBlockThreads(blocked);
+ }
+ }
+
+ // NOTE: These are now inside of #if WXWIN_COMPATIBILITY_2_4, so be
+ // prepared to remove them...
+
// PostScript-specific data
+// WXWIN_COMPATIBILITY_2_4
+#if 0
const wxString& GetPrinterCommand();
const wxString& GetPrinterOptions();
const wxString& GetPreviewCommand();
- const wxString& GetFilename();
const wxString& GetFontMetricPath();
double GetPrinterScaleX();
double GetPrinterScaleY();
long GetPrinterTranslateX();
long GetPrinterTranslateY();
- wxPrintMode GetPrintMode();
-
void SetPrinterCommand(const wxString& command);
void SetPrinterOptions(const wxString& options);
void SetPreviewCommand(const wxString& command);
- void SetFilename(const wxString& filename);
void SetFontMetricPath(const wxString& path);
void SetPrinterScaleX(double x);
void SetPrinterScaleY(double y);
void SetPrinterTranslateX(long x);
void SetPrinterTranslateY(long y);
void SetPrinterTranslation(long x, long y);
- void SetPrintMode(wxPrintMode printMode);
-
- wxOutputStream* GetOutputStream();
- void SetOutputStream(wxOutputStream* outputstream);
+#endif
- %pythoncode { def __nonzero__(self): return self.Ok() }
+ %property(Bin, GetBin, SetBin, doc="See `GetBin` and `SetBin`");
+ %property(Collate, GetCollate, SetCollate, doc="See `GetCollate` and `SetCollate`");
+ %property(Colour, GetColour, SetColour, doc="See `GetColour` and `SetColour`");
+ %property(Duplex, GetDuplex, SetDuplex, doc="See `GetDuplex` and `SetDuplex`");
+ %property(Filename, GetFilename, SetFilename, doc="See `GetFilename` and `SetFilename`");
+ %property(NoCopies, GetNoCopies, SetNoCopies, doc="See `GetNoCopies` and `SetNoCopies`");
+ %property(Orientation, GetOrientation, SetOrientation, doc="See `GetOrientation` and `SetOrientation`");
+ %property(PaperId, GetPaperId, SetPaperId, doc="See `GetPaperId` and `SetPaperId`");
+ %property(PaperSize, GetPaperSize, SetPaperSize, doc="See `GetPaperSize` and `SetPaperSize`");
+ %property(PrintMode, GetPrintMode, SetPrintMode, doc="See `GetPrintMode` and `SetPrintMode`");
+ %property(PrinterName, GetPrinterName, SetPrinterName, doc="See `GetPrinterName` and `SetPrinterName`");
+ %property(PrivData, GetPrivData, SetPrivData, doc="See `GetPrivData` and `SetPrivData`");
+ %property(Quality, GetQuality, SetQuality, doc="See `GetQuality` and `SetQuality`");
};
//---------------------------------------------------------------------------
class wxPageSetupDialogData : public wxObject {
public:
+ %nokwargs wxPageSetupDialogData;
wxPageSetupDialogData();
+ wxPageSetupDialogData(const wxPageSetupDialogData& data); // for making copies
+ wxPageSetupDialogData(const wxPrintData& data);
~wxPageSetupDialogData();
void EnableHelp(bool flag);
void EnableOrientation(bool flag);
void EnablePaper(bool flag);
void EnablePrinter(bool flag);
+
bool GetDefaultMinMargins();
bool GetEnableMargins();
bool GetEnableOrientation();
wxSize GetPaperSize();
wxPrintData& GetPrintData();
-// %addmethods {
-// %new wxPrintData* GetPrintData() {
-// return new wxPrintData(self->GetPrintData()); // force a copy
-// }
-// }
- bool Ok();
+ bool IsOk();
+ %pythoncode { Ok = IsOk }
void SetDefaultInfo(bool flag);
void SetDefaultMinMargins(bool flag);
void SetMinMarginBottomRight(const wxPoint& pt);
void SetPaperId(wxPaperSize id);
void SetPaperSize(const wxSize& size);
+
void SetPrintData(const wxPrintData& printData);
- %pythoncode { def __nonzero__(self): return self.Ok() }
+ // Use paper size defined in this object to set the wxPrintData
+ // paper id
+ void CalculateIdFromPaperSize();
+
+ // Use paper id in wxPrintData to set this object's paper size
+ void CalculatePaperSizeFromId();
+
+ %pythoncode { def __nonzero__(self): return self.IsOk() }
+
+ %property(DefaultInfo, GetDefaultInfo, SetDefaultInfo, doc="See `GetDefaultInfo` and `SetDefaultInfo`");
+ %property(DefaultMinMargins, GetDefaultMinMargins, SetDefaultMinMargins, doc="See `GetDefaultMinMargins` and `SetDefaultMinMargins`");
+
+// %property(EnableHelp, GetEnableHelp, doc="See `GetEnableHelp`");
+// %property(EnableMargins, GetEnableMargins, doc="See `GetEnableMargins`");
+// %property(EnableOrientation, GetEnableOrientation, doc="See `GetEnableOrientation`");
+// %property(EnablePaper, GetEnablePaper, doc="See `GetEnablePaper`");
+// %property(EnablePrinter, GetEnablePrinter, doc="See `GetEnablePrinter`");
+
+ %property(MarginBottomRight, GetMarginBottomRight, SetMarginBottomRight, doc="See `GetMarginBottomRight` and `SetMarginBottomRight`");
+ %property(MarginTopLeft, GetMarginTopLeft, SetMarginTopLeft, doc="See `GetMarginTopLeft` and `SetMarginTopLeft`");
+ %property(MinMarginBottomRight, GetMinMarginBottomRight, SetMinMarginBottomRight, doc="See `GetMinMarginBottomRight` and `SetMinMarginBottomRight`");
+ %property(MinMarginTopLeft, GetMinMarginTopLeft, SetMinMarginTopLeft, doc="See `GetMinMarginTopLeft` and `SetMinMarginTopLeft`");
+ %property(PaperId, GetPaperId, SetPaperId, doc="See `GetPaperId` and `SetPaperId`");
+ %property(PaperSize, GetPaperSize, SetPaperSize, doc="See `GetPaperSize` and `SetPaperSize`");
+ %property(PrintData, GetPrintData, SetPrintData, doc="See `GetPrintData` and `SetPrintData`");
+
};
-class wxPageSetupDialog : public wxDialog {
-public:
- %pythonAppend wxPageSetupDialog "self._setOORInfo(self)"
+// NOTE: Contrary to it's name, this class doesn't derive from wxDialog. It
+// is a facade in front of a platform-specific (native dialog) provided by the
+// wxPrintFactory.
- wxPageSetupDialog(wxWindow* parent, wxPageSetupDialogData* data = NULL);
+MustHaveApp(wxPageSetupDialog);
+class wxPageSetupDialog : public wxObject
+{
+public:
+ wxPageSetupDialog(wxWindow* parent, wxPageSetupDialogData* data = NULL);
+ ~wxPageSetupDialog();
+
wxPageSetupDialogData& GetPageSetupData();
+ wxPageSetupDialogData& GetPageSetupDialogData();
int ShowModal();
+
+ %pythoncode { def Destroy(self): pass }
+
+ %property(PageSetupData, GetPageSetupData, doc="See `GetPageSetupData`");
+ %property(PageSetupDialogData, GetPageSetupDialogData, doc="See `GetPageSetupDialogData`");
+
};
//---------------------------------------------------------------------------
%nokwargs wxPrintDialogData;
wxPrintDialogData();
wxPrintDialogData(const wxPrintData& printData);
+ wxPrintDialogData(const wxPrintDialogData& printData); // for making copies
~wxPrintDialogData();
int GetFromPage() const;
bool GetSelection() const;
bool GetCollate() const;
bool GetPrintToFile() const;
- bool GetSetupDialog() const;
+ // WXWIN_COMPATIBILITY_2_4
+#if 0
+ bool GetSetupDialog() const;
+ void SetSetupDialog(bool flag);
+#endif
void SetFromPage(int v);
void SetToPage(int v);
void SetMinPage(int v);
void SetSelection(bool flag);
void SetCollate(bool flag);
void SetPrintToFile(bool flag);
- void SetSetupDialog(bool flag);
void EnablePrintToFile(bool flag);
void EnableSelection(bool flag);
bool GetEnableHelp() const;
// Is this data OK for showing the print dialog?
- bool Ok() const;
+ bool IsOk() const;
+ %pythoncode { Ok = IsOk }
wxPrintData& GetPrintData();
-// %addmethods {
-// %new wxPrintData* GetPrintData() {
-// return new wxPrintData(self->GetPrintData()); // force a copy
-// }
-// }
void SetPrintData(const wxPrintData& printData);
- %pythoncode { def __nonzero__(self): return self.Ok() }
+ %pythoncode { def __nonzero__(self): return self.IsOk() }
+
+ %property(AllPages, GetAllPages, SetAllPages, doc="See `GetAllPages` and `SetAllPages`");
+ %property(Collate, GetCollate, SetCollate, doc="See `GetCollate` and `SetCollate`");
+// %property(EnableHelp, GetEnableHelp, doc="See `GetEnableHelp`");
+// %property(EnablePageNumbers, GetEnablePageNumbers, doc="See `GetEnablePageNumbers`");
+// %property(EnablePrintToFile, GetEnablePrintToFile, doc="See `GetEnablePrintToFile`");
+// %property(EnableSelection, GetEnableSelection, doc="See `GetEnableSelection`");
+ %property(FromPage, GetFromPage, SetFromPage, doc="See `GetFromPage` and `SetFromPage`");
+ %property(MaxPage, GetMaxPage, SetMaxPage, doc="See `GetMaxPage` and `SetMaxPage`");
+ %property(MinPage, GetMinPage, SetMinPage, doc="See `GetMinPage` and `SetMinPage`");
+ %property(NoCopies, GetNoCopies, SetNoCopies, doc="See `GetNoCopies` and `SetNoCopies`");
+ %property(PrintData, GetPrintData, SetPrintData, doc="See `GetPrintData` and `SetPrintData`");
+ %property(PrintToFile, GetPrintToFile, SetPrintToFile, doc="See `GetPrintToFile` and `SetPrintToFile`");
+ %property(Selection, GetSelection, SetSelection, doc="See `GetSelection` and `SetSelection`");
+ %property(ToPage, GetToPage, SetToPage, doc="See `GetToPage` and `SetToPage`");
};
-class wxPrintDialog : public wxDialog {
-public:
- %pythonAppend wxPrintDialog "self._setOORInfo(self)"
+MustHaveApp(wxPrintDialog);
+
+
+// NOTE: Contrary to it's name, this class doesn't derive from wxDialog. It
+// is a facade in front of a platform-specific (native dialog) provided by the
+// wxPrintFactory.
+
+class wxPrintDialog : public wxObject {
+public:
wxPrintDialog(wxWindow* parent, wxPrintDialogData* data = NULL);
- wxPrintDialogData& GetPrintDialogData();
+ // TODO?: wxPrintDialog(wxWindow *parent, wxPrintData* data);
+
+ ~wxPrintDialog();
+
+ virtual int ShowModal();
+
+ virtual wxPrintDialogData& GetPrintDialogData();
+ virtual wxPrintData& GetPrintData();
%newobject GetPrintDC;
- wxDC* GetPrintDC();
- int ShowModal();
+ virtual wxDC *GetPrintDC();
+
+ %pythoncode { def Destroy(self): pass }
+
+ %property(PrintDC, GetPrintDC, doc="See `GetPrintDC`");
+ %property(PrintData, GetPrintData, doc="See `GetPrintData`");
+ %property(PrintDialogData, GetPrintDialogData, doc="See `GetPrintDialogData`");
};
};
+MustHaveApp(wxPrinter);
+
class wxPrinter : public wxObject {
public:
wxPrinter(wxPrintDialogData* data = NULL);
~wxPrinter();
- void CreateAbortWindow(wxWindow* parent, wxPyPrintout* printout);
- wxPrintDialogData& GetPrintDialogData();
- bool Print(wxWindow *parent, wxPyPrintout *printout, int prompt=True);
- wxDC* PrintDialog(wxWindow *parent);
- void ReportError(wxWindow *parent, wxPyPrintout *printout, const wxString& message);
- bool Setup(wxWindow *parent);
- bool GetAbort();
+ virtual wxWindow *CreateAbortWindow(wxWindow *parent, wxPyPrintout *printout);
+ virtual void ReportError(wxWindow *parent, wxPyPrintout *printout, const wxString& message);
+
+ virtual bool Setup(wxWindow *parent);
+ virtual bool Print(wxWindow *parent, wxPyPrintout *printout, bool prompt = true);
+ virtual wxDC* PrintDialog(wxWindow *parent);
+
+ virtual wxPrintDialogData& GetPrintDialogData() const;
+ bool GetAbort();
static wxPrinterError GetLastError();
+
+ %property(Abort, GetAbort, doc="See `GetAbort`");
+ %property(PrintDialogData, GetPrintDialogData, doc="See `GetPrintDialogData`");
};
//---------------------------------------------------------------------------
-// Custom wxPrintout class that knows how to call python
+// Custom wxPrintout class that knows how to call python, See implementation in
+// include/sx/wxPython/printfw.h
+
%{
+IMPLEMENT_ABSTRACT_CLASS(wxPyPrintout, wxPrintout);
// Since this one would be tough and ugly to do with the Macros...
void wxPyPrintout::GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) {
- bool hadErr = False;
+ bool hadErr = false;
bool found;
- bool blocked = wxPyBeginBlockThreads();
+ wxPyBlock_t blocked = wxPyBeginBlockThreads();
if ((found = wxPyCBH_findCallback(m_myInst, "GetPageInfo"))) {
PyObject* result = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("()"));
if (result && PyTuple_Check(result) && PyTuple_Size(result) == 4) {
val = PyTuple_GetItem(result, 0);
if (PyInt_Check(val)) *minPage = PyInt_AsLong(val);
- else hadErr = True;
+ else hadErr = true;
val = PyTuple_GetItem(result, 1);
if (PyInt_Check(val)) *maxPage = PyInt_AsLong(val);
- else hadErr = True;
+ else hadErr = true;
val = PyTuple_GetItem(result, 2);
if (PyInt_Check(val)) *pageFrom = PyInt_AsLong(val);
- else hadErr = True;
+ else hadErr = true;
val = PyTuple_GetItem(result, 3);
if (PyInt_Check(val)) *pageTo = PyInt_AsLong(val);
- else hadErr = True;
+ else hadErr = true;
}
else
- hadErr = True;
+ hadErr = true;
if (hadErr) {
PyErr_SetString(PyExc_TypeError, "GetPageInfo should return a tuple of 4 integers.");
wxPrintout::GetPageInfo(minPage, maxPage, pageFrom, pageTo);
}
-void wxPyPrintout::base_GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) {
- wxPrintout::GetPageInfo(minPage, maxPage, pageFrom, pageTo);
-}
IMP_PYCALLBACK_BOOL_INTINT(wxPyPrintout, wxPrintout, OnBeginDocument);
%}
+MustHaveApp(wxPyPrintout);
+
// Now define the custom class for SWIGging
-%name(Printout) class wxPyPrintout : public wxObject {
+%rename(Printout) wxPyPrintout;
+class wxPyPrintout : public wxObject {
public:
%pythonAppend wxPyPrintout "self._setCallbackInfo(self, Printout)"
+ %typemap(out) wxPyPrintout*; // turn off this typemap
wxPyPrintout(const wxString& title = wxPyPrintoutTitleStr);
- //~wxPyPrintout(); wxPrintPreview object takes ownership...
+ ~wxPyPrintout();
+ // Turn it back on again
+ %typemap(out) wxPyPrintout* { $result = wxPyMake_wxObject($1, $owner); }
+
void _setCallbackInfo(PyObject* self, PyObject* _class);
void SetIsPreview(bool p);
- bool base_OnBeginDocument(int startPage, int endPage);
- void base_OnEndDocument();
- void base_OnBeginPrinting();
- void base_OnEndPrinting();
- void base_OnPreparePrinting();
- bool base_HasPage(int page);
+ bool OnBeginDocument(int startPage, int endPage);
+ void OnEndDocument();
+ void OnBeginPrinting();
+ void OnEndPrinting();
+ void OnPreparePrinting();
+ bool HasPage(int page);
DocDeclA(
- void, base_GetPageInfo(int *OUTPUT, int *OUTPUT, int *OUTPUT, int *OUTPUT),
- "base_GetPageInfo() -> (minPage, maxPage, pageFrom, pageTo)");
+ void, GetPageInfo(int *OUTPUT, int *OUTPUT, int *OUTPUT, int *OUTPUT),
+ "GetPageInfo() -> (minPage, maxPage, pageFrom, pageTo)");
+
+ %MAKE_BASE_FUNC(Printout, OnBeginDocument);
+ %MAKE_BASE_FUNC(Printout, OnEndDocument);
+ %MAKE_BASE_FUNC(Printout, OnBeginPrinting);
+ %MAKE_BASE_FUNC(Printout, OnEndPrinting);
+ %MAKE_BASE_FUNC(Printout, OnPreparePrinting);
+ %MAKE_BASE_FUNC(Printout, GetPageInfo);
+
+
+ %property(DC, GetDC, SetDC, doc="See `GetDC` and `SetDC`");
+ %property(PPIPrinter, GetPPIPrinter, SetPPIPrinter, doc="See `GetPPIPrinter` and `SetPPIPrinter`");
+ %property(PPIScreen, GetPPIScreen, SetPPIScreen, doc="See `GetPPIScreen` and `SetPPIScreen`");
+ %property(PageSizeMM, GetPageSizeMM, SetPageSizeMM, doc="See `GetPageSizeMM` and `SetPageSizeMM`");
+ %property(PageSizePixels, GetPageSizePixels, SetPageSizePixels, doc="See `GetPageSizePixels` and `SetPageSizePixels`");
+ %property(Title, GetTitle, doc="See `GetTitle`");
};
//---------------------------------------------------------------------------
+MustHaveApp(wxPreviewCanvas);
+
class wxPreviewCanvas: public wxScrolledWindow
{
public:
};
+MustHaveApp(wxPreviewFrame);
+
class wxPreviewFrame : public wxFrame {
public:
+ %disownarg(wxPrintPreview*);
+
%pythonAppend wxPreviewFrame "self._setOORInfo(self)"
-
wxPreviewFrame(wxPrintPreview* preview, wxFrame* parent, const wxString& title,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxDEFAULT_FRAME_STYLE,
const wxString& name = wxPyFrameNameStr);
+ %cleardisown(wxPrintPreview*);
+
void Initialize();
void CreateControlBar();
void CreateCanvas();
wxPreviewControlBar* GetControlBar() const;
+
+ %property(ControlBar, GetControlBar, doc="See `GetControlBar`");
};
wxID_PREVIEW_GOTO
};
+MustHaveApp(wxPreviewControlBar);
+
class wxPreviewControlBar: public wxPanel
{
public:
void OnFirst();
void OnLast();
void OnGoto();
+
+ %property(PrintPreview, GetPrintPreview, doc="See `GetPrintPreview`");
+ %property(ZoomControl, GetZoomControl, SetZoomControl, doc="See `GetZoomControl` and `SetZoomControl`");
};
//---------------------------------------------------------------------------
+MustHaveApp(wxPrintPreview);
+
class wxPrintPreview : public wxObject {
public:
+ %disownarg(wxPyPrintout*);
+
%nokwargs wxPrintPreview;
wxPrintPreview(wxPyPrintout* printout,
wxPyPrintout* printoutForPrinting,
wxPyPrintout* printoutForPrinting,
wxPrintData* data);
+ ~wxPrintPreview();
+
virtual bool SetCurrentPage(int pageNum);
int GetCurrentPage();
wxPyPrintout *GetPrintout();
wxPyPrintout *GetPrintoutForPrinting();
+ %cleardisown(wxPyPrintout*);
+
void SetFrame(wxFrame *frame);
void SetCanvas(wxPreviewCanvas *canvas);
int GetMaxPage();
int GetMinPage();
- bool Ok();
+ bool IsOk();
+ %pythoncode { Ok = IsOk }
void SetOk(bool ok);
virtual bool Print(bool interactive);
virtual void DetermineScaling();
- %pythoncode { def __nonzero__(self): return self.Ok() }
+ %pythoncode { def __nonzero__(self): return self.IsOk() }
+
+ %property(Canvas, GetCanvas, SetCanvas, doc="See `GetCanvas` and `SetCanvas`");
+ %property(CurrentPage, GetCurrentPage, SetCurrentPage, doc="See `GetCurrentPage` and `SetCurrentPage`");
+ %property(Frame, GetFrame, SetFrame, doc="See `GetFrame` and `SetFrame`");
+ %property(MaxPage, GetMaxPage, doc="See `GetMaxPage`");
+ %property(MinPage, GetMinPage, doc="See `GetMinPage`");
+ %property(PrintDialogData, GetPrintDialogData, doc="See `GetPrintDialogData`");
+ %property(Printout, GetPrintout, SetPrintout, doc="See `GetPrintout` and `SetPrintout`");
+ %property(PrintoutForPrinting, GetPrintoutForPrinting, doc="See `GetPrintoutForPrinting`");
+ %property(Zoom, GetZoom, SetZoom, doc="See `GetZoom` and `SetZoom`");
};
%{
-#define DEC_PYCALLBACK_BOOL_PREWINDC(CBNAME) \
- bool CBNAME(wxPreviewCanvas* a, wxDC& b); \
- bool base_##CBNAME(wxPreviewCanvas* a, wxDC& b)
-
-
-#define IMP_PYCALLBACK_BOOL_PREWINDC(CLASS, PCLASS, CBNAME) \
- bool CLASS::CBNAME(wxPreviewCanvas* a, wxDC& b) { \
- bool rval=False; \
- bool found; \
- bool blocked = wxPyBeginBlockThreads(); \
- if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
- PyObject* win = wxPyMake_wxObject(a); \
- PyObject* dc = wxPyMake_wxObject(&b); \
- rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(OO)", win, dc));\
- Py_DECREF(win); \
- Py_DECREF(dc); \
- } \
- wxPyEndBlockThreads(blocked); \
- if (! found) \
- rval = PCLASS::CBNAME(a, b); \
- return rval; \
- } \
- bool CLASS::base_##CBNAME(wxPreviewCanvas* a, wxDC& b) { \
- return PCLASS::CBNAME(a, b); \
- }
+#define DEC_PYCALLBACK_BOOL_PREWINDC(CBNAME) \
+ bool CBNAME(wxPreviewCanvas* a, wxDC& b)
+
+
+#define IMP_PYCALLBACK_BOOL_PREWINDC(CLASS, PCLASS, CBNAME) \
+ bool CLASS::CBNAME(wxPreviewCanvas* a, wxDC& b) { \
+ bool rval=false; \
+ bool found; \
+ wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
+ if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
+ PyObject* win = wxPyMake_wxObject(a,false); \
+ PyObject* dc = wxPyMake_wxObject(&b,false); \
+ rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(OO)", win, dc)); \
+ Py_DECREF(win); \
+ Py_DECREF(dc); \
+ } \
+ wxPyEndBlockThreads(blocked); \
+ if (! found) \
+ rval = PCLASS::CBNAME(a, b); \
+ return rval; \
+ }
{}
wxPyPrintPreview(wxPyPrintout* printout,
wxPyPrintout* printoutForPrinting,
- wxPrintData* data=NULL)
+ wxPrintData* data)
: wxPrintPreview(printout, printoutForPrinting, data)
{}
%}
+MustHaveApp(wxPyPrintPreview);
+
class wxPyPrintPreview : public wxPrintPreview
{
public:
+ %disownarg(wxPyPrintout*);
+
%pythonAppend wxPyPrintPreview "self._setCallbackInfo(self, PyPrintPreview)"
%nokwargs wxPyPrintPreview;
wxPyPrintPreview(wxPyPrintout* printout,
wxPyPrintout* printoutForPrinting,
wxPrintData* data);
+ %cleardisown(wxPyPrintout*);
+
void _setCallbackInfo(PyObject* self, PyObject* _class);
- bool base_SetCurrentPage(int pageNum);
- bool base_PaintPage(wxPreviewCanvas *canvas, wxDC& dc);
- bool base_DrawBlankPage(wxPreviewCanvas *canvas, wxDC& dc);
- bool base_RenderPage(int pageNum);
- void base_SetZoom(int percent);
- bool base_Print(bool interactive);
- void base_DetermineScaling();
+ bool SetCurrentPage(int pageNum);
+ bool PaintPage(wxPreviewCanvas *canvas, wxDC& dc);
+ bool DrawBlankPage(wxPreviewCanvas *canvas, wxDC& dc);
+ bool RenderPage(int pageNum);
+ void SetZoom(int percent);
+ bool Print(bool interactive);
+ void DetermineScaling();
+
+ %MAKE_BASE_FUNC(PyPrintPreview, SetCurrentPage);
+ %MAKE_BASE_FUNC(PyPrintPreview, PaintPage);
+ %MAKE_BASE_FUNC(PyPrintPreview, DrawBlankPage);
+ %MAKE_BASE_FUNC(PyPrintPreview, RenderPage);
+ %MAKE_BASE_FUNC(PyPrintPreview, SetZoom);
+ %MAKE_BASE_FUNC(PyPrintPreview, Print);
+ %MAKE_BASE_FUNC(PyPrintPreview, DetermineScaling);
};
%{
class wxPyPreviewFrame : public wxPreviewFrame
{
- DECLARE_CLASS(wxPyPreviewFrame);
+ DECLARE_CLASS(wxPyPreviewFrame)
public:
wxPyPreviewFrame(wxPrintPreview* preview, wxFrame* parent,
const wxString& title,
%}
+MustHaveApp(wxPyPreviewFrame);
+
class wxPyPreviewFrame : public wxPreviewFrame
{
public:
void SetPreviewCanvas(wxPreviewCanvas* canvas);
void SetControlBar(wxPreviewControlBar* bar);
- void base_Initialize();
- void base_CreateCanvas();
- void base_CreateControlBar();
+ void Initialize();
+ void CreateCanvas();
+ void CreateControlBar();
+
+ %MAKE_BASE_FUNC(PyPreviewFrame, Initialize);
+ %MAKE_BASE_FUNC(PyPreviewFrame, CreateCanvas);
+ %MAKE_BASE_FUNC(PyPreviewFrame, CreateControlBar);
};
%{
class wxPyPreviewControlBar : public wxPreviewControlBar
{
- DECLARE_CLASS(wxPyPreviewControlBar);
+ DECLARE_CLASS(wxPyPreviewControlBar)
public:
wxPyPreviewControlBar(wxPrintPreview *preview,
long buttons,
%}
+MustHaveApp(wxPyPreviewControlBar);
+
class wxPyPreviewControlBar : public wxPreviewControlBar
{
public:
void SetPrintPreview(wxPrintPreview* preview);
- void base_CreateButtons();
- void base_SetZoomControl(int zoom);
-};
+ void CreateButtons();
+ void SetZoomControl(int zoom);
+ %MAKE_BASE_FUNC(PreviewControlBar, CreateButtons);
+ %MAKE_BASE_FUNC(PreviewControlBar, SetZoomControl);
+};
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------