]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_printfw.i
reSWIGged
[wxWidgets.git] / wxPython / src / _printfw.i
index 9c657ceebc44edfea35284d8b9b570400af2fe65..64ff548e78d1fccb73031ceb018b08b81c9d41e5 100644 (file)
@@ -80,6 +80,7 @@ public:
 
     int GetQuality();
     wxPrintBin GetBin();
+    wxPrintMode GetPrintMode() const;
     
     void SetNoCopies(int v);
     void SetCollate(bool flag);
@@ -92,22 +93,29 @@ public:
     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() }
+
+
+    // 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);
@@ -115,12 +123,7 @@ public:
     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() }
 };
 
 //---------------------------------------------------------------------------
@@ -130,6 +133,7 @@ public:
     %nokwargs wxPageSetupDialogData;
     wxPageSetupDialogData();
     wxPageSetupDialogData(const wxPageSetupDialogData& data);  // for making copies
+    wxPageSetupDialogData(const wxPrintData& data); 
     ~wxPageSetupDialogData();
 
     void EnableHelp(bool flag);
@@ -137,6 +141,7 @@ public:
     void EnableOrientation(bool flag);
     void EnablePaper(bool flag);
     void EnablePrinter(bool flag);
+    
     bool GetDefaultMinMargins();
     bool GetEnableMargins();
     bool GetEnableOrientation();
@@ -152,11 +157,6 @@ public:
     wxSize GetPaperSize();
 
     wxPrintData& GetPrintData();
-//     %addmethods {
-//         %new wxPrintData* GetPrintData() {
-//             return new wxPrintData(self->GetPrintData());  // force a copy
-//         }
-//     }
 
     bool Ok();
 
@@ -168,22 +168,34 @@ 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() }
 };
 
 
 
+// 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();
 };
 
@@ -194,7 +206,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;
@@ -206,7 +219,10 @@ public:
     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);
@@ -217,7 +233,6 @@ public:
     void SetSelection(bool flag);
     void SetCollate(bool flag);
     void SetPrintToFile(bool flag);
-    void SetSetupDialog(bool flag);
 
     void EnablePrintToFile(bool flag);
     void EnableSelection(bool flag);
@@ -234,30 +249,34 @@ public:
 
     
     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();
+
 };
 
 
@@ -280,22 +299,27 @@ 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();
 };
 
 
 //---------------------------------------------------------------------------
-// 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) {
@@ -358,7 +382,8 @@ IMP_PYCALLBACK_BOOL_INT(wxPyPrintout, wxPrintout, HasPage);
 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)"
 
@@ -773,7 +798,6 @@ public:
     void base_SetZoomControl(int zoom);
 };
 
-
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 %init %{