No real changes, just clean up sources by removing trailing spaces from all the non-generated files. This should hopefully avoid future commits mixing significant changes with insignificant whitespace ones.
		
			
				
	
	
		
			513 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			513 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // 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.
 | |
| 
 | |
|         If the height of the area used with this renderer (see
 | |
|         wxHtmlDCRenderer::SetSize) is smaller that total height, the renderer
 | |
|         will produce more than one page of output.
 | |
| 
 | |
|         @see GetTotalWidth()
 | |
|     */
 | |
|     int GetTotalHeight() const;
 | |
| 
 | |
|     /**
 | |
|         Finds the next page break after the specified (vertical) position.
 | |
| 
 | |
|         An example of using this method:
 | |
| 
 | |
|         @code
 | |
|         std::vector<int> pages;
 | |
|         for ( int pos = 0; pos != wxNOT_FOUND; pos = renderer.FindNextPageBreak(pos) )
 | |
|         {
 | |
|             pages.push_back(pos);
 | |
|         }
 | |
| 
 | |
|         // "pages" vector now contains all page break positions and, in
 | |
|         // particular, its size() returns the number of pages
 | |
|         @endcode
 | |
| 
 | |
|         @param pos Absolute position of the last page break. For the initial
 | |
|             call of this function, it should be 0 and for the subsequent ones
 | |
|             it should be the previous return value.
 | |
|         @return Position of the next page break or @c wxNOT_FOUND if there are
 | |
|             no more of them.
 | |
| 
 | |
|         @since 3.1.2
 | |
|     */
 | |
|     int FindNextPageBreak(int pos) const;
 | |
| 
 | |
|     /**
 | |
|         Renders HTML text to the DC.
 | |
| 
 | |
|         When using multi-page documents, FindNextPageBreak() can be used to
 | |
|         find the values for @a from and @a to, which should be the consecutive
 | |
|         page breaks returned by that function.
 | |
| 
 | |
|         @param x,y
 | |
|             position of upper-left corner of printing rectangle (see SetSize()).
 | |
|         @param from
 | |
|             y-coordinate of the very first visible cell.
 | |
|         @param to
 | |
|             y-coordinate of the last visible cell or @c INT_MAX to use the full
 | |
|             page height.
 | |
| 
 | |
|         @note
 | |
|         The following three methods @b must always be called before any call to
 | |
|         Render(), in this order:
 | |
|         - SetDC()
 | |
|         - SetSize()
 | |
|         - SetHtmlText()
 | |
|     */
 | |
|     void Render(int x, int y, int from = 0, 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);
 | |
| 
 | |
|     /**
 | |
|         Associate the given HTML contents to the renderer.
 | |
| 
 | |
|         This is similar to SetHtmlText(), but is more efficient as the text can
 | |
|         be parsed only once, using wxHtmlParser::Parse(), and then passed to
 | |
|         wxHtmlDCRenderer multiple times or already reused for other purposes.
 | |
| 
 | |
|         Note that @a cell will be modified (e.g. laid out) by this function.
 | |
| 
 | |
|         @since 3.1.2
 | |
|      */
 | |
|     void SetHtmlCell(wxHtmlContainerCell& cell);
 | |
| 
 | |
|     /**
 | |
|         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);
 | |
| 
 | |
|     /**
 | |
|         Controls when the print dialog should be shown.
 | |
| 
 | |
|         @see SetPromptMode()
 | |
| 
 | |
|         @since 3.1.2
 | |
|     */
 | |
|     enum PromptMode
 | |
|     {
 | |
|         Prompt_Never,  //!< Do not show the print dialog.
 | |
|         Prompt_Once,   //!< Show the print dialog only the first time.
 | |
|         Prompt_Always  //!< Show the print dialog every time (default value).
 | |
|     };
 | |
| 
 | |
|     /**
 | |
|         Enable or disable showing the dialog before printing.
 | |
| 
 | |
|         The prompt mode determines the value of the @c prompt parameter passed
 | |
|         to wxPrinter::Print() when it is called by this class.
 | |
| 
 | |
|         Default prompt mode value is Prompt_Always.
 | |
| 
 | |
|         @since 3.1.2
 | |
|     */
 | |
|     void SetPromptMode(PromptMode promptMode);
 | |
| 
 | |
| 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);
 | |
| 
 | |
|     /**
 | |
|         Sets margins from wxPageSetupDialogData.
 | |
| 
 | |
|         @since 3.1.0
 | |
|     */
 | |
|     void SetMargins(const wxPageSetupDialogData& pageSetupData);
 | |
| };
 | |
| 
 |