]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_printfw.i
Add support for launching APPL bundles with wxExecute
[wxWidgets.git] / wxPython / src / _printfw.i
index 115834daf27eb06a81cc19c62f54b1d0eb631057..1faf7eebc0a9d0672ba4403fef337cb53eec65f4 100644 (file)
@@ -100,6 +100,33 @@ public:
 
     %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...
@@ -133,6 +160,7 @@ public:
     %nokwargs wxPageSetupDialogData;
     wxPageSetupDialogData();
     wxPageSetupDialogData(const wxPageSetupDialogData& data);  // for making copies
+    wxPageSetupDialogData(const wxPrintData& data); 
     ~wxPageSetupDialogData();
 
     void EnableHelp(bool flag);
@@ -140,6 +168,7 @@ public:
     void EnableOrientation(bool flag);
     void EnablePaper(bool flag);
     void EnablePrinter(bool flag);
+    
     bool GetDefaultMinMargins();
     bool GetEnableMargins();
     bool GetEnableOrientation();
@@ -155,11 +184,6 @@ public:
     wxSize GetPaperSize();
 
     wxPrintData& GetPrintData();
-//     %addmethods {
-//         %new wxPrintData* GetPrintData() {
-//             return new wxPrintData(self->GetPrintData());  // force a copy
-//         }
-//     }
 
     bool Ok();
 
@@ -171,8 +195,16 @@ public:
     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() }
 };
 
@@ -201,7 +233,8 @@ class wxPrintDialogData : public wxObject {
 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;
@@ -320,7 +353,7 @@ void wxPyPrintout::GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *p
     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) {
@@ -588,7 +621,7 @@ public:
     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);                                \