]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_printfw.i
Added some info panels that show size and colour attributes about the widget
[wxWidgets.git] / wxPython / src / _printfw.i
index d872d1f2e2415b53ac435742d68a7c53a4a9753b..e81578d220f794d98dce0f689d65e55418df2416 100644 (file)
 %{
 #include "wx/wxPython/printfw.h"
 
 %{
 #include "wx/wxPython/printfw.h"
 
-    static const wxChar* wxPrintoutTitleStr = wxT("Printout");
-    DECLARE_DEF_STRING(PrintoutTitleStr);
-    static const wxChar* wxPreviewCanvasNameStr = wxT("previewcanvas");
-    DECLARE_DEF_STRING(PreviewCanvasNameStr);
-
 %}
 
 %}
 
+MAKE_CONST_WXSTRING2(PrintoutTitleStr, wxT("Printout"));
+MAKE_CONST_WXSTRING2(PreviewCanvasNameStr, wxT("previewcanvas"));
+
 
 //---------------------------------------------------------------------------
 
 
 //---------------------------------------------------------------------------
 
@@ -34,7 +32,8 @@ enum wxPrintMode
     wxPRINT_MODE_NONE =    0,
     wxPRINT_MODE_PREVIEW = 1,   // Preview in external application
     wxPRINT_MODE_FILE =    2,   // Print to file
     wxPRINT_MODE_NONE =    0,
     wxPRINT_MODE_PREVIEW = 1,   // Preview in external application
     wxPRINT_MODE_FILE =    2,   // Print to file
-    wxPRINT_MODE_PRINTER = 3    // Send to printer
+    wxPRINT_MODE_PRINTER = 3,   // Send to printer
+    wxPRINT_MODE_STREAM = 4     // Send postscript data into a stream 
 };
 
 
 };
 
 
@@ -56,7 +55,7 @@ public:
     wxPaperSize GetPaperId();
     const wxSize& GetPaperSize();
 
     wxPaperSize GetPaperId();
     const wxSize& GetPaperSize();
 
-    wxPrintQuality GetQuality();
+    int GetQuality();
 
     void SetNoCopies(int v);
     void SetCollate(bool flag);
 
     void SetNoCopies(int v);
     void SetCollate(bool flag);
@@ -67,7 +66,7 @@ public:
     void SetDuplex(wxDuplexMode duplex);
     void SetPaperId(wxPaperSize sizeId);
     void SetPaperSize(const wxSize& sz);
     void SetDuplex(wxDuplexMode duplex);
     void SetPaperId(wxPaperSize sizeId);
     void SetPaperSize(const wxSize& sz);
-    void SetQuality(wxPrintQuality quality);
+    void SetQuality(int quality);
 
     // PostScript-specific data
     const wxString& GetPrinterCommand();
 
     // PostScript-specific data
     const wxString& GetPrinterCommand();
@@ -94,6 +93,9 @@ public:
     void SetPrinterTranslation(long x, long y);
     void SetPrintMode(wxPrintMode printMode);
 
     void SetPrinterTranslation(long x, long y);
     void SetPrintMode(wxPrintMode printMode);
 
+    wxOutputStream* GetOutputStream();
+    void SetOutputStream(wxOutputStream* outputstream);
+
     %pythoncode { def __nonzero__(self): return self.Ok() }
 };
 
     %pythoncode { def __nonzero__(self): return self.Ok() }
 };
 
