]> git.saurik.com Git - wxWidgets.git/commitdiff
switch to pImpl pattern for mac printing
authorStefan Csomor <csomor@advancedconcepts.ch>
Mon, 19 May 2003 18:22:03 +0000 (18:22 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Mon, 19 May 2003 18:22:03 +0000 (18:22 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/cmndata.h
include/wx/mac/private/print.h [new file with mode: 0644]

index 45984bfb4c0602ea79cc1af57cc1f8b58d6510f4..fd68bc4c2a28f6d5ed48a6e5b2520f79ea9b8349 100644 (file)
@@ -138,6 +138,12 @@ private:
  * Encapsulates printer information (not printer dialog information)
  */
 
+#ifdef __WXMAC__
+
+class wxNativePrintData ;
+
+#endif
+
 class WXDLLEXPORT wxPrintData: public wxObject
 {
 public:
@@ -209,7 +215,6 @@ public:
 #elif defined(__WXMAC__)
   void ConvertToNative();
   void ConvertFromNative();
-  void ValidateOrCreateNative() ;
 #endif
 
 public:
@@ -217,9 +222,7 @@ public:
     void*           m_devMode;
     void*           m_devNames;
 #elif defined(__WXMAC__)
-    void*           m_macPageFormat ;
-    void*           m_macPrintSettings ;
-    void*                      m_macPrintSession ;
+    wxNativePrintData* m_nativePrintData ;
 #endif
 
 private:
diff --git a/include/wx/mac/private/print.h b/include/wx/mac/private/print.h
new file mode 100644 (file)
index 0000000..d406494
--- /dev/null
@@ -0,0 +1,107 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        print.h
+// Purpose:     private implementation for printing on MacOS
+// Author:      Stefan Csomor
+// Modified by:
+// Created:     03/02/99
+// RCS-ID:      $Id: 
+// Copyright:   (c) Stefan Csomor
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_MAC_PRIVATE_PRINT_H_
+#define _WX_MAC_PRIVATE_PRINT_H_
+
+#include "wx/cmndata.h"
+#include "wx/mac/private.h"
+
+#if TARGET_CARBON && !defined(__DARWIN__)
+#  include <PMApplication.h>
+#endif
+
+#ifndef __DARWIN__
+#  include "Printing.h"
+#endif
+
+#if TARGET_CARBON 
+#if !PM_USE_SESSION_APIS
+#error "only Carbon Printing Session API is supported"
+#endif
+#endif
+
+class wxNativePrintData
+{
+public :
+                            wxNativePrintData() {}
+    virtual                 ~wxNativePrintData() {}
+    
+    virtual void            TransferFrom( wxPrintData * ) = 0 ;
+    virtual void            TransferTo( wxPrintData * ) = 0 ;
+    
+    virtual void            TransferFrom( wxPageSetupDialogData * ) = 0 ;
+    virtual void            TransferTo( wxPageSetupDialogData * ) = 0 ;
+    
+    virtual void            TransferFrom( wxPrintDialogData * ) = 0 ;
+    virtual void            TransferTo( wxPrintDialogData * ) = 0 ;
+    
+    virtual void            CopyFrom( wxNativePrintData * ) = 0;
+    virtual int             ShowPrintDialog() = 0 ;
+    virtual int             ShowPageSetupDialog() = 0 ;
+   
+    static wxNativePrintData* Create() ;
+} ;
+
+#if TARGET_CARBON
+
+class wxMacCarbonPrintData : public wxNativePrintData 
+{
+public :
+                            wxMacCarbonPrintData() ;
+                            ~wxMacCarbonPrintData() ;
+                            
+    virtual void            TransferFrom( wxPrintData * ) ;
+    virtual void            TransferTo( wxPrintData * )  ;
+    
+    virtual void            TransferFrom( wxPageSetupDialogData * )  ;
+    virtual void            TransferTo( wxPageSetupDialogData * ) ;
+    
+    virtual void            TransferFrom( wxPrintDialogData * )  ;
+    virtual void            TransferTo( wxPrintDialogData * ) ;
+    
+    virtual void            CopyFrom( wxNativePrintData * ) ;
+    virtual int             ShowPrintDialog() ;
+    virtual int             ShowPageSetupDialog() ;
+private :
+    virtual void            ValidateOrCreate() ;
+public :
+    PMPrintSession                     m_macPrintSession ;
+    PMPageFormat            m_macPageFormat ;
+    PMPrintSettings         m_macPrintSettings ;
+} ;
+
+#else
+
+class wxMacClassicPrintData : public wxNativePrintData
+{
+public :
+                            wxMacClassicPrintData() ;
+                            ~wxMacClassicPrintData() ;
+    virtual void            TransferFrom( wxPrintData * ) ;
+    virtual void            TransferTo( wxPrintData * )  ;
+    virtual void            TransferFrom( wxPageSetupDialogData * ) ;
+    virtual void            TransferTo( wxPageSetupDialogData * ) ;
+    virtual void            TransferFrom( wxPrintDialogData * )  ;
+    virtual void            TransferTo( wxPrintDialogData * ) ;
+    virtual void            CopyFrom( wxNativePrintData * ) ;
+    virtual int             ShowPrintDialog() ;
+    virtual int             ShowPageSetupDialog() ;
+private :
+    virtual void            ValidateOrCreate() ;
+public :
+    THPrint                 m_macPrintSettings ;
+} ;
+
+#endif
+
+#endif