// Purpose: interface of wxHtmlDCRenderer
// Author: wxWidgets team
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
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.
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.
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.
/**
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);
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).
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:
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;
};
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);