See #15346. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74688 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			417 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			417 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        richtext/richtextprint.h
 | |
| // Purpose:     interface of wxRichTextHeaderFooterData
 | |
| // Author:      wxWidgets team
 | |
| // Licence:     wxWindows licence
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
| /**
 | |
|     These are the header and footer page identifiers, passed to functions such
 | |
|     as wxRichTextHeaderFooterData::SetFooterText to specify the odd or even page
 | |
|     for the text.
 | |
| */
 | |
| enum wxRichTextOddEvenPage {
 | |
|     wxRICHTEXT_PAGE_ODD,
 | |
|     wxRICHTEXT_PAGE_EVEN,
 | |
|     wxRICHTEXT_PAGE_ALL,
 | |
| };
 | |
| 
 | |
| 
 | |
| /**
 | |
|     These are the location identifiers for passing to functions such as
 | |
|     wxRichTextHeaderFooterData::SetFooterText(), to specify whether the text
 | |
|     is on the left, centre or right of the page.
 | |
| */
 | |
| enum wxRichTextPageLocation {
 | |
|     wxRICHTEXT_PAGE_LEFT,
 | |
|     wxRICHTEXT_PAGE_CENTRE,
 | |
|     wxRICHTEXT_PAGE_RIGHT
 | |
| };
 | |
| 
 | |
| 
 | |
| /**
 | |
|     @class wxRichTextHeaderFooterData
 | |
| 
 | |
| 
 | |
|     This class represents header and footer data to be passed to the
 | |
|     wxRichTextPrinting and wxRichTextPrintout classes.
 | |
| 
 | |
|     Headers and footers can be specified independently for odd, even or both page
 | |
|     sides. Different text can be specified for left, centre and right locations
 | |
|     on the page, and the font and text colour can also be specified.
 | |
| 
 | |
|     You can specify the following keywords in header and footer text, which will
 | |
|     be substituted for the actual values during printing and preview.
 | |
| 
 | |
|     - @@DATE@: the current date.
 | |
|     - @@PAGESCNT@: the total number of pages.
 | |
|     - @@PAGENUM@: the current page number.
 | |
|     - @@TIME@: the current time.
 | |
|     - @@TITLE@: the title of the document, as passed to the wxRichTextPrinting or
 | |
|       wxRichTextLayout constructor.
 | |
| 
 | |
|     @library{wxrichtext}
 | |
|     @category{richtext}
 | |
| */
 | |
| class wxRichTextHeaderFooterData : public wxObject
 | |
| {
 | |
| public:
 | |
|     //@{
 | |
|     /**
 | |
|         Constructors.
 | |
|     */
 | |
|     wxRichTextHeaderFooterData();
 | |
|     wxRichTextHeaderFooterData(const wxRichTextHeaderFooterData& data);
 | |
|     //@}
 | |
| 
 | |
|     /**
 | |
|         Clears all text.
 | |
|     */
 | |
|     void Clear();
 | |
| 
 | |
|     /**
 | |
|         Copies the data.
 | |
|     */
 | |
|     void Copy(const wxRichTextHeaderFooterData& data);
 | |
| 
 | |
|     /**
 | |
|         Returns the font specified for printing the header and footer.
 | |
|     */
 | |
|     const wxFont& GetFont() const;
 | |
| 
 | |
|     /**
 | |
|         Returns the margin between the text and the footer.
 | |
|     */
 | |
|     int GetFooterMargin() const;
 | |
| 
 | |
|     /**
 | |
|         Returns the footer text on odd or even pages, and at a given position on the
 | |
|         page (left, centre or right).
 | |
|     */
 | |
|     wxString GetFooterText(wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_EVEN,
 | |
|                            wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE) const;
 | |
| 
 | |
|     /**
 | |
|         Returns the margin between the text and the header.
 | |
|     */
 | |
|     int GetHeaderMargin() const;
 | |
| 
 | |
|     /**
 | |
|         Returns the header text on odd or even pages, and at a given position on the
 | |
|         page (left, centre or right).
 | |
|     */
 | |
|     wxString GetHeaderText(wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_EVEN,
 | |
|                            wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE) const;
 | |
| 
 | |
|     /**
 | |
|         Returns @true if the header and footer will be shown on the first page.
 | |
|     */
 | |
|     bool GetShowOnFirstPage() const;
 | |
| 
 | |
|     /**
 | |
|         Helper function for getting the header or footer text, odd or even pages, and
 | |
|         at a given position on the page (left, centre or right).
 | |
|     */
 | |
|     wxString GetText(int headerFooter, wxRichTextOddEvenPage page,
 | |
|                      wxRichTextPageLocation location) const;
 | |
| 
 | |
|     /**
 | |
|         Returns the text colour for drawing the header and footer.
 | |
|     */
 | |
|     const wxColour& GetTextColour() const;
 | |
| 
 | |
|     /**
 | |
|         Initialises the object.
 | |
|     */
 | |
|     void Init();
 | |
| 
 | |
|     /**
 | |
|         Sets the font for drawing the header and footer.
 | |
|     */
 | |
|     void SetFont(const wxFont& font);
 | |
| 
 | |
|     /**
 | |
|         Sets the footer text on odd or even pages, and at a given position on the page
 | |
|         (left, centre or right).
 | |
|     */
 | |
|     void SetFooterText(const wxString& text,
 | |
|                        wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_ALL,
 | |
|                        wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE);
 | |
| 
 | |
|     /**
 | |
|         Sets the header text on odd or even pages, and at a given position on the page
 | |
|         (left, centre or right).
 | |
|     */
 | |
|     void SetHeaderText(const wxString& text,
 | |
|                        wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_ALL,
 | |
|                        wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE);
 | |
| 
 | |
|     /**
 | |
|         Sets the margins between text and header or footer, in tenths of a millimeter.
 | |
|     */
 | |
|     void SetMargins(int headerMargin, int footerMargin);
 | |
| 
 | |
|     /**
 | |
|         Pass @true to show the header or footer on first page (the default).
 | |
|     */
 | |
|     void SetShowOnFirstPage(bool showOnFirstPage);
 | |
| 
 | |
|     /**
 | |
|         Helper function for setting the header or footer text, odd or even pages, and
 | |
|         at a given position on the page (left, centre or right).
 | |
|     */
 | |
|     void SetText(const wxString& text, int headerFooter,
 | |
|                  wxRichTextOddEvenPage page,
 | |
|                  wxRichTextPageLocation location);
 | |
| 
 | |
|     /**
 | |
|         Sets the text colour for drawing the header and footer.
 | |
|     */
 | |
|     void SetTextColour(const wxColour& col);
 | |
| 
 | |
|     /**
 | |
|         Assignment operator.
 | |
|     */
 | |
|     void operator operator=(const wxRichTextHeaderFooterData& data);
 | |
| };
 | |
| 
 | |
| 
 | |
| 
 | |
| /**
 | |
|     @class wxRichTextPrintout
 | |
| 
 | |
|     This class implements print layout for wxRichTextBuffer.
 | |
|     Instead of using it directly, you should normally use the wxRichTextPrinting class.
 | |
| 
 | |
|     @library{wxrichtext}
 | |
|     @category{richtext}
 | |
| */
 | |
| class wxRichTextPrintout : public wxPrintout
 | |
