| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        html/htmprint.h
 
- // Purpose:     interface of wxHtmlDCRenderer
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     @class wxHtmlDCRenderer
 
-     This class can render HTML document into a specified area of a DC.
 
-     You can use it in your own printing code, although use of wxHtmlEasyPrinting
 
-     or wxHtmlPrintout is strongly recommended.
 
-     @library{wxhtml}
 
-     @category{html}
 
- */
 
- class wxHtmlDCRenderer : public wxObject
 
- {
 
- public:
 
-     /**
 
-         Constructor.
 
-     */
 
-     wxHtmlDCRenderer();
 
-     /**
 
-         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() const;
 
-     /**
 
-         Renders HTML text to the DC.
 
-         @param x,y
 
-             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.
 
-         @param dont_render
 
-             if @true then this method only returns y coordinate of the next page
 
-             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.
 
-         @note
 
-         The following three methods @b must always be called before any call to
 
-         Render(), in this order:
 
-         - SetDC()
 
-         - SetSize()
 
-         - SetHtmlText()
 
-         @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 = false, int to = INT_MAX);
 
-     /**
 
-         Assign DC instance to the renderer.
 
-         @a pixel_scale can be used when rendering to high-resolution DCs (e.g. printer)
 
-         to adjust size of pixel metrics.
 
-         (Many dimensions in HTML are given in pixels -- e.g. image sizes. 300x300
 
-         image would be only one inch wide on typical printer. With pixel_scale = 3.0
 
-         it would be 3 inches.)
 
-     */
 
-     void SetDC(wxDC* dc, double pixel_scale = 1.0);
 
-     /**
 
-         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.
 
-         @param html
 
-             HTML text. This is not a filename.
 
-         @param basepath
 
-             base directory (html string would be stored there if it was in file).
 
-             It is used to determine path for loading images, for example.
 
-         @param isdir
 
-             @false if basepath is filename, @true if it is directory name
 
-             (see wxFileSystem for detailed explanation).
 
-     */
 
-     void SetHtmlText(const wxString& html,
 
-                      const wxString& basepath = wxEmptyString,
 
-                      bool isdir = true);
 
-     /**
 
-         Set size of output rectangle, in pixels. Note that you @b can't change
 
-         width of the rectangle between calls to Render() !
 
-         (You can freely change height.)
 
-     */
 
-     void SetSize(int width, int height);
 
- };
 
- /**
 
-     @class wxHtmlEasyPrinting
 
-     This class provides very simple interface to printing architecture.
 
-     It allows you to print HTML documents using only a few commands.
 
-     @note
 
-     Do not create this class on the stack only. You should create an instance
 
-     on app startup and use this instance for all printing operations.
 
-     The reason is that this class stores various settings in it.
 
-     @library{wxhtml}
 
-     @category{html,printing}
 
- */
 
- class wxHtmlEasyPrinting : public wxObject
 
- {
 
- public:
 
-     /**
 
-         Constructor.
 
-         @param name
 
-             Name of the printing object. Used by preview frames and setup dialogs.
 
-         @param parentWindow
 
-             pointer to the window that will own the preview frame and setup dialogs.
 
-             May be @NULL.
 
-     */
 
-     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).
 
-     */
 
-     wxPageSetupDialogData* GetPageSetupData();
 
-     /**
 
-         Gets the parent window for dialogs.
 
-     */
 
-     wxWindow* GetParentWindow() const;
 
-     /**
 
-         Returns pointer to wxPrintData instance used by this class.
 
-         You can set its parameters (via SetXXXX methods).
 
-     */
 
-     wxPrintData* GetPrintData();
 
-     /**
 
-         Display page setup dialog and allows the user to modify settings.
 
-     */
 
-     void PageSetup();
 
-     /**
 
-         Preview HTML file.
 
-         Returns @false in case of error -- call wxPrinter::GetLastError to get detailed
 
-         information about the kind of the error.
 
-     */
 
-     bool PreviewFile(const wxString& htmlfile);
 
-     /**
 
-         Preview HTML text (not file!).
 
-         Returns @false in case of error -- call wxPrinter::GetLastError to get detailed
 
-         information about the kind of the error.
 
-         @param htmltext
 
-             HTML text.
 
-         @param basepath
 
-             base directory (html string would be stored there if it was in file).
 
-             It is used to determine path for loading images, for example.
 
-     */
 
-     bool PreviewText(const wxString& htmltext,
 
-                      const wxString& basepath = wxEmptyString);
 
-     /**
 
-         Print HTML file.
 
-         Returns @false in case of error -- call wxPrinter::GetLastError to get detailed
 
-         information about the kind of the error.
 
-     */
 
-     bool PrintFile(const wxString& htmlfile);
 
