| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        print.h
 
- // Purpose:     interface of wxPreviewControlBar
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- enum wxPrinterError
 
- {
 
-     wxPRINTER_NO_ERROR = 0,
 
-     wxPRINTER_CANCELLED,
 
-     wxPRINTER_ERROR
 
- };
 
- #define wxPREVIEW_PRINT        1
 
- #define wxPREVIEW_PREVIOUS     2
 
- #define wxPREVIEW_NEXT         4
 
- #define wxPREVIEW_ZOOM         8
 
- #define wxPREVIEW_FIRST       16
 
- #define wxPREVIEW_LAST        32
 
- #define wxPREVIEW_GOTO        64
 
- #define wxPREVIEW_DEFAULT  (wxPREVIEW_PREVIOUS|wxPREVIEW_NEXT|wxPREVIEW_ZOOM\
 
-                             |wxPREVIEW_FIRST|wxPREVIEW_GOTO|wxPREVIEW_LAST)
 
- // Ids for controls
 
- #define wxID_PREVIEW_CLOSE      1
 
- #define wxID_PREVIEW_NEXT       2
 
- #define wxID_PREVIEW_PREVIOUS   3
 
- #define wxID_PREVIEW_PRINT      4
 
- #define wxID_PREVIEW_ZOOM       5
 
- #define wxID_PREVIEW_FIRST      6
 
- #define wxID_PREVIEW_LAST       7
 
- #define wxID_PREVIEW_GOTO       8
 
- #define wxID_PREVIEW_ZOOM_IN    9
 
- #define wxID_PREVIEW_ZOOM_OUT   10
 
- /**
 
-     @class wxPreviewControlBar
 
-     This is the default implementation of the preview control bar, a panel
 
-     with buttons and a zoom control.
 
-     You can derive a new class from this and override some or all member functions
 
-     to change the behaviour and appearance; or you can leave it as it is.
 
-     @library{wxcore}
 
-     @category{printing}
 
-     @see wxPreviewFrame, wxPreviewCanvas, wxPrintPreview
 
- */
 
- class wxPreviewControlBar : public wxPanel
 
- {
 
- public:
 
-     /**
 
-         Constructor.
 
-         The @a buttons parameter may be a combination of the following, using the bitwise
 
-         'or' operator:
 
-         @beginFlagTable
 
-         @flag{wxPREVIEW_PRINT}
 
-             Create a print button.
 
-         @flag{wxPREVIEW_NEXT}
 
-             Create a next page button.
 
-         @flag{wxPREVIEW_PREVIOUS}
 
-             Create a previous page button.
 
-         @flag{wxPREVIEW_ZOOM}
 
-             Create a zoom control.
 
-         @flag{wxPREVIEW_DEFAULT}
 
-             Equivalent to a combination of @c wxPREVIEW_PREVIOUS, @c wxPREVIEW_NEXT
 
-             and @c wxPREVIEW_ZOOM.
 
-         @endFlagTable
 
-     */
 
-     wxPreviewControlBar(wxPrintPreview* preview,
 
-                         long buttons,
 
-                         wxWindow* parent,
 
-                         const wxPoint& pos = wxDefaultPosition,
 
-                         const wxSize& size = wxDefaultSize,
 
-                         long style = 0,
 
-                         const wxString& name = "panel");
 
-     /**
 
-         Destructor.
 
-     */
 
-     virtual ~wxPreviewControlBar();
 
-     /**
 
-         Creates buttons, according to value of the button style flags.
 
-         @todo which flags??
 
-     */
 
-     virtual void CreateButtons();
 
-     /**
 
-         Gets the print preview object associated with the control bar.
 
-     */
 
-     virtual wxPrintPreviewBase* GetPrintPreview() const;
 
-     /**
 
-         Gets the current zoom setting in percent.
 
-     */
 
-     virtual int GetZoomControl();
 
-     /**
 
-         Sets the zoom control.
 
-     */
 
-     virtual void SetZoomControl(int percent);
 
- };
 
- /**
 
-     @class wxPreviewCanvas
 
-     A preview canvas is the default canvas used by the print preview
 
-     system to display the preview.
 
-     @library{wxcore}
 
-     @category{printing}
 
-     @see wxPreviewFrame, wxPreviewControlBar, wxPrintPreview
 
- */
 
- class wxPreviewCanvas : public wxScrolledWindow
 
- {
 
- public:
 
-     /**
 
-         Constructor.
 
-     */
 
-     wxPreviewCanvas(wxPrintPreview* preview, wxWindow* parent,
 
-                     const wxPoint& pos = wxDefaultPosition,
 
-                     const wxSize& size = wxDefaultSize,
 
-                     long style = 0,
 
-                     const wxString& name = "canvas");
 
-     /**
 
-         Destructor.
 
-     */
 
-     virtual ~wxPreviewCanvas();
 
-     /**
 
-         Calls wxPrintPreview::PaintPage() to refresh the canvas.
 
-     */
 
-     void OnPaint(wxPaintEvent& event);
 
- };
 
- /**
 
-     Preview frame modality kind.
 
-     The elements of this enum can be used with wxPreviewFrame::Initialize() to
 
-     indicate how should the preview frame be shown.
 
-     @since 2.9.2
 
- */
 
- enum wxPreviewFrameModalityKind
 
- {
 
-     /**
 
-         Disable all the other top level windows while the preview frame is shown.
 
-         This is the default behaviour.
 
-      */
 
-     wxPreviewFrame_AppModal,
 
-     /**
 
-         Disable only the parent window while the preview frame is shown.
 
-      */
 
-     wxPreviewFrame_WindowModal,
 
-     /**
 
-         Show the preview frame non-modally and don't disable any other windows.
 
-      */
 
-     wxPreviewFrame_NonModal
 
- };
 
- /**
 
-     @class wxPreviewFrame
 
-     This class provides the default method of managing the print preview interface.
 
-     Member functions may be overridden to replace functionality, or the
 
-     class may be used without derivation.
 
-     @library{wxcore}
 
-     @category{printing}
 
-     @see wxPreviewCanvas, wxPreviewControlBar, wxPrintPreview
 
- */
 
- class wxPreviewFrame : public wxFrame
 
- {
 
- public:
 
-     /**
 
-         Constructor.
 
-         Pass a print preview object plus other normal frame arguments.
 
-         The print preview object will be destroyed by the frame when it closes.
 
-     */
 
-     wxPreviewFrame(wxPrintPreviewBase* preview, wxWindow* parent,
 
-                    const wxString& title = "Print Preview",
 
-                    const wxPoint& pos = wxDefaultPosition,
 
-                    const wxSize& size = wxDefaultSize,
 
-                    long style = wxDEFAULT_FRAME_STYLE,
 
-                    const wxString& name = wxFrameNameStr);
 
-     /**
 
-         Destructor.
 
-     */
 
-     virtual ~wxPreviewFrame();
 
-     /**
 
-         Creates a wxPreviewCanvas.
 
-         Override this function to allow a user-defined preview canvas object
 
-         to be created.
 
-     */
 
-     virtual void CreateCanvas();
 
-     /**
 
-         Creates a wxPreviewControlBar.
 
-         Override this function to allow a user-defined preview control bar object
 
-         to be created.
 
-     */
 
-     virtual void CreateControlBar();
 
-     /**
 
-         Initializes the frame elements and prepares for showing it.
 
-         Calling this method is equivalent to calling InitializeWithModality()
 
-         with wxPreviewFrame_AppModal argument, please see its documentation for
 
-         more details.
 
-         Please notice that this function is virtual mostly for backwards
 
-         compatibility only, there is no real need to override it as it's never
 
-         called by wxWidgets itself.
 
-      */
 
-     virtual void Initialize();
 
-     /**
 
-         Initializes the frame elements and prepares for showing it with the
 
-         given modality kind.
 
-         This method creates the frame elements by calling CreateCanvas() and
 
-         CreateControlBar() methods (which may be overridden to customize them)
 
-         and prepares to show the frame according to the value of @a kind
 
-         parameter:
 
-             - If it is wxPreviewFrame_AppModal, all the other application
 
-             windows will be disabled when this frame is shown. This is the same
 
-             behaviour as that of simple Initialize().
 
-             - If it is wxPreviewFrame_WindowModal, only the parent window of
 
-             the preview frame will be disabled when it is shown.
 
-             - And if it is wxPreviewFrame_NonModal, no windows at all will be
 
-             disabled while the preview is shown.
 
-         Notice that this function (or Initialize()) must be called by the
 
-         application prior to showing the frame but you still must call @c
 
-         Show(true) to actually show it afterwards.
 
-         @param kind
 
-             The modality kind of preview frame.
 
-         @since 2.9.2
 
-     */
 
-     virtual void InitializeWithModality(wxPreviewFrameModalityKind kind);
 
-     /**
 
-         Enables any disabled frames in the application, and deletes the print preview
 
-         object, implicitly deleting any printout objects associated with the print
 
-         preview object.
 
-     */
 
-     void OnCloseWindow(wxCloseEvent& event);
 
- };
 
