dcprint.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/msw/dcprint.h
  3. // Purpose: wxPrinterDC class
  4. // Author: Julian Smart
  5. // Modified by:
  6. // Created: 01/02/97
  7. // Copyright: (c) Julian Smart
  8. // Licence: wxWindows licence
  9. /////////////////////////////////////////////////////////////////////////////
  10. #ifndef _WX_MSW_DCPRINT_H_
  11. #define _WX_MSW_DCPRINT_H_
  12. #if wxUSE_PRINTING_ARCHITECTURE
  13. #include "wx/dcprint.h"
  14. #include "wx/cmndata.h"
  15. #include "wx/msw/dc.h"
  16. // ------------------------------------------------------------------------
  17. // wxPrinterDCImpl
  18. //
  19. class WXDLLIMPEXP_CORE wxPrinterDCImpl : public wxMSWDCImpl
  20. {
  21. public:
  22. // Create from print data
  23. wxPrinterDCImpl( wxPrinterDC *owner, const wxPrintData& data );
  24. wxPrinterDCImpl( wxPrinterDC *owner, WXHDC theDC );
  25. // override some base class virtuals
  26. virtual bool StartDoc(const wxString& message);
  27. virtual void EndDoc();
  28. virtual void StartPage();
  29. virtual void EndPage();
  30. virtual wxRect GetPaperRect() const;
  31. protected:
  32. virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y,
  33. bool useMask = false);
  34. virtual bool DoBlit(wxCoord xdest, wxCoord ydest,
  35. wxCoord width, wxCoord height,
  36. wxDC *source, wxCoord xsrc, wxCoord ysrc,
  37. wxRasterOperationMode rop = wxCOPY, bool useMask = false,
  38. wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord);
  39. virtual void DoGetSize(int *w, int *h) const
  40. {
  41. GetDeviceSize(w, h);
  42. }
  43. // init the dc
  44. void Init();
  45. wxPrintData m_printData;
  46. private:
  47. DECLARE_CLASS(wxPrinterDCImpl)
  48. wxDECLARE_NO_COPY_CLASS(wxPrinterDCImpl);
  49. };
  50. // Gets an HDC for the specified printer configuration
  51. WXHDC WXDLLIMPEXP_CORE wxGetPrinterDC(const wxPrintData& data);
  52. // ------------------------------------------------------------------------
  53. // wxPrinterDCromHDC
  54. //
  55. class WXDLLIMPEXP_CORE wxPrinterDCFromHDC: public wxPrinterDC
  56. {
  57. public:
  58. wxPrinterDCFromHDC( WXHDC theDC )
  59. : wxPrinterDC(new wxPrinterDCImpl(this, theDC))
  60. {
  61. }
  62. };
  63. #endif // wxUSE_PRINTING_ARCHITECTURE
  64. #endif // _WX_MSW_DCPRINT_H_