X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f21dd16b4657ee3379db8483706afdc2cafd7e6f..c4c178c10d070e20d537f3d685a31115b3b2d4c9:/interface/wx/html/htmprint.h diff --git a/interface/wx/html/htmprint.h b/interface/wx/html/htmprint.h index 3cf0281c07..a7dd53b286 100644 --- a/interface/wx/html/htmprint.h +++ b/interface/wx/html/htmprint.h @@ -25,12 +25,28 @@ public: wxHtmlDCRenderer(); /** - Returns the height of the HTML text. This is important if area height - (see wxHtmlDCRenderer::SetSize) is smaller that total height and thus - the page cannot fit into it. In that case you're supposed to call - Render() as long as its return value is smaller than GetTotalHeight()'s. + Returns the width of the HTML text in pixels. + + This can be compared with the width parameter of SetSize() to check if + the document being printed fits into the page boundary. + + @see GetTotalHeight() + + @since 2.9.0 + */ + int GetTotalWidth() const; + + /** + Returns the height of the HTML text in pixels. + + This is important if area height (see wxHtmlDCRenderer::SetSize) is + smaller that total height and thus the page cannot fit into it. In that + case you're supposed to call Render() as long as its return value is + smaller than GetTotalHeight()'s. + + @see GetTotalWidth() */ - int GetTotalHeight(); + int GetTotalHeight() const; /** Renders HTML text to the DC. @@ -48,18 +64,20 @@ public: y-coordinate of the last visible cell. Returned value is y coordinate of first cell than didn't fit onto page. - Use this value as from in next call to Render() in order to print multipages document. + Use this value as from in next call to Render() in order to print + multipages document. - @warning - The Following three methods @b must always be called before any call to - Render() (preferably in this order): + @note + The following three methods @b must always be called before any call to + Render(), in this order: - SetDC() - SetSize() - SetHtmlText() - Render() changes the DC's user scale and does NOT restore it. + + @note Render() changes the DC's user scale and does NOT restore it. */ int Render(int x, int y, wxArrayInt& known_pagebreaks, int from = 0, - int dont_render = 0, int to = INT_MAX); + int dont_render = false, int to = INT_MAX); /** Assign DC instance to the renderer. @@ -243,6 +261,29 @@ public: Sets the parent window for dialogs. */ void SetParentWindow(wxWindow* window); + +private: + /** + Check whether the document fits into the page area. + + This function is called by the base class OnPreparePrinting() + implementation and by default checks whether the document fits into + @a pageArea horizontally and warns the user if it does not, giving him + the possibility to cancel printing in this case (presumably in order to + change some layout options and retry it again). + + 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 wxHtmlPrintout should continue or @false to cancel + printing. + + @since 2.9.0 + */ + virtual bool CheckFit(const wxSize& pageArea, const wxSize& docArea) const; };