-     /**
 
-         Print HTML text (not file!).
 
-         Returns @false in case of error -- call wxPrinter::GetLastError to get detailed
 
-         information about the kind of the error.
 
-         @param htmltext
 
-             HTML text.
 
-         @param basepath
 
-             base directory (html string would be stored there if it was in file).
 
-             It is used to determine path for loading images, for example.
 
-     */
 
-     bool PrintText(const wxString& htmltext,
 
-                    const wxString& basepath = wxEmptyString);
 
-     /**
 
-         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:
 
-          @@DATE@ is replaced by the current date in default format
 
-          @@PAGENUM@ is replaced by page number
 
-          @@PAGESCNT@ is replaced by total number of pages
 
-          @@TIME@ is replaced by the current time in default format
 
-          @@TITLE@ is replaced with the title of the document
 
-         @param footer
 
-             HTML text to be used as footer.
 
-         @param pg
 
-             one of wxPAGE_ODD, wxPAGE_EVEN and wxPAGE_ALL constants.
 
-     */
 
-     void SetFooter(const wxString& footer, int pg = wxPAGE_ALL);
 
-     /**
 
-         Set page header. The following macros can be used inside it:
 
-         - @@DATE@ is replaced by the current date in default format
 
-         - @@PAGENUM@ is replaced by page number
 
-         - @@PAGESCNT@ is replaced by total number of pages
 
-         - @@TIME@ is replaced by the current time in default format
 
-         - @@TITLE@ is replaced with the title of the document
 
-         @param header
 
-             HTML text to be used as header.
 
-         @param pg
 
-             one of wxPAGE_ODD, wxPAGE_EVEN and wxPAGE_ALL constants.
 
-     */
 
-     void SetHeader(const wxString& header, int pg = wxPAGE_ALL);
 
-     /**
 
-         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
 
-     This class serves as printout class for HTML documents.
 
-     @library{wxhtml}
 
-     @category{html,printing}
 
- */
 
- class wxHtmlPrintout : public wxPrintout
 
- {
 
- public:
 
-     /**
 
-         Constructor.
 
-     */
 
-     wxHtmlPrintout(const wxString& title = "Printout");
 
-     /**
 
-         Adds a filter to the static list of filters for wxHtmlPrintout.
 
-         See wxHtmlFilter for further information.
 
-     */
 
-     static void AddFilter(wxHtmlFilter* filter);
 
-     /**
 
-         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);
 
-     /**
 
-         Set page footer. The following macros can be used inside it:
 
-         - @@DATE@ is replaced by the current date in default format
 
-         - @@PAGENUM@ is replaced by page number
 
-         - @@PAGESCNT@ is replaced by total number of pages
 
-         - @@TIME@ is replaced by the current time in default format
 
-         - @@TITLE@ is replaced with the title of the document
 
-         @param footer
 
-             HTML text to be used as footer.
 
-         @param pg
 
-             one of wxPAGE_ODD, wxPAGE_EVEN and wxPAGE_ALL constants.
 
-     */
 
-     void SetFooter(const wxString& footer, int pg = wxPAGE_ALL);
 
-     /**
 
-         Set page header. The following macros can be used inside it:
 
-         - @@DATE@ is replaced by the current date in default format
 
-         - @@PAGENUM@ is replaced by page number
 
-         - @@PAGESCNT@ is replaced by total number of pages
 
-         - @@TIME@ is replaced by the current time in default format
 
-         - @@TITLE@ is replaced with the title of the document
 
-         @param header
 
-             HTML text to be used as header.
 
-         @param pg
 
-             one of wxPAGE_ODD, wxPAGE_EVEN and wxPAGE_ALL constants.
 
-     */
 
-     void SetHeader(const wxString& header, int pg = wxPAGE_ALL);
 
-     /**
 
-         Prepare the class for printing this HTML @b file.
 
-         The file may be located on any virtual file system or it may be normal file.
 
-     */
 
-     void SetHtmlFile(const wxString& htmlfile);
 
-     /**
 
-         Prepare the class for printing this HTML text.
 
-         @param html
 
-             HTML text. (NOT file!)
 
-         @param basepath
 
-             base directory (html string would be stored there if it was in file).
 
-             It is used to determine path for loading images, for example.
 
-         @param isdir
 
-             @false if basepath is filename, @true if it is directory name
 
-             (see wxFileSystem for detailed explanation).
 
-     */
 
-     void SetHtmlText(const wxString& html,
 
-                      const wxString& basepath = wxEmptyString,
 
-                      bool isdir = true);
 
-     /**
 
-         Sets margins in millimeters.
 
-         Defaults to 1 inch for margins and 0.5cm for space between text and header
 
-         and/or footer.
 
-     */
 
-     void SetMargins(float top = 25.2, float bottom = 25.2,
 
-                     float left = 25.2,
 
-                     float right = 25.2,
 
-                     float spaces = 5);
 
- };
 
 
  |