| {
 | |
| public:
 | |
|     /**
 | |
|         Constructor.
 | |
|     */
 | |
|     wxRichTextPrintout(const wxString& title = "Printout");
 | |
| 
 | |
|     /**
 | |
|         Calculates scaling and text, header and footer rectangles.
 | |
|     */
 | |
|     void CalculateScaling(wxDC* dc, wxRect& textRect,
 | |
|                           wxRect& headerRect,
 | |
|                           wxRect& footerRect);
 | |
| 
 | |
|     /**
 | |
|         Returns the header and footer data associated with the printout.
 | |
|     */
 | |
|     const wxRichTextHeaderFooterData& GetHeaderFooterData() const;
 | |
| 
 | |
|     /**
 | |
|         Gets the page information.
 | |
|     */
 | |
|     virtual void GetPageInfo(int* minPage, int* maxPage, int* selPageFrom,
 | |
|                              int* selPageTo);
 | |
| 
 | |
|     /**
 | |
|         Returns a pointer to the buffer being rendered.
 | |
|     */
 | |
|     wxRichTextBuffer* GetRichTextBuffer() const;
 | |
| 
 | |
|     /**
 | |
|         Returns @true if the given page exists in the printout.
 | |
|     */
 | |
|     virtual bool HasPage(int page);
 | |
| 
 | |
|     /**
 | |
|         Prepares for printing, laying out the buffer and calculating pagination.
 | |
|     */
 | |
|     virtual void OnPreparePrinting();
 | |
| 
 | |
|     /**
 | |
|         Does the actual printing for this page.
 | |
|     */
 | |
|     virtual bool OnPrintPage(int page);
 | |
| 
 | |
|     /**
 | |
|         Sets the header and footer data associated with the printout.
 | |
|     */
 | |
|     void SetHeaderFooterData(const wxRichTextHeaderFooterData& data);
 | |
| 
 | |
|     /**
 | |
|         Sets margins in 10ths of millimetre. Defaults to 1 inch for margins.
 | |
|     */
 | |
|     void SetMargins(int top = 254, int bottom = 254, int left = 254,
 | |
|                     int right = 254);
 | |
| 
 | |
|     /**
 | |
|         Sets the buffer to print. wxRichTextPrintout does not manage this pointer;
 | |
|         it should be managed by the calling code, such as wxRichTextPrinting.
 | |
|     */
 | |
|     void SetRichTextBuffer(wxRichTextBuffer* buffer);
 | |
| };
 | |
| 
 | |
| 
 | |
| 
 | |
| /**
 | |
|     @class wxRichTextPrinting
 | |
| 
 | |
|     This class provides a simple interface for performing wxRichTextBuffer printing
 | |
|     and previewing. It uses wxRichTextPrintout for layout and rendering.
 | |
| 
 | |
|     @library{wxrichtext}
 | |
|     @category{richtext}
 | |
| */
 | |
| class wxRichTextPrinting : public wxObject
 | |
