X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7bcb11d30764df47144189e164f53d8171ed4a63..bd44dee6986e5c9f706e842b9e969798e130099f:/include/wx/msw/dcprint.h diff --git a/include/wx/msw/dcprint.h b/include/wx/msw/dcprint.h index 3dcf523f55..64ed3c7d53 100644 --- a/include/wx/msw/dcprint.h +++ b/include/wx/msw/dcprint.h @@ -1,54 +1,82 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: dcprint.h +// Name: wx/msw/dcprint.h // Purpose: wxPrinterDC class // Author: Julian Smart // Modified by: // Created: 01/02/97 // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_DCPRINT_H_ -#define _WX_DCPRINT_H_ +#ifndef _WX_MSW_DCPRINT_H_ +#define _WX_MSW_DCPRINT_H_ -#ifdef __GNUG__ -#pragma interface "dcprint.h" -#endif +#if wxUSE_PRINTING_ARCHITECTURE -#include "wx/dc.h" +#include "wx/dcprint.h" #include "wx/cmndata.h" +#include "wx/msw/dc.h" -class WXDLLEXPORT wxPrinterDC: public wxDC +// ------------------------------------------------------------------------ +// wxPrinterDCImpl +// + +class WXDLLIMPEXP_CORE wxPrinterDCImpl : public wxMSWDCImpl { public: -DECLARE_CLASS(wxPrinterDC) + // Create from print data + wxPrinterDCImpl( wxPrinterDC *owner, const wxPrintData& data ); + wxPrinterDCImpl( wxPrinterDC *owner, WXHDC theDC ); - // Create a printer DC (obsolete function: use wxPrintData version now) - wxPrinterDC(const wxString& driver, const wxString& device, const wxString& output, bool interactive = TRUE, int orientation = wxPORTRAIT); + // override some base class virtuals + virtual bool StartDoc(const wxString& message); + virtual void EndDoc(); + virtual void StartPage(); + virtual void EndPage(); - // Create from print data - wxPrinterDC(const wxPrintData& data); + virtual wxRect GetPaperRect() const; - wxPrinterDC(WXHDC theDC); +protected: + virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y, + bool useMask = false); + virtual bool DoBlit(wxCoord xdest, wxCoord ydest, + wxCoord width, wxCoord height, + wxDC *source, wxCoord xsrc, wxCoord ysrc, + int rop = wxCOPY, bool useMask = false, wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord); + virtual void DoGetSize(int *w, int *h) const + { + GetDeviceSize(w, h); + } - ~wxPrinterDC(void); - bool StartDoc(const wxString& message); - void EndDoc(void); - void StartPage(void); - void EndPage(void); + // init the dc + void Init(); -protected: wxPrintData m_printData; -}; -// Gets an HDC for the default printer configuration -// WXHDC WXDLLEXPORT wxGetPrinterDC(int orientation); +private: + DECLARE_CLASS(wxPrinterDCImpl) + DECLARE_NO_COPY_CLASS(wxPrinterDCImpl) +}; // Gets an HDC for the specified printer configuration -WXHDC WXDLLEXPORT wxGetPrinterDC(const wxPrintData& data); +WXHDC WXDLLIMPEXP_CORE wxGetPrinterDC(const wxPrintData& data); + +// ------------------------------------------------------------------------ +// wxPrinterDCromHDC +// + +class WXDLLIMPEXP_CORE wxPrinterDCFromHDC: public wxPrinterDC +{ +public: + wxPrinterDCFromHDC( WXHDC theDC ) + : wxPrinterDC(new wxPrinterDCImpl(this, theDC)) + { + } +}; + +#endif // wxUSE_PRINTING_ARCHITECTURE -#endif - // _WX_DCPRINT_H_ +#endif // _WX_MSW_DCPRINT_H_