- /**
 
-     @class wxPrintPreview
 
-     Objects of this class manage the print preview process. The object is passed
 
-     a wxPrintout object, and the wxPrintPreview object itself is passed to
 
-     a wxPreviewFrame object. Previewing is started by initializing and showing
 
-     the preview frame. Unlike wxPrinter::Print(), flow of control returns to the
 
-     application immediately after the frame is shown.
 
-     @note
 
-     The preview shown is only exact on Windows. On other platforms, the wxDC
 
-     used for preview is different from what is used for printing and the
 
-     results may be significantly different, depending on how is the output
 
-     created. In particular, printing code relying on wxDC::GetTextExtent()
 
-     heavily (for example, wxHtmlEasyPrinting and other wxHTML classes do) is
 
-     affected. It is recommended to use native preview functionality on
 
-     platforms that offer it (OS X, GTK+).
 
-     @library{wxcore}
 
-     @category{printing}
 
-     @see @ref overview_printing, wxPrinterDC, wxPrintDialog, wxPrintout, wxPrinter,
 
-          wxPreviewCanvas, wxPreviewControlBar, wxPreviewFrame
 
- */
 
- class wxPrintPreview : public wxObject
 
- {
 
- public:
 
-     /**
 
-         Constructor.
 
-         Pass a printout object, an optional printout object to be used for actual
 
-         printing, and the address of an optional block of printer data, which will
 
-         be copied to the print preview object's print data.
 
-         If @a printoutForPrinting is non-@NULL, a @b "Print..." button will be placed on
 
-         the preview frame so that the user can print directly from the preview interface.
 
-         @remarks
 
-         Do not explicitly delete the printout objects once this constructor has been
 
-         called, since they will be deleted in the wxPrintPreview destructor.
 
-         The same does not apply to the @a data argument.
 
-         Use IsOk() to check whether the wxPrintPreview object was created correctly.
 
-     */
 
-     wxPrintPreview(wxPrintout* printout,
 
-                    wxPrintout* printoutForPrinting = NULL,
 
-                    wxPrintDialogData* data = NULL);
 
-     wxPrintPreview(wxPrintout* printout,
 
-                    wxPrintout* printoutForPrinting,
 
-                    wxPrintData* data);
 
-     /**
 
-         Destructor.
 
-         Deletes both print preview objects, so do not destroy these objects
 
-         in your application.
 
-     */
 
-     ~wxPrintPreview();
 
-     /**
 
-         Gets the preview window used for displaying the print preview image.
 
-     */
 
-     virtual wxPreviewCanvas* GetCanvas() const;
 
-     /**
 
-         Gets the page currently being previewed.
 
-     */
 
-     virtual int GetCurrentPage() const;
 
-     /**
 
-         Gets the frame used for displaying the print preview canvas
 
-         and control bar.
 
-     */
 
-     virtual wxFrame* GetFrame() const;
 
-     /**
 
-         Returns the maximum page number.
 
-     */
 
-     virtual int GetMaxPage() const;
 
-     /**
 
-         Returns the minimum page number.
 
-     */
 
-     virtual int GetMinPage() const;
 
-     /**
 
-         Gets the preview printout object associated with the wxPrintPreview object.
 
-     */
 
-     virtual wxPrintout* GetPrintout() const;
 
-     /**
 
-         Gets the printout object to be used for printing from within the preview
 
-         interface,
 
-         or @NULL if none exists.
 
-     */
 
-     virtual wxPrintout* GetPrintoutForPrinting() const;
 
-     /**
 
-         Returns @true if the wxPrintPreview is valid, @false otherwise.
 
-         It could return @false if there was a problem initializing the printer
 
-         device context (current printer not set, for example).
 
-     */
 
-     virtual bool IsOk() const;
 
-     /**
 
-         This refreshes the preview window with the preview image.
 
-         It must be called from the preview window's OnPaint member.
 
-         The implementation simply blits the preview bitmap onto
 
-         the canvas, creating a new preview bitmap if none exists.
 
-     */
 
-     virtual bool PaintPage(wxPreviewCanvas* canvas, wxDC& dc);
 
-     /**
 
-         Invokes the print process using the second wxPrintout object
 
-         supplied in the wxPrintPreview constructor.
 
-         Will normally be called by the @b Print... panel item on the
 
-         preview frame's control bar.
 
-         Returns @false in case of error -- call wxPrinter::GetLastError()
 
-         to get detailed information about the kind of the error.
 
-     */
 
-     virtual bool Print(bool prompt);
 
-     /**
 
-         Renders a page into a wxMemoryDC. Used internally by wxPrintPreview.
 
-     */
 
-     virtual bool RenderPage(int pageNum);
 
-     /**
 
-         Sets the window to be used for displaying the print preview image.
 
-     */
 
-     virtual void SetCanvas(wxPreviewCanvas* window);
 
-     /**
 
-         Sets the current page to be previewed.
 
-     */
 
-     virtual bool SetCurrentPage(int pageNum);
 
-     /**
 
-         Sets the frame to be used for displaying the print preview canvas
 
-         and control bar.
 
-     */
 
-     virtual void SetFrame(wxFrame* frame);
 
-     /**
 
-         Associates a printout object with the wxPrintPreview object.
 
-     */
 
-     virtual void SetPrintout(wxPrintout* printout);
 
-     /**
 
-         Sets the percentage preview zoom, and refreshes the preview canvas accordingly.
 
-     */
 
-     virtual void SetZoom(int percent);
 
- };
 
