X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5bddd46dde044ccb04952e027b4ec27bb1251bba..9e9574fe45b176ee74bba8fad7574cf9906145d1:/interface/wx/html/htmprint.h diff --git a/interface/wx/html/htmprint.h b/interface/wx/html/htmprint.h index 7748f3915e..62b011d369 100644 --- a/interface/wx/html/htmprint.h +++ b/interface/wx/html/htmprint.h @@ -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,36 +24,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() - 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, 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. @@ -68,13 +90,49 @@ 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 ( \..\ ) + @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 + ( \ to \ ). + 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); + 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 ( \..\ ) + + @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. @@ -94,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); @@ -131,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). @@ -200,11 +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); + 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: @@ -240,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 @@ -267,11 +377,11 @@ 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); + 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: