From 8a5b9f0807f4370037cd7a90c1dcf81f07c86dbc Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Mon, 19 May 2003 18:22:03 +0000 Subject: [PATCH] switch to pImpl pattern for mac printing git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/cmndata.h | 11 ++-- include/wx/mac/private/print.h | 107 +++++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+), 4 deletions(-) create mode 100644 include/wx/mac/private/print.h diff --git a/include/wx/cmndata.h b/include/wx/cmndata.h index 45984bfb4c..fd68bc4c2a 100644 --- a/include/wx/cmndata.h +++ b/include/wx/cmndata.h @@ -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 index 0000000000..d406494902 --- /dev/null +++ b/include/wx/mac/private/print.h @@ -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 +#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 -- 2.45.2