#include "helpers.h"
#include <wx/print.h>
#include <wx/printdlg.h>
+#include <wx/dcps.h>
#include "printfw.h"
%}
-class wxPrintData {
+class wxPrintData : public wxObject {
public:
wxPrintData();
~wxPrintData();
void SetPaperSize(const wxSize& sz);
void SetQuality(wxPrintQuality quality);
-// // 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 SetPrinterScaling(double x, double y);
-// void SetPrinterTranslateX(long x);
-// void SetPrinterTranslateY(long y);
-// void SetPrinterTranslation(long x, long y);
-// void SetPrintMode(wxPrintMode printMode);
+ // 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 SetPrinterScaling(double x, double y);
+ void SetPrinterTranslateX(long x);
+ void SetPrinterTranslateY(long y);
+ void SetPrinterTranslation(long x, long y);
+ void SetPrintMode(wxPrintMode printMode);
};
//----------------------------------------------------------------------
-class wxPageSetupDialogData {
+#ifdef __WXMSW__
+class wxPrinterDC : public wxDC {
+public:
+ wxPrinterDC(const wxPrintData& printData);
+ %name(wxPrinterDC2) wxPrinterDC(const wxString& driver,
+ const wxString& device,
+ const wxString& output,
+ bool interactive = TRUE,
+ int orientation = wxPORTRAIT);
+};
+#endif
+
+//---------------------------------------------------------------------------
+
+class wxPostScriptDC : public wxDC {
+public:
+ wxPostScriptDC(const wxPrintData& printData);
+ %name(wxPostScriptDC2)wxPostScriptDC(const wxString& output,
+ bool interactive = TRUE,
+ wxWindow* parent = NULL);
+
+ wxPrintData& GetPrintData();
+ void SetPrintData(const wxPrintData& data);
+
+ static void SetResolution(int ppi);
+ static int GetResolution();
+};
+
+//---------------------------------------------------------------------------
+
+class wxPageSetupDialogData : public wxObject {
public:
wxPageSetupDialogData();
~wxPageSetupDialogData();
void SetMarginBottomRight(const wxPoint& pt);
void SetMinMarginTopLeft(const wxPoint& pt);
void SetMinMarginBottomRight(const wxPoint& pt);
- void SetPaperId(wxPaperSize& id);
+ void SetPaperId(wxPaperSize id);
void SetPaperSize(const wxSize& size);
void SetPrintData(const wxPrintData& printData);
};
//----------------------------------------------------------------------
-class wxPrintDialogData {
+class wxPrintDialogData : public wxObject {
public:
wxPrintDialogData();
~wxPrintDialogData();
// 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 doSave = wxPyRestoreThread();
- if (m_myInst.findCallback("GetPageInfo")) {
+ wxPyTState* state = wxPyBeginBlockThreads();
+ if ((found = m_myInst.findCallback("GetPageInfo"))) {
PyObject* result = m_myInst.callCallbackObj(Py_BuildValue("()"));
if (result && PyTuple_Check(result) && PyTuple_Size(result) == 4) {
PyObject* val;
}
Py_DECREF(result);
}
- else
+ wxPyEndBlockThreads(state);
+ if (! found)
wxPrintout::GetPageInfo(minPage, maxPage, pageFrom, pageTo);
-
- wxPySaveThread(doSave);
}
void wxPyPrintout::base_GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) {
// Now define the custom class for SWIGging
-%name(wxPrintout) class wxPyPrintout {
+%name(wxPrintout) class wxPyPrintout : public wxObject {
public:
wxPyPrintout(const char* title = "Printout");
- void _setSelf(PyObject* self, PyObject* _class);
- %pragma(python) addtomethod = "__init__:self._setSelf(self, wxPrintout)"
+ void _setCallbackInfo(PyObject* self, PyObject* _class);
+ %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPrintout)"
%addmethods {
void Destroy() { delete self; }
//----------------------------------------------------------------------
-class wxPrinter {
+class wxPrinter : public wxObject {
public:
wxPrinter(wxPrintDialogData* data = NULL);
~wxPrinter();
//----------------------------------------------------------------------
-class wxPrintPreview {
+class wxPrintPreview : public wxObject {
public:
wxPrintPreview(wxPyPrintout* printout, wxPyPrintout* printoutForPrinting, wxPrintData* data=NULL);
// ~wxPrintPreview(); **** ????
class wxPreviewFrame : public wxFrame {
public:
wxPreviewFrame(wxPrintPreview* preview, wxFrame* parent, const wxString& title,
- const wxPoint& pos = wxPyDefaultPosition,
- const wxSize& size = wxPyDefaultSize,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
long style = wxDEFAULT_FRAME_STYLE,
char* name = "frame");
- %pragma(python) addtomethod = "__init__:#wx._StdFrameCallbacks(self)"
+ %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
void Initialize();
};
//----------------------------------------------------------------------
+
+%init %{
+ wxPyPtrTypeMap_Add("wxPrintout", "wxPyPrintout");
+%}
+
//----------------------------------------------------------------------
//----------------------------------------------------------------------