| {
 | |
| public:
 | |
|     /**
 | |
|         Constructor.
 | |
| 
 | |
|         Optionally pass a title to be used in the preview frame and printing wait
 | |
|         dialog, and also a parent window for these windows.
 | |
|     */
 | |
|     wxRichTextPrinting(const wxString& name = "Printing",
 | |
|                        wxWindow* parentWindow = NULL);
 | |
| 
 | |
|     /**
 | |
|         A convenience function to get the footer text.
 | |
|         See wxRichTextHeaderFooterData for details.
 | |
|     */
 | |
|     wxString GetFooterText(wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_EVEN,
 | |
|                            wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE) const;
 | |
| 
 | |
|     /**
 | |
|         Returns the internal wxRichTextHeaderFooterData object.
 | |
|     */
 | |
|     const wxRichTextHeaderFooterData& GetHeaderFooterData() const;
 | |
| 
 | |
|     /**
 | |
|         A convenience function to get the header text.
 | |
|         See wxRichTextHeaderFooterData for details.
 | |
|     */
 | |
|     wxString GetHeaderText(wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_EVEN,
 | |
|                            wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE) const;
 | |
| 
 | |
|     /**
 | |
|         Returns a pointer to the internal page setup data.
 | |
|     */
 | |
|     wxPageSetupDialogData* GetPageSetupData();
 | |
| 
 | |
|     /**
 | |
|         Returns the parent window to be used for the preview window and printing
 | |
|         wait dialog.
 | |
|     */
 | |
|     wxWindow* GetParentWindow() const;
 | |
| 
 | |
|     /**
 | |
|         Returns the dimensions to be used for the preview window.
 | |
|     */
 | |
|     const wxRect& GetPreviewRect() const;
 | |
| 
 | |
|     /**
 | |
|         Returns a pointer to the internal print data.
 | |
|     */
 | |
|     wxPrintData* GetPrintData();
 | |
| 
 | |
|     /**
 | |
|         Returns the title of the preview window or printing wait caption.
 | |
|     */
 | |
|     const wxString& GetTitle() const;
 | |
| 
 | |
|     /**
 | |
|         Shows the page setup dialog.
 | |
|     */
 | |
|     void PageSetup();
 | |
| 
 | |
|     /**
 | |
|         Shows a preview window for the given buffer.
 | |
|         The function takes its own copy of @a buffer.
 | |
|     */
 | |
|     bool PreviewBuffer(const wxRichTextBuffer& buffer);
 | |
| 
 | |
|     /**
 | |
|         Shows a preview window for the given file.
 | |
| 
 | |
|         @a richTextFile can be a text file or XML file, or other file
 | |
|         depending on the available file handlers.
 | |
|     */
 | |
|     bool PreviewFile(const wxString& richTextFile);
 | |
| 
 | |
|     /**
 | |
|         Prints the given buffer. The function takes its own copy of @a buffer.
 | |
|         @a showPrintDialog can be @true to show the print dialog, or @false to print quietly.
 | |
|     */
 | |
|     bool PrintBuffer(const wxRichTextBuffer& buffer, bool showPrintDialog = true);
 | |
| 
 | |
|     /**
 | |
|         Prints the given file. @a richTextFile can be a text file or XML file,
 | |
|         or other file depending on the available file handlers. @a showPrintDialog
 | |
|         can be @true to show the print dialog, or @false to print quietly.
 | |
|     */
 | |
|     bool PrintFile(const wxString& richTextFile, bool showPrintDialog = true);
 | |
| 
 | |
|     /**
 | |
|         A convenience function to set the footer text.
 | |
|         See wxRichTextHeaderFooterData for details.
 | |
|     */
 | |
|     void SetFooterText(const wxString& text,
 | |
|                        wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_ALL,
 | |
|                        wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE);
 | |
| 
 | |
|     /**
 | |
|         Sets the internal wxRichTextHeaderFooterData object.
 | |
|     */
 | |
|     void SetHeaderFooterData(const wxRichTextHeaderFooterData& data);
 | |
| 
 | |
|     /**
 | |
|         Sets the wxRichTextHeaderFooterData font.
 | |
|     */
 | |
|     void SetHeaderFooterFont(const wxFont& font);
 | |
| 
 | |
|     /**
 | |
|         Sets the wxRichTextHeaderFooterData text colour.
 | |
|     */
 | |
|     void SetHeaderFooterTextColour(const wxColour& colour);
 | |
| 
 | |
|     /**
 | |
|         A convenience function to set the header text.
 | |
|         See wxRichTextHeaderFooterData for details.
 | |
|     */
 | |
|     void SetHeaderText(const wxString& text,
 | |
|                        wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_ALL,
 | |
|                        wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE);
 | |
| 
 | |
|     /**
 | |
|         Sets the page setup data.
 | |
|     */
 | |
|     void SetPageSetupData(const wxPageSetupDialogData& pageSetupData);
 | |
| 
 | |
|     /**
 | |
|         Sets the parent window to be used for the preview window and printing
 | |
|         wait dialog.
 | |
|     */
 | |
|     void SetParentWindow(wxWindow* parent);
 | |
| 
 | |
|     /**
 | |
|         Sets the dimensions to be used for the preview window.
 | |
|     */
 | |
|     void SetPreviewRect(const wxRect& rect);
 | |
| 
 | |
|     /**
 | |
|         Sets the print data.
 | |
|     */
 | |
|     void SetPrintData(const wxPrintData& printData);
 | |
| 
 | |
|     /**
 | |
|         Pass @true to show the header and footer on the first page.
 | |
|     */
 | |
|     void SetShowOnFirstPage(bool show);
 | |
| 
 | |
|     /**
 | |
|         Pass the title of the preview window or printing wait caption.
 | |
|     */
 | |
|     void SetTitle(const wxString& title);
 | |
| };
 | |
| 
 |