X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/18e9c453ef4791c790af3898f556186c4b1226e5..835165d576b66441987b78519e6ef1fe74ea795a:/include/wx/html/htmprint.h diff --git a/include/wx/html/htmprint.h b/include/wx/html/htmprint.h index 1598718cc4..2ff79b9fdc 100644 --- a/include/wx/html/htmprint.h +++ b/include/wx/html/htmprint.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: htmprint.h +// Name: wx/html/htmprint.h // Purpose: html printing classes // Author: Vaclav Slavik // Created: 25/09/99 @@ -39,7 +39,9 @@ public: // Following 3 methods *must* be called before any call to Render: // Assign DC to this render - void SetDC(wxDC *dc, double pixel_scale = 1.0); + void SetDC(wxDC *dc, double pixel_scale = 1.0) + { SetDC(dc, pixel_scale, pixel_scale); } + void SetDC(wxDC *dc, double pixel_scale, double font_scale); // Sets size of output rectangle, in pixels. Note that you *can't* change // width of the rectangle between calls to Render! (You can freely change height.) @@ -80,9 +82,12 @@ public: int Render(int x, int y, wxArrayInt& known_pagebreaks, int from = 0, int dont_render = false, int to = INT_MAX); + // returns total width of the html document + int GetTotalWidth() const; + // returns total height of the html document // (compare Render's return value with this) - int GetTotalHeight(); + int GetTotalHeight() const; private: wxDC *m_DC; @@ -91,7 +96,7 @@ private: wxHtmlContainerCell *m_Cells; int m_MaxWidth, m_Width, m_Height; - DECLARE_NO_COPY_CLASS(wxHtmlDCRenderer) + wxDECLARE_NO_COPY_CLASS(wxHtmlDCRenderer); }; @@ -169,6 +174,20 @@ public: static void CleanUpStatics(); private: + // this function is called by the base class OnPreparePrinting() + // implementation and by default checks whether the document fits into + // pageArea horizontally and warns the user if it does not and, if we're + // going to print and not just to preview the document, giving him the + // possibility to cancel printing + // + // you may override it to either suppress this check if truncation of the + // HTML being printed is acceptable or, on the contrary, add more checks to + // it, e.g. for the fit in the vertical direction if the document should + // always appear on a single page + // + // return true if printing should go ahead or false to cancel it (the + // return value is ignored when previewing) + virtual bool CheckFit(const wxSize& pageArea, const wxSize& docArea) const; void RenderPage(wxDC *dc, int page); // renders one page into dc @@ -180,7 +199,6 @@ private: private: int m_NumPages; - //int m_PageBreaks[wxHTML_PRINT_MAX_PAGES]; wxArrayInt m_PageBreaks; wxString m_Document, m_BasePath; @@ -194,7 +212,7 @@ private: // list of HTML filters static wxList m_Filters; - DECLARE_NO_COPY_CLASS(wxHtmlPrintout) + wxDECLARE_NO_COPY_CLASS(wxHtmlPrintout); }; @@ -261,6 +279,11 @@ public: void SetParentWindow(wxWindow* window) { m_ParentWindow = window; } // set the parent window + const wxString& GetName() const { return m_Name; } + // get the printout name + void SetName(const wxString& name) { m_Name = name; } + // set the printout name + protected: virtual wxHtmlPrintout *CreatePrintout(); virtual bool DoPreview(wxHtmlPrintout *printout1, wxHtmlPrintout *printout2); @@ -284,7 +307,7 @@ private: wxString m_Headers[2], m_Footers[2]; wxWindow *m_ParentWindow; - DECLARE_NO_COPY_CLASS(wxHtmlEasyPrinting) + wxDECLARE_NO_COPY_CLASS(wxHtmlEasyPrinting); };