- /**
 
-     @class wxPrinter
 
-     This class represents the Windows or PostScript printer, and is the vehicle
 
-     through which printing may be launched by an application.
 
-     Printing can also be achieved through using of lower functions and classes,
 
-     but this and associated classes provide a more convenient and general method
 
-     of printing.
 
-     @library{wxcore}
 
-     @category{printing}
 
-     @see @ref overview_printing, wxPrinterDC, wxPrintDialog, wxPrintout, wxPrintPreview
 
- */
 
- class wxPrinter : public wxObject
 
- {
 
- public:
 
-     /**
 
-         Constructor.
 
-         Pass an optional pointer to a block of print dialog data, which will be
 
-         copied to the printer object's local data.
 
-         @see wxPrintDialogData, wxPrintData
 
-     */
 
-     wxPrinter(wxPrintDialogData* data = NULL);
 
-     /**
 
-         Creates the default printing abort window, with a cancel button.
 
-     */
 
-     virtual wxPrintAbortDialog* CreateAbortWindow(wxWindow* parent, wxPrintout* printout);
 
-     /**
 
-         Returns @true if the user has aborted the print job.
 
-     */
 
-     bool GetAbort() const;
 
-     /**
 
-         Return last error. Valid after calling Print(), PrintDialog() or
 
-         wxPrintPreview::Print().
 
-         These functions set last error to @c wxPRINTER_NO_ERROR if no error happened.
 
-         Returned value is one of the following:
 
-         @beginTable
 
-         @row2col{wxPRINTER_NO_ERROR, No error happened.}
 
-         @row2col{wxPRINTER_CANCELLED, The user cancelled printing.}
 
-         @row2col{wxPRINTER_ERROR, There was an error during printing.}
 
-         @endTable
 
-     */
 
-     static wxPrinterError GetLastError();
 
-     /**
 
-         Returns the @ref overview_printing_printdata "print data" associated with
 
-         the printer object.
 
-     */
 
-     virtual wxPrintDialogData& GetPrintDialogData() const;
 
-     /**
 
-         Starts the printing process. Provide a parent window, a user-defined wxPrintout
 
-         object which controls the printing of a document, and whether the print dialog
 
-         should be invoked first.
 
-         Print() could return @false if there was a problem initializing the printer device
 
-         context (current printer not set, for example) or the user cancelled printing.
 
-         Call GetLastError() to get detailed information about the kind of the error.
 
-     */
 
-     virtual bool Print(wxWindow* parent, wxPrintout* printout,
 
-                        bool prompt = true);
 
-     /**
 
-         Invokes the print dialog.
 
-         If successful (the user did not press Cancel and no error occurred),
 
-         a suitable device context will be returned; otherwise @NULL is returned;
 
-         call GetLastError() to get detailed information about the kind of the error.
 
-         @remarks
 
-         The application must delete this device context to avoid a memory leak.
 
-     */
 
-     virtual wxDC* PrintDialog(wxWindow* parent);
 
-     /**
 
-         Default error-reporting function.
 
-     */
 
-     virtual void ReportError(wxWindow* parent, wxPrintout* printout,
 
-                              const wxString& message);
 
-     /**
 
-         Invokes the print setup dialog.
 
-         @remarks
 
-         The setup dialog is obsolete from Windows 95, though retained
 
-         for backward compatibility.
 
-     */
 
-     virtual bool Setup(wxWindow* parent);
 
- };
 
