X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5bddd46dde044ccb04952e027b4ec27bb1251bba..9e9574fe45b176ee74bba8fad7574cf9906145d1:/interface/wx/html/htmprint.h?ds=sidebyside
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: