]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/html/htmprint.h
added wxUINTn_MAX constants; document them together with the existing wxINTn_MIN...
[wxWidgets.git] / interface / wx / html / htmprint.h
index 268189df7ed3716cadb0fc23d8283cd0e31d0edc..a7dd53b286b9546a86b4e348ac7d83633597eb32 100644 (file)
@@ -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,15 +64,17 @@ 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()
-        <b>Render() changes the DC's user scale and does NOT restore it.</b>
+
+        @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 = false, int to = INT_MAX);
@@ -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;
 };