- /**
 
-     @class wxPrintout
 
-     This class encapsulates the functionality of printing out an application document.
 
-     A new class must be derived and members overridden to respond to calls such as
 
-     OnPrintPage() and HasPage() and to render the print image onto an associated wxDC.
 
-     Instances of this class are passed to wxPrinter::Print() or
 
-     to a wxPrintPreview object to initiate printing or previewing.
 
-     Your derived wxPrintout is responsible for drawing both the preview image and
 
-     the printed page. If your windows' drawing routines accept an arbitrary DC as an
 
-     argument, you can re-use those routines within your wxPrintout subclass to draw
 
-     the printout image. You may also add additional drawing elements within your
 
-     wxPrintout subclass, like headers, footers, and/or page numbers. However, the
 
-     image on the printed page will often differ from the image drawn on the screen,
 
-     as will the print preview image -- not just in the presence of headers and
 
-     footers, but typically in scale. A high-resolution printer presents a much
 
-     larger drawing surface (i.e., a higher-resolution DC); a zoomed-out preview
 
-     image presents a much smaller drawing surface (lower-resolution DC). By using
 
-     the routines FitThisSizeToXXX() and/or MapScreenSizeToXXX() within your
 
-     wxPrintout subclass to set the user scale and origin of the associated DC, you
 
-     can easily use a single drawing routine to draw on your application's windows,
 
-     to create the print preview image, and to create the printed paper image, and
 
-     achieve a common appearance to the preview image and the printed page.
 
-     @library{wxcore}
 
-     @category{printing}
 
-     @see @ref overview_printing, wxPrinterDC, wxPrintDialog, wxPageSetupDialog,
 
-          wxPrinter, wxPrintPreview
 
- */
 
- class wxPrintout : public wxObject
 
- {
 
- public:
 
-     /**
 
-         Constructor.
 
-         Pass an optional title argument - the current filename would be a
 
-         good idea. This will appear in the printing list (at least in MSW)
 
-     */
 
-     wxPrintout(const wxString& title = "Printout");
 
-     /**
 
-         Destructor.
 
-     */
 
-     virtual ~wxPrintout();
 
-     /**
 
-         Set the user scale and device origin of the wxDC associated with this wxPrintout
 
-         so that the given image size fits entirely within the page rectangle and the
 
-         origin is at the top left corner of the page rectangle.
 
-         On MSW and Mac, the page rectangle is the printable area of the page.
 
-         On other platforms and PostScript printing, the page rectangle is the entire paper.
 
-         Use this if you want your printed image as large as possible, but with the caveat
 
-         that on some platforms, portions of the image might be cut off at the edges.
 
-     */
 
-     void FitThisSizeToPage(const wxSize& imageSize);
 
-     /**
 
-         Set the user scale and device origin of the wxDC associated with this wxPrintout
 
-         so that the given image size fits entirely within the page margins set in the
 
-         given wxPageSetupDialogData object.
 
-         This function provides the greatest consistency across all platforms because it
 
-         does not depend on having access to the printable area of the paper.
 
-         @remarks
 
-         On Mac, the native wxPageSetupDialog does not let you set the page margins;
 
-         you'll have to provide your own mechanism, or you can use the Mac-only class
 
-         wxMacPageMarginsDialog.
 
-     */
 
-     void FitThisSizeToPageMargins(const wxSize& imageSize,
 
-                                   const wxPageSetupDialogData& pageSetupData);
 
-     /**
 
-         Set the user scale and device origin of the wxDC associated with this wxPrintout
 
-         so that the given image size fits entirely within the paper and the origin is at
 
-         the top left corner of the paper.
 
-         Use this if you're managing your own page margins.
 
-         @note
 
-         With most printers, the region around the edges of the paper are not
 
-         printable so that the edges of the image could be cut off.
 
-     */
 
-     void FitThisSizeToPaper(const wxSize& imageSize);
 
-     /**
 
-         Returns the device context associated with the printout (given to the printout
 
-         at start of printing or previewing).
 
-         The application can use GetDC() to obtain a device context to draw on.
 
-         This will be a wxPrinterDC if printing under Windows or Mac, a wxPostScriptDC
 
-         if printing on other platforms, and a wxMemoryDC if previewing.
 
-     */
 
-     wxDC* GetDC() const;
 
-     /**
 
-         Return the rectangle corresponding to the page margins specified by the given
 
-         wxPageSetupDialogData object in the associated wxDC's logical coordinates for
 
-         the current user scale and device origin.
 
-         The page margins are specified with respect to the edges of the paper on all
 
-         platforms.
 
-     */
 
-     wxRect GetLogicalPageMarginsRect(const wxPageSetupDialogData& pageSetupData) const;
 
-     /**
 
-         Return the rectangle corresponding to the page in the associated wxDC 's
 
-         logical coordinates for the current user scale and device origin.
 
-         On MSW and Mac, this will be the printable area of the paper.
 
-         On other platforms and PostScript printing, this will be the full paper
 
-         rectangle.
 
-     */
 
-     wxRect GetLogicalPageRect() const;
 
-     /**
 
-         Return the rectangle corresponding to the paper in the associated wxDC 's
 
-         logical coordinates for the current user scale and device origin.
 
-     */
 
-     wxRect GetLogicalPaperRect() const;
 
-     /**
 
-         Returns the number of pixels per logical inch of the printer device context.
 
-         Dividing the printer PPI by the screen PPI can give a suitable scaling factor
 
-         for drawing text onto the printer.
 
-         Remember to multiply this by a scaling factor to take the preview DC size into
 
-         account.
 
-         Or you can just use the FitThisSizeToXXX() and MapScreenSizeToXXX routines below,
 
-         which do most of the scaling calculations for you.
 
-         @beginWxPerlOnly
 
-         In wxPerl this method takes no arguments and returns a
 
-         2-element list (w, h).
 
-         @endWxPerlOnly
 
-     */
 
-     void GetPPIPrinter(int* w, int* h) const;
 
-     /**
 
-         Returns the number of pixels per logical inch of the screen device context.
 
-         Dividing the printer PPI by the screen PPI can give a suitable scaling factor
 
-         for drawing text onto the printer.
 
-         If you are doing your own scaling, remember to multiply this by a scaling
 
-         factor to take the preview DC size into account.
 
-         @beginWxPerlOnly
 
-         In wxPerl this method takes no arguments and returns a
 
-         2-element list (w, h).
 
-         @endWxPerlOnly
 
-     */
 
-     void GetPPIScreen(int* w, int* h) const;
 
-     /**
 
-         Called by the framework to obtain information from the application about minimum
 
-         and maximum page values that the user can select, and the required page range to
 
-         be printed.
 
-         By default this returns (1, 32000) for the page minimum and maximum values, and
 
-         (1, 1) for the required page range.
 
-         @a minPage must be greater than zero and @a maxPage must be greater
 
-         than @a minPage.
 
-     */
 
-     virtual void GetPageInfo(int* minPage, int* maxPage, int* pageFrom,
 
-                              int* pageTo);
 
-     /**
 
-         Returns the size of the printer page in millimetres.
 
-         @beginWxPerlOnly
 
-         In wxPerl this method takes no arguments and returns a
 
-         2-element list (w, h).
 
-         @endWxPerlOnly
 
-     */
 
-     void GetPageSizeMM(int* w, int* h) const;
 
-     /**
 
-         Returns the size of the printer page in pixels, called the page rectangle.
 
-         The page rectangle has a top left corner at (0,0) and a bottom right corner at
 
-         (w,h). These values may not be the same as the values returned from
 
-         wxDC::GetSize(); if the printout is being used for
 
-         previewing, a memory device context is used, which uses a bitmap size reflecting
 
-         the current preview zoom. The application must take this discrepancy into
 
-         account if previewing is to be supported.
 
-     */
 
-     void GetPageSizePixels(int* w, int* h) const;
 
-     /**
 
-         Returns the rectangle that corresponds to the entire paper in pixels, called the
 
-         paper rectangle.
 
-         This distinction between paper rectangle and page rectangle reflects the fact that
 
-         most printers cannot print all the way to the edge of the paper.
 
-         The page rectangle is a rectangle whose top left corner is at (0,0) and whose width
 
-         and height are given by wxDC::GetPageSizePixels().
 
-         On MSW and Mac, the page rectangle gives the printable area of the paper, while the
 
-         paper rectangle represents the entire paper, including non-printable borders.
 
-         Thus, the rectangle returned by wxDC::GetPaperRectPixels() will have a top left corner
 
-         whose coordinates are small negative numbers and the bottom right corner will have
 
-         values somewhat larger than the width and height given by wxDC::GetPageSizePixels().
 
-         On other platforms and for PostScript printing, the paper is treated as if its entire
 
-         area were printable, so this function will return the same rectangle as the page
 
-         rectangle.
 
-     */
 
-     wxRect GetPaperRectPixels() const;
 
-     /**
 
-         Returns the title of the printout.
 
-         @todo the python note here was wrong
 
-     */
 
-     virtual wxString GetTitle() const;
 
-     /**
 
-         Should be overridden to return @true if the document has this page, or @false
 
-         if not.
 
-         Returning @false signifies the end of the document. By default,
 
-         HasPage behaves as if the document has only one page.
 
-     */
 
-     virtual bool HasPage(int pageNum);
 
-     /**
 
-         Returns @true if the printout is currently being used for previewing.
 
-         @see GetPreview()
 
-     */
 
-     virtual bool IsPreview() const;
 
-     /**
 
-         Returns the associated preview object if any.
 
-         If this printout object is used for previewing, returns the associated
 
-         wxPrintPreview. Otherwise returns @NULL.
 
-         The returned pointer is not owned by the printout and must not be
 
-         deleted.
 
-         @see IsPreview()
 
-         @since 2.9.1.
 
-      */
 
-     wxPrintPreview *GetPreview() const;
 
-     /**
 
-         Set the user scale and device origin of the wxDC associated with this wxPrintout
 
-         so that one screen pixel maps to one device pixel on the DC.
 
-         That is, the user scale is set to (1,1) and the device origin is set to (0,0).
 
-         Use this if you want to do your own scaling prior to calling wxDC drawing calls,
 
-         for example, if your underlying model is floating-point and you want to achieve
 
-         maximum drawing precision on high-resolution printers.
 
-         You can use the GetLogicalXXXRect() routines below to obtain the paper rectangle,
 
-         page rectangle, or page margins rectangle to perform your own scaling.
 
-         @note
 
-         While the underlying drawing model of Mac OS X is floating-point,
 
-         wxWidgets's drawing model scales from integer coordinates.
 
-     */
 
-     void MapScreenSizeToDevice();
 
-     /**
 
-         This sets the user scale of the wxDC associated with this wxPrintout to the same
 
-         scale as MapScreenSizeToPaper() but sets the logical origin to the top left corner
 
-         of the page rectangle.
 
-     */
 
-     void MapScreenSizeToPage();
 
-     /**
 
-         This sets the user scale of the wxDC associated with this wxPrintout to the same
 
-         scale as MapScreenSizeToPageMargins() but sets the logical origin to the top left
 
-         corner of the page margins specified by the given wxPageSetupDialogData object.
 
-     */
 
-     void MapScreenSizeToPageMargins(const wxPageSetupDialogData& pageSetupData);
 
-     /**
 
-         Set the user scale and device origin of the wxDC associated with this wxPrintout
 
-         so that the printed page matches the screen size as closely as possible
 
-         and the logical origin is in the top left corner of the paper rectangle.
 
-         That is, a 100-pixel object on screen should appear at the same size on the
 
-         printed page.
 
-         (It will, of course, be larger or smaller in the preview image, depending on the
 
-         zoom factor.)
 
-         Use this if you want WYSIWYG behaviour, e.g., in a text editor.
 
-     */
 
-     void MapScreenSizeToPaper();
 
-     /**
 
-         Shift the device origin by an amount specified in logical coordinates.
 
-     */
 
-     void OffsetLogicalOrigin(wxCoord xoff, wxCoord yoff);
 
-     /**
 
-         Called by the framework at the start of document printing. Return @false from
 
-         this function cancels the print job.
 
-         OnBeginDocument() is called once for every copy printed.
 
-         @remarks
 
-         The base OnBeginDocument() must be called (and the return value
 
-         checked) from within the overridden function, since it calls wxDC::StartDoc().
 
-     */
 
-     virtual bool OnBeginDocument(int startPage, int endPage);
 
-     /**
 
-         Called by the framework at the start of printing.
 
-         OnBeginPrinting() is called once for every print job
 
-         (regardless of how many copies are being printed).
 
-     */
 
-     virtual void OnBeginPrinting();
 
-     /**
 
-         Called by the framework at the end of document printing.
 
-         OnEndDocument() is called once for every copy printed.
 
-         @remarks
 
-         The base OnEndDocument() must be called from within the overridden function,
 
-         since it calls wxDC::EndDoc().
 
-     */
 
-     virtual void OnEndDocument();
 
-     /**
 
-         Called by the framework at the end of printing.
 
-         OnEndPrinting is called once for every print job
 
-         (regardless of how many copies are being printed).
 
-     */
 
-     virtual void OnEndPrinting();
 
-     /**
 
-         Called once by the framework before any other demands are made of the
 
-         wxPrintout object.
 
-         This gives the object an opportunity to calculate the number of pages
 
-         in the document, for example.
 
-     */
 
-     virtual void OnPreparePrinting();
 
-     /**
 
-         Called by the framework when a page should be printed. Returning @false cancels
 
-         the print job.
 
-     */
 
-     virtual bool OnPrintPage(int pageNum) = 0;
 
-     /**
 
-         Set the device origin of the associated wxDC so that the current logical point
 
-         becomes the new logical origin.
 
-     */
 
-     void SetLogicalOrigin(wxCoord x, wxCoord y);
 
- };
 
- /**
 
-    @class wxPrintAbortDialog
 
-    The dialog created by default by the print framework that enables aborting
 
-    the printing process.
 
-  */
 
- class wxPrintAbortDialog: public wxDialog
 
- {
 
- public:
 
-     wxPrintAbortDialog(wxWindow *parent,
 
-                        const wxString& documentTitle,
 
-                        const wxPoint& pos = wxDefaultPosition,
 
-                        const wxSize& size = wxDefaultSize,
 
-                        long style = wxDEFAULT_DIALOG_STYLE,
 
-                        const wxString& name = "dialog");
 
-     void SetProgress(int currentPage, int totalPages,
 
-                      int currentCopy, int totalCopies);
 
- };
 
 
  |