@@ -149,7 +151,7 @@ public:
 
 class wxPageSetupDialog : public wxDialog {
 public:
 
 class wxPageSetupDialog : public wxDialog {
 public:
-    %addtofunc wxPageSetupDialog         "self._setOORInfo(self)"
+    %pythonAppend wxPageSetupDialog         "self._setOORInfo(self)"
 
     wxPageSetupDialog(wxWindow* parent, wxPageSetupDialogData* data = NULL);
 
 
     wxPageSetupDialog(wxWindow* parent, wxPageSetupDialogData* data = NULL);
 
@@ -162,7 +164,9 @@ public:
 
 class wxPrintDialogData : public wxObject {
 public:
 
 class wxPrintDialogData : public wxObject {
 public:
+    %nokwargs wxPrintDialogData;
     wxPrintDialogData();
     wxPrintDialogData();
+    wxPrintDialogData(const wxPrintData& printData);
     ~wxPrintDialogData();
 
     int GetFromPage() const;
     ~wxPrintDialogData();
 
     int GetFromPage() const;
@@ -215,7 +219,7 @@ public:
 
 class wxPrintDialog : public wxDialog {
 public:
 
 class wxPrintDialog : public wxDialog {
 public:
-    %addtofunc wxPrintDialog         "self._setOORInfo(self)"
+    %pythonAppend wxPrintDialog         "self._setOORInfo(self)"
 
     wxPrintDialog(wxWindow* parent, wxPrintDialogData* data = NULL);
 
 
     wxPrintDialog(wxWindow* parent, wxPrintDialogData* data = NULL);
 
@@ -246,7 +250,7 @@ public:
 
     void CreateAbortWindow(wxWindow* parent, wxPyPrintout* printout);
     wxPrintDialogData& GetPrintDialogData();
 
     void CreateAbortWindow(wxWindow* parent, wxPyPrintout* printout);
     wxPrintDialogData& GetPrintDialogData();
-    bool Print(wxWindow *parent, wxPyPrintout *printout, int prompt=TRUE);
+    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);
     wxDC* PrintDialog(wxWindow *parent);
     void ReportError(wxWindow *parent, wxPyPrintout *printout, const wxString& message);
     bool Setup(wxWindow *parent);
@@ -263,10 +267,10 @@ public:
 
 // Since this one would be tough and ugly to do with the Macros...
 void wxPyPrintout::GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) {
 
 // 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 found;
 
-    wxPyBeginBlockThreads();
+    bool 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) {
     if ((found = wxPyCBH_findCallback(m_myInst, "GetPageInfo"))) {
         PyObject* result = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("()"));
         if (result && PyTuple_Check(result) && PyTuple_Size(result) == 4) {
@@ -274,22 +278,22 @@ void wxPyPrintout::GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *p
 
             val = PyTuple_GetItem(result, 0);
             if (PyInt_Check(val))    *minPage = PyInt_AsLong(val);
 
             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);
 
             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);
 
             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);
 
             val = PyTuple_GetItem(result, 3);
             if (PyInt_Check(val))    *pageTo = PyInt_AsLong(val);
-            else hadErr = TRUE;
+            else hadErr = True;
         }
         else
         }
         else
-            hadErr = TRUE;
+            hadErr = True;
 
         if (hadErr) {
             PyErr_SetString(PyExc_TypeError, "GetPageInfo should return a tuple of 4 integers.");
 
         if (hadErr) {
             PyErr_SetString(PyExc_TypeError, "GetPageInfo should return a tuple of 4 integers.");
@@ -297,7 +301,7 @@ void wxPyPrintout::GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *p
         }
         Py_DECREF(result);
     }
         }
         Py_DECREF(result);
     }
-    wxPyEndBlockThreads();
+    wxPyEndBlockThreads(blocked);
     if (! found)
         wxPrintout::GetPageInfo(minPage, maxPage, pageFrom, pageTo);
 }
     if (! found)
         wxPrintout::GetPageInfo(minPage, maxPage, pageFrom, pageTo);
 }
@@ -322,7 +326,7 @@ IMP_PYCALLBACK_BOOL_INT(wxPyPrintout, wxPrintout, HasPage);
 // Now define the custom class for SWIGging
 %name(Printout) class wxPyPrintout  : public wxObject {
 public:
 // Now define the custom class for SWIGging
 %name(Printout) class wxPyPrintout  : public wxObject {
 public:
-    %addtofunc wxPyPrintout   "self._setCallbackInfo(self, Printout)"
+    %pythonAppend wxPyPrintout   "self._setCallbackInfo(self, Printout)"
 
     wxPyPrintout(const wxString& title = wxPyPrintoutTitleStr);
     //~wxPyPrintout();      wxPrintPreview object takes ownership...
 
     wxPyPrintout(const wxString& title = wxPyPrintoutTitleStr);
     //~wxPyPrintout();      wxPrintPreview object takes ownership...
@@ -334,17 +338,25 @@ public:
     wxDC* GetDC();
     void SetDC(wxDC *dc);
 
     wxDC* GetDC();
     void SetDC(wxDC *dc);
 
-    void GetPageSizePixels(int *OUTPUT, int *OUTPUT);
     void SetPageSizePixels(int w, int  h);
     void SetPageSizePixels(int w, int  h);
+    DocDeclA(
+        void, GetPageSizePixels(int *OUTPUT, int *OUTPUT),
+        "GetPageSizePixels() -> (w, h)");
 
     void SetPageSizeMM(int w, int  h);
 
     void SetPageSizeMM(int w, int  h);
-    void GetPageSizeMM(int *OUTPUT, int *OUTPUT);
+    DocDeclA(
+        void, GetPageSizeMM(int *OUTPUT, int *OUTPUT),
+        "GetPageSizeMM() -> (w, h)");
     
     void SetPPIScreen(int x, int y);
     
     void SetPPIScreen(int x, int y);
-    void GetPPIScreen(int *OUTPUT, int *OUTPUT);
+    DocDeclA(
+        void, GetPPIScreen(int *OUTPUT, int *OUTPUT),
+        "GetPPIScreen() -> (x,y)");
     
     void SetPPIPrinter(int x, int y);
     
     void SetPPIPrinter(int x, int y);
-    void GetPPIPrinter(int *OUTPUT, int *OUTPUT);
+    DocDeclA(
+        void, GetPPIPrinter(int *OUTPUT, int *OUTPUT),
+        "GetPPIPrinter() -> (x,y)");
 
     bool IsPreview();
     void SetIsPreview(bool p);
 
     bool IsPreview();
     void SetIsPreview(bool p);
@@ -355,8 +367,10 @@ public:
     void base_OnBeginPrinting();
     void base_OnEndPrinting();
     void base_OnPreparePrinting();
     void base_OnBeginPrinting();
     void base_OnEndPrinting();
     void base_OnPreparePrinting();
-    void base_GetPageInfo(int *OUTPUT, int *OUTPUT, int *OUTPUT, int *OUTPUT);
     bool base_HasPage(int page);
     bool base_HasPage(int page);
+    DocDeclA(
+        void, base_GetPageInfo(int *OUTPUT, int *OUTPUT, int *OUTPUT, int *OUTPUT),
+        "base_GetPageInfo() -> (minPage, maxPage, pageFrom, pageTo)");
 };
 
 //---------------------------------------------------------------------------
 };
 
 //---------------------------------------------------------------------------
