]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/html/htmprint.h
add wxGetLinuxDistributionInfo() and wxPlatformInfo::GetLinuxDistribution() functions...
[wxWidgets.git] / interface / wx / html / htmprint.h
index 7748f3915e78c02ac013487a64373577e012a944..a7dd53b286b9546a86b4e348ac7d83633597eb32 100644 (file)
@@ -25,36 +25,59 @@ 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.
 
         @param x,y
-            position of upper-left corner of printing rectangle (see SetSize())
+            position of upper-left corner of printing rectangle (see SetSize()).
+        @param known_pagebreaks
+            @todo docme
         @param from
-            y-coordinate of the very first visible cell
+            y-coordinate of the very first visible cell.
         @param dont_render
             if @true then this method only returns y coordinate of the next page
-            and does not output anything
+            and does not output anything.
+        @param to
+            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, int from = 0, int dont_render = false);
+    int Render(int x, int y, wxArrayInt& known_pagebreaks, int from = 0,
+               int dont_render = false, int to = INT_MAX);
 
     /**
         Assign DC instance to the renderer.
@@ -72,9 +95,8 @@ public:
 
         @see SetSize()
     */
-    void SetFonts(const wxString& normal_face,
-                  const wxString& fixed_face,
-                  const int sizes = NULL);
+    void SetFonts(const wxString& normal_face, const wxString& fixed_face,
+                  const int* sizes = NULL);
 
     /**
         Assign text to the renderer. Render() then draws the text onto DC.
@@ -202,9 +224,8 @@ public:
     /**
         Sets fonts. See wxHtmlWindow::SetFonts for detailed description.
     */
-    void SetFonts(const wxString& normal_face,
-                  const wxString& fixed_face,
-                  const int sizes = NULL);
+    void SetFonts(const wxString& normal_face, const wxString& fixed_face,
+                  const int* sizes = NULL);
 
     /**
         Set page footer. The following macros can be used inside it:
@@ -240,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;
 };
 
 
@@ -269,9 +313,8 @@ public:
     /**
         Sets fonts. See wxHtmlWindow::SetFonts for detailed description.
     */
-    void SetFonts(const wxString& normal_face,
-                  const wxString& fixed_face,
-                  const int sizes = NULL);
+    void SetFonts(const wxString& normal_face, const wxString& fixed_face,
+                  const int* sizes = NULL);
 
     /**
         Set page footer. The following macros can be used inside it: