25a3fca2e5
on other platforms). The preview is now accurate representation of printed page and wxHtmlEasyPrinting preview shows identical layout to what will be printed. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54264 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
84 lines
2.6 KiB
C++
84 lines
2.6 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: printwin.h
|
|
// Purpose: wxWindowsPrinter, wxWindowsPrintPreview classes
|
|
// Author: Julian Smart
|
|
// Modified by:
|
|
// Created: 01/02/97
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) Julian Smart
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_PRINTWIN_H_
|
|
#define _WX_PRINTWIN_H_
|
|
|
|
#include "wx/prntbase.h"
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// Represents the printer: manages printing a wxPrintout object
|
|
// ---------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_CORE wxWindowsPrinter : public wxPrinterBase
|
|
{
|
|
DECLARE_DYNAMIC_CLASS(wxWindowsPrinter)
|
|
|
|
public:
|
|
wxWindowsPrinter(wxPrintDialogData *data = NULL);
|
|
virtual ~wxWindowsPrinter();
|
|
|
|
virtual bool Print(wxWindow *parent,
|
|
wxPrintout *printout,
|
|
bool prompt = true);
|
|
|
|
virtual wxDC *PrintDialog(wxWindow *parent);
|
|
virtual bool Setup(wxWindow *parent);
|
|
|
|
private:
|
|
WXFARPROC m_lpAbortProc;
|
|
|
|
DECLARE_NO_COPY_CLASS(wxWindowsPrinter)
|
|
};
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// wxPrintPreview: programmer creates an object of this class to preview a
|
|
// wxPrintout.
|
|
// ---------------------------------------------------------------------------
|
|
|
|
#define wxUSE_HIGH_QUALITY_PREVIEW (wxUSE_IMAGE && wxUSE_WXDIB)
|
|
|
|
class WXDLLIMPEXP_CORE wxWindowsPrintPreview : public wxPrintPreviewBase
|
|
{
|
|
public:
|
|
wxWindowsPrintPreview(wxPrintout *printout,
|
|
wxPrintout *printoutForPrinting = NULL,
|
|
wxPrintDialogData *data = NULL);
|
|
wxWindowsPrintPreview(wxPrintout *printout,
|
|
wxPrintout *printoutForPrinting,
|
|
wxPrintData *data);
|
|
virtual ~wxWindowsPrintPreview();
|
|
|
|
virtual bool Print(bool interactive);
|
|
virtual void DetermineScaling();
|
|
|
|
#if wxUSE_HIGH_QUALITY_PREVIEW
|
|
protected:
|
|
bool RenderPageIntoBitmapHQ(wxBitmap& bmp, int pageNum);
|
|
virtual bool RenderPageIntoBitmap(wxBitmap& bmp, int pageNum);
|
|
|
|
private:
|
|
bool RenderPageFragment(float scaleX, float scaleY,
|
|
int *nextFinalLine,
|
|
wxPrinterDC& printer,
|
|
wxMemoryDC& finalDC,
|
|
const wxRect& rect,
|
|
int pageNum);
|
|
|
|
bool m_hqPreviewFailed;
|
|
#endif // wxUSE_HIGH_QUALITY_PREVIEW
|
|
|
|
DECLARE_DYNAMIC_CLASS_NO_COPY(wxWindowsPrintPreview)
|
|
};
|
|
|
|
#endif
|
|
// _WX_PRINTWIN_H_
|