@@ -366,7 +380,7 @@ public:
 class wxPreviewCanvas: public wxScrolledWindow
 {
 public:
 class wxPreviewCanvas: public wxScrolledWindow
 {
 public:
-    %addtofunc wxPreviewCanvas   "self._self._setOORInfo(self)"
+    %pythonAppend wxPreviewCanvas   "self._setOORInfo(self)"
 
     wxPreviewCanvas(wxPrintPreview *preview,
                     wxWindow *parent,
 
     wxPreviewCanvas(wxPrintPreview *preview,
                     wxWindow *parent,
@@ -379,7 +393,7 @@ public:
 
 class wxPreviewFrame : public wxFrame {
 public:
 
 class wxPreviewFrame : public wxFrame {
 public:
-    %addtofunc wxPreviewFrame   "self._self._setOORInfo(self)"
+    %pythonAppend wxPreviewFrame   "self._setOORInfo(self)"
 
     wxPreviewFrame(wxPrintPreview* preview, wxFrame* parent, const wxString& title,
                    const wxPoint& pos = wxDefaultPosition,
 
     wxPreviewFrame(wxPrintPreview* preview, wxFrame* parent, const wxString& title,
                    const wxPoint& pos = wxDefaultPosition,
@@ -419,7 +433,7 @@ enum {
 class wxPreviewControlBar: public wxPanel
 {
 public:
 class wxPreviewControlBar: public wxPanel
 {
 public:
-    %addtofunc wxPreviewControlBar   "self._self._setOORInfo(self)"
+    %pythonAppend wxPreviewControlBar   "self._setOORInfo(self)"
 
     wxPreviewControlBar(wxPrintPreview *preview,
                         long buttons,
 
     wxPreviewControlBar(wxPrintPreview *preview,
                         long buttons,
@@ -446,9 +460,13 @@ public:
 
 class wxPrintPreview : public wxObject {
 public:
 
 class wxPrintPreview : public wxObject {
 public:
+    %nokwargs wxPrintPreview;
     wxPrintPreview(wxPyPrintout* printout,
                    wxPyPrintout* printoutForPrinting,
     wxPrintPreview(wxPyPrintout* printout,
                    wxPyPrintout* printoutForPrinting,
-                   wxPrintData* data=NULL);
+                   wxPrintDialogData *data=NULL);
+    wxPrintPreview(wxPyPrintout* printout,
+                  wxPyPrintout* printoutForPrinting,
+                  wxPrintData* data);
 
     virtual bool SetCurrentPage(int pageNum);
     int GetCurrentPage();
 
     virtual bool SetCurrentPage(int pageNum);
     int GetCurrentPage();
@@ -507,9 +525,9 @@ public:
 
 #define IMP_PYCALLBACK_BOOL_PREWINDC(CLASS, PCLASS, CBNAME)                     \
     bool CLASS::CBNAME(wxPreviewCanvas* a, wxDC& b) {                           \
 
 #define IMP_PYCALLBACK_BOOL_PREWINDC(CLASS, PCLASS, CBNAME)                     \
     bool CLASS::CBNAME(wxPreviewCanvas* a, wxDC& b) {                           \
-        bool rval=FALSE;                                                        \
+        bool rval=False;                                                        \
         bool found;                                                             \
         bool found;                                                             \
-        wxPyBeginBlockThreads();                                                \
+        bool blocked = wxPyBeginBlockThreads();                                                \
         if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) {                \
             PyObject* win = wxPyMake_wxObject(a);                               \
             PyObject* dc  = wxPyMake_wxObject(&b);                              \
         if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) {                \
             PyObject* win = wxPyMake_wxObject(a);                               \
             PyObject* dc  = wxPyMake_wxObject(&b);                              \
@@ -517,7 +535,7 @@ public:
             Py_DECREF(win);                                                     \
             Py_DECREF(dc);                                                      \
         }                                                                       \
             Py_DECREF(win);                                                     \
             Py_DECREF(dc);                                                      \
         }                                                                       \
-        wxPyEndBlockThreads();                                                  \
+        wxPyEndBlockThreads(blocked);                                                  \
         if (! found)                                                            \
             rval = PCLASS::CBNAME(a, b);                                        \
         return rval;                                                            \
         if (! found)                                                            \
             rval = PCLASS::CBNAME(a, b);                                        \
         return rval;                                                            \
@@ -533,6 +551,11 @@ class wxPyPrintPreview : public wxPrintPreview
 {
     DECLARE_CLASS(wxPyPrintPreview)
 public:
 {
     DECLARE_CLASS(wxPyPrintPreview)
 public:
+    wxPyPrintPreview(wxPyPrintout* printout,
+                     wxPyPrintout* printoutForPrinting,
+                     wxPrintDialogData* data=NULL)
+        : wxPrintPreview(printout, printoutForPrinting, data)
+    {}
     wxPyPrintPreview(wxPyPrintout* printout,
                      wxPyPrintout* printoutForPrinting,
                      wxPrintData* data=NULL)
     wxPyPrintPreview(wxPyPrintout* printout,
                      wxPyPrintout* printoutForPrinting,
                      wxPrintData* data=NULL)
@@ -572,11 +595,14 @@ IMP_PYCALLBACK_VOID_        (wxPyPrintPreview, wxPrintPreview, DetermineScaling)
 class wxPyPrintPreview : public wxPrintPreview
 {
 public:
 class wxPyPrintPreview : public wxPrintPreview
 {
 public:
-    %addtofunc wxPyPrintPreview   "self._setCallbackInfo(self, PyPrintPreview)"
-
+    %pythonAppend wxPyPrintPreview   "self._setCallbackInfo(self, PyPrintPreview)"
+    %nokwargs wxPyPrintPreview;
+    wxPyPrintPreview(wxPyPrintout* printout,
+                     wxPyPrintout* printoutForPrinting,
+                     wxPrintDialogData* data=NULL);
     wxPyPrintPreview(wxPyPrintout* printout,
                      wxPyPrintout* printoutForPrinting,
     wxPyPrintPreview(wxPyPrintout* printout,
                      wxPyPrintout* printoutForPrinting,
-                     wxPrintData* data=NULL);
+                     wxPrintData* data);
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
     
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
     
@@ -627,7 +653,7 @@ IMP_PYCALLBACK_VOID_(wxPyPreviewFrame, wxPreviewFrame, CreateControlBar);
 class wxPyPreviewFrame : public wxPreviewFrame
 {
 public:
 class wxPyPreviewFrame : public wxPreviewFrame
 {
 public:
-    %addtofunc wxPyPreviewFrame "self._setCallbackInfo(self, PyPreviewFrame); self._setOORInfo(self)"
+    %pythonAppend wxPyPreviewFrame "self._setCallbackInfo(self, PyPreviewFrame); self._setOORInfo(self)"
 
     wxPyPreviewFrame(wxPrintPreview* preview, wxFrame* parent,
                      const wxString& title,
 
     wxPyPreviewFrame(wxPrintPreview* preview, wxFrame* parent,
                      const wxString& title,
@@ -681,7 +707,7 @@ IMP_PYCALLBACK_VOID_INT(wxPyPreviewControlBar, wxPreviewControlBar, SetZoomContr
 class wxPyPreviewControlBar : public wxPreviewControlBar
 {
 public:
 class wxPyPreviewControlBar : public wxPreviewControlBar
 {
 public:
-    %addtofunc wxPyPreviewControlBar   "self._setCallbackInfo(self, PyPreviewControlBar); self._setOORInfo(self)"
+    %pythonAppend wxPyPreviewControlBar   "self._setCallbackInfo(self, PyPreviewControlBar); self._setOORInfo(self)"
 
     wxPyPreviewControlBar(wxPrintPreview *preview,
                           long buttons,
 
     wxPyPreviewControlBar(wxPrintPreview *preview,
                           long buttons,