switch to pImpl pattern for mac printing

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor 2003-05-19 18:22:03 +00:00
parent a71b82dda9
commit 8a5b9f0807
2 changed files with 114 additions and 4 deletions

View 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:

View File

@ -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