]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/html/htmprint.h
wxMessageBox off the main thread lost result code.
[wxWidgets.git] / interface / wx / html / htmprint.h
index 3cf0281c07e933c2f511b4cb7057f571df0607f2..62b011d369cdfc387a87ee2c74feca65cccccaac 100644 (file)
@@ -2,8 +2,7 @@
 // Name:        html/htmprint.h
 // Purpose:     interface of wxHtmlDCRenderer
 // Author:      wxWidgets team
-// RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /**
@@ -25,12 +24,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 +63,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()
-        <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 = 0, int to = INT_MAX);
+               int dont_render = false, int to = INT_MAX);
 
     /**
         Assign DC instance to the renderer.
@@ -73,13 +90,50 @@ public:
     void SetDC(wxDC* dc, double pixel_scale = 1.0);
 
     /**
-        Sets fonts. See wxHtmlWindow::SetFonts for detailed description.
+        This function sets font sizes and faces.
+
+        @param normal_face
+            This is face name for normal (i.e. non-fixed) font.
+            It can be either empty string (then the default face is chosen) or
+            platform-specific face name. Examples are "helvetica" under Unix or
+            "Times New Roman" under Windows.
+        @param fixed_face
+            The same thing for fixed face ( \<TT\>..\</TT\> )
+        @param sizes
+            This is an array of 7 items of int type.
+            The values represent size of font with HTML size from -2 to +4
+            ( \<FONT SIZE=-2\> to \<FONT SIZE=+4\> ).
+            Default sizes are used if sizes is @NULL.
+
+        Default font sizes are defined by constants wxHTML_FONT_SIZE_1,
+        wxHTML_FONT_SIZE_2, ..., wxHTML_FONT_SIZE_7.
+        Note that they differ among platforms. Default face names are empty strings.
 
         @see SetSize()
     */
     void SetFonts(const wxString& normal_face, const wxString& fixed_face,
                   const int* sizes = NULL);
 
+    /**
+        Sets font sizes to be relative to the given size or the system
+        default size; use either specified or default font
+
+        @param size 
+            Point size of the default HTML text
+        @param normal_face
+            This is face name for normal (i.e. non-fixed) font. It can be 
+            either empty string (then the default face is chosen) or 
+            platform-specific face name. Examples are "helvetica" under 
+            Unix or "Times New Roman" under Windows.
+        @param fixed_face
+            The same thing for fixed face ( \<TT\>..\</TT\> ) 
+
+        @see SetSize()
+    */
+    void SetStandardFonts(int size = -1,
+                          const wxString& normal_face = wxEmptyString,
+                          const wxString& fixed_face = wxEmptyString);
+
     /**
         Assign text to the renderer. Render() then draws the text onto DC.
 
@@ -98,7 +152,7 @@ public:
 
     /**
         Set size of output rectangle, in pixels. Note that you @b can't change
-        width of the rectangle between calls to wxHtmlDCRenderer::Render!
+        width of the rectangle between calls to Render() !
         (You can freely change height.)
     */
     void SetSize(int width, int height);
@@ -135,6 +189,14 @@ public:
     wxHtmlEasyPrinting(const wxString& name = "Printing",
                        wxWindow* parentWindow = NULL);
 
+    /**
+        Returns the current name being used for preview frames and setup
+        dialogs.
+
+        @since 2.8.11 / 2.9.1
+    */
+    const wxString& GetName() const;
+
     /**
         Returns a pointer to wxPageSetupDialogData instance used by this class.
         You can set its parameters (via SetXXXX methods).
@@ -204,10 +266,26 @@ public:
                    const wxString& basepath = wxEmptyString);
 
     /**
-        Sets fonts. See wxHtmlWindow::SetFonts for detailed description.
+        Sets fonts. See wxHtmlDCRenderer::SetFonts for detailed description.
     */
     void SetFonts(const wxString& normal_face, const wxString& fixed_face,
                   const int* sizes = NULL);
+  
+    /**
+        Sets the name used for preview frames and setup dialogs.
+
+        @since 2.8.11 / 2.9.1
+    */
+    void SetName(const wxString& name);
+
+    /**
+        Sets default font sizes and/or default font size. 
+        See wxHtmlDCRenderer::SetStandardFonts for detailed description.
+        @see SetFonts()
+    */
+    void SetStandardFonts(int size = -1,
+                          const wxString& normal_face = wxEmptyString,
+                          const wxString& fixed_face = wxEmptyString);
 
     /**
         Set page footer. The following macros can be used inside it:
@@ -243,9 +321,38 @@ 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;
 };
 
 
+enum {
+    wxPAGE_ODD,
+    wxPAGE_EVEN,
+    wxPAGE_ALL
+};
+
 
 /**
     @class wxHtmlPrintout
@@ -270,7 +377,8 @@ public:
     static void AddFilter(wxHtmlFilter* filter);
 
     /**
-        Sets fonts. See wxHtmlWindow::SetFonts for detailed description.
+        This function sets font sizes and faces. See wxHtmlWindow::SetFonts
+        for detailed description.
     */
     void SetFonts(const wxString& normal_face, const wxString& fixed_face,
                   const int* sizes = NULL);