git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52425 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			331 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			331 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        html/htmprint.h
 | 
						|
// Purpose:     interface of wxHtmlDCRenderer
 | 
						|
// Author:      wxWidgets team
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Licence:     wxWindows license
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxHtmlDCRenderer
 | 
						|
    @headerfile htmprint.h wx/html/htmprint.h
 | 
						|
 | 
						|
    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{FIXME}
 | 
						|
*/
 | 
						|
class wxHtmlDCRenderer : public wxObject
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
        Constructor.
 | 
						|
    */
 | 
						|
    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.
 | 
						|
    */
 | 
						|
    int GetTotalHeight();
 | 
						|
 | 
						|
    /**
 | 
						|
        Renders HTML text to the DC.
 | 
						|
        
 | 
						|
        @param x,y
 | 
						|
            position of upper-left corner of printing rectangle (see SetSize)
 | 
						|
        @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
 | 
						|
    */
 | 
						|
    int Render(int x, int y, int from = 0, int dont_render = false);
 | 
						|
 | 
						|
    /**
 | 
						|
        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);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets fonts. See wxHtmlWindow::SetFonts for
 | 
						|
        detailed description.
 | 
						|
        See also SetSize().
 | 
						|
    */
 | 
						|
    void SetFonts(const wxString& normal_face,
 | 
						|
                  const wxString& fixed_face,
 | 
						|
                  const int sizes = NULL);
 | 
						|
 | 
						|
    /**
 | 
						|
        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 wxHtmlDCRenderer::Render!
 | 
						|
        (You can freely change height.)
 | 
						|
    */
 | 
						|
    void SetSize(int width, int height);
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxHtmlEasyPrinting
 | 
						|
    @headerfile htmprint.h wx/html/htmprint.h
 | 
						|
 | 
						|
    This class provides very simple interface to printing
 | 
						|
    architecture. It allows you to print HTML documents using
 | 
						|
    only a few commands.
 | 
						|
 | 
						|
    @library{wxhtml}
 | 
						|
    @category{html}
 | 
						|
*/
 | 
						|
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 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 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);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the parent window for dialogs.
 | 
						|
    */
 | 
						|
    void SetParentWindow(wxWindow* window);
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxHtmlPrintout
 | 
						|
    @headerfile htmprint.h wx/html/htmprint.h
 | 
						|
 | 
						|
    This class serves as printout class for HTML documents.
 | 
						|
 | 
						|
    @library{wxhtml}
 | 
						|
    @category{html}
 | 
						|
*/
 | 
						|
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);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets fonts. 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);
 | 
						|
};
 | 
						|
 |