int GetQuality();
wxPrintBin GetBin();
+ wxPrintMode GetPrintMode() const;
void SetNoCopies(int v);
void SetCollate(bool flag);
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.Ok() }
+
+ //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
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);
-
- %pythoncode { def __nonzero__(self): return self.Ok() }
};
//---------------------------------------------------------------------------
%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();
void SetMinMarginBottomRight(const wxPoint& pt);
void SetPaperId(wxPaperSize id);
void SetPaperSize(const wxSize& size);
+
void SetPrintData(const wxPrintData& printData);
+ // 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.Ok() }
};
+// 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.
+
MustHaveApp(wxPageSetupDialog);
-class wxPageSetupDialog : public wxDialog {
+class wxPageSetupDialog : public wxObject
+{
public:
- %pythonAppend wxPageSetupDialog "self._setOORInfo(self)"
-
wxPageSetupDialog(wxWindow* parent, wxPageSetupDialogData* data = NULL);
wxPageSetupDialogData& GetPageSetupData();
+ wxPageSetupDialogData& GetPageSetupDialogData();
int ShowModal();
};
public:
%nokwargs wxPrintDialogData;
wxPrintDialogData();
- wxPrintDialogData(const wxPrintData& printData); // for making copies
+ wxPrintDialogData(const wxPrintData& printData);
+ wxPrintDialogData(const wxPrintDialogData& printData); // for making copies
~wxPrintDialogData();
int GetFromPage() const;
bool GetSelection() const;
bool GetCollate() const;
bool GetPrintToFile() const;
+
+ // WXWIN_COMPATIBILITY_2_4
bool GetSetupDialog() const;
+ void SetSetupDialog(bool flag);
void SetFromPage(int v);
void SetToPage(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);
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() }
};
+
MustHaveApp(wxPrintDialog);
-class wxPrintDialog : public wxDialog {
-public:
- %pythonAppend wxPrintDialog "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.
+
+class wxPrintDialog : public wxObject {
+public:
wxPrintDialog(wxWindow* parent, wxPrintDialogData* data = NULL);
- wxPrintDialogData& GetPrintDialogData();
+ // TODO?: wxPrintDialog(wxWindow *parent, wxPrintData* data);
+
+ virtual int ShowModal();
+
+ virtual wxPrintDialogData& GetPrintDialogData();
+ virtual wxPrintData& GetPrintData();
%newobject GetPrintDC;
- wxDC* GetPrintDC();
- int ShowModal();
+ virtual wxDC *GetPrintDC();
+
};
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();
};
//---------------------------------------------------------------------------
-// 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 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) {
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)"
bool CLASS::CBNAME(wxPreviewCanvas* a, wxDC& b) { \
bool rval=false; \
bool found; \
- bool blocked = wxPyBeginBlockThreads(); \
+ wxPyBlock_t blocked = wxPyBeginBlockThreads(); \
if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \
PyObject* win = wxPyMake_wxObject(a,false); \
PyObject* dc = wxPyMake_wxObject(&b,false); \
void base_SetZoomControl(int zoom);
};
-
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
%init %{