2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: richtext/richtexthtml.h
|
2008-03-09 13:09:29 -04:00
|
|
|
// Purpose: interface of wxRichTextHTMLHandler
|
2008-03-08 08:52:38 -05:00
|
|
|
// Author: wxWidgets team
|
|
|
|
// RCS-ID: $Id$
|
2010-07-13 09:29:13 -04:00
|
|
|
// Licence: wxWindows licence
|
2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/**
|
|
|
|
@class wxRichTextHTMLHandler
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
Handles HTML output (only) for wxRichTextCtrl content.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
The most flexible way to use this class is to create a temporary object and call
|
|
|
|
its functions directly, rather than use wxRichTextBuffer::SaveFile or
|
|
|
|
wxRichTextCtrl::SaveFile.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
Image handling requires a little extra work from the application, to choose an
|
2008-10-09 12:30:57 -04:00
|
|
|
appropriate image format for the target HTML viewer and to clean up the temporary
|
|
|
|
images later.
|
|
|
|
If you are planning to load the HTML into a standard web browser, you can
|
2008-03-08 08:52:38 -05:00
|
|
|
specify the handler flag wxRICHTEXT_HANDLER_SAVE_IMAGES_TO_BASE64 (the default)
|
|
|
|
and no extra work is required: the images will be written with the HTML.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
However, if you want wxHTML compatibility, you will need to use
|
2008-10-09 12:30:57 -04:00
|
|
|
@c wxRICHTEXT_HANDLER_SAVE_IMAGES_TO_MEMORY or
|
|
|
|
@c wxRICHTEXT_HANDLER_SAVE_IMAGES_TO_FILES.
|
|
|
|
|
|
|
|
In this case, you must either call wxRichTextHTMLHandler::DeleteTemporaryImages
|
|
|
|
before the next load operation, or you must store the image locations and
|
|
|
|
delete them yourself when appropriate.
|
|
|
|
|
|
|
|
You can call wxRichTextHTMLHandler::GetTemporaryImageLocations to
|
2008-03-08 08:52:38 -05:00
|
|
|
get the array of temporary image names.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-10-09 12:30:57 -04:00
|
|
|
|
|
|
|
@section richtexthtmlhandler_flags Handler flags
|
|
|
|
|
|
|
|
The following flags can be used with this handler, via the handler's SetFlags()
|
|
|
|
function or the buffer or control's SetHandlerFlags() function:
|
|
|
|
|
|
|
|
- wxRICHTEXT_HANDLER_SAVE_IMAGES_TO_MEMORY
|
|
|
|
Images are saved to the memory filesystem: suitable for showing wxHTML windows.
|
|
|
|
- wxRICHTEXT_HANDLER_SAVE_IMAGES_TO_FILES
|
|
|
|
Images are saved to temporary files: suitable for showing in wxHTML windows.
|
|
|
|
- wxRICHTEXT_HANDLER_SAVE_IMAGES_TO_BASE64
|
|
|
|
Images are written with the HTML files in Base 64 format: suitable for showing
|
|
|
|
in web browsers.
|
|
|
|
- wxRICHTEXT_HANDLER_NO_HEADER_FOOTER
|
|
|
|
Don't include header and footer tags (HTML, HEAD, BODY), so that the HTML
|
|
|
|
can be used as part of a larger document.
|
2009-09-23 07:05:52 -04:00
|
|
|
- wxRICHTEXT_HANDLER_USE_CSS
|
|
|
|
Use CSS where possible, otherwise use workarounds that will show in wxHtmlWindow.
|
2008-10-09 12:30:57 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@library{wxrichtext}
|
2008-03-09 13:09:29 -04:00
|
|
|
@category{richtext}
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
class wxRichTextHTMLHandler : public wxRichTextFileHandler
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
Constructor.
|
|
|
|
*/
|
2009-01-18 16:46:46 -05:00
|
|
|
wxRichTextHTMLHandler(const wxString& name = "HTML",
|
|
|
|
const wxString& ext = "html",
|
2008-10-09 12:30:57 -04:00
|
|
|
int type = wxRICHTEXT_TYPE_HTML);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Clears the image locations generated by the last operation.
|
|
|
|
*/
|
|
|
|
void ClearTemporaryImageLocations();
|
|
|
|
|
|
|
|
/**
|
2008-10-09 12:30:57 -04:00
|
|
|
Deletes the in-memory or temporary files generated by the last operation.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
bool DeleteTemporaryImages();
|
2008-10-09 12:30:57 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
Delete the in-memory or temporary files generated by the last operation.
|
|
|
|
This is a static function that can be used to delete the saved locations
|
|
|
|
from an earlier operation, for example after the user has viewed the HTML file.
|
|
|
|
*/
|
2008-10-27 17:26:54 -04:00
|
|
|
static bool DeleteTemporaryImages(int flags,
|
|
|
|
const wxArrayString& imageLocations);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the mapping for converting point sizes to HTML font sizes.
|
|
|
|
*/
|
2008-09-27 07:21:10 -04:00
|
|
|
wxArrayInt GetFontSizeMapping() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the directory used to store temporary image files.
|
|
|
|
*/
|
2008-10-29 11:34:31 -04:00
|
|
|
const wxString& GetTempDir() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the image locations for the last operation.
|
|
|
|
*/
|
2008-10-29 11:34:31 -04:00
|
|
|
const wxArrayString& GetTemporaryImageLocations() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Reset the file counter, in case, for example, the same names are required each
|
2008-10-09 12:30:57 -04:00
|
|
|
time.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-09-27 07:21:10 -04:00
|
|
|
static void SetFileCounter(int counter);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the mapping for converting point sizes to HTML font sizes.
|
2008-10-09 12:30:57 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
There should be 7 elements, one for each HTML font size, each element
|
2008-10-09 12:30:57 -04:00
|
|
|
specifying the maximum point size for that HTML font size.
|
2008-03-08 08:52:38 -05:00
|
|
|
For example:
|
2008-10-09 12:30:57 -04:00
|
|
|
@code
|
|
|
|
wxArrayInt fontSizeMapping;
|
|
|
|
fontSizeMapping.Add(7);
|
|
|
|
fontSizeMapping.Add(9);
|
|
|
|
fontSizeMapping.Add(11);
|
|
|
|
fontSizeMapping.Add(12);
|
|
|
|
fontSizeMapping.Add(14);
|
|
|
|
fontSizeMapping.Add(22);
|
|
|
|
fontSizeMapping.Add(100);
|
|
|
|
|
|
|
|
htmlHandler.SetFontSizeMapping(fontSizeMapping);
|
|
|
|
@endcode
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
void SetFontSizeMapping(const wxArrayInt& fontSizeMapping);
|
|
|
|
|
|
|
|
/**
|
2008-10-09 12:30:57 -04:00
|
|
|
Sets the directory for storing temporary files.
|
|
|
|
If empty, the system temporary directory will be used.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
void SetTempDir(const wxString& tempDir);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the list of image locations generated by the last operation.
|
|
|
|
*/
|
|
|
|
void SetTemporaryImageLocations(const wxArrayString& locations);
|
2008-10-29 14:55:57 -04:00
|
|
|
|
|
|
|
protected:
|
|
|
|
/**
|
|
|
|
Saves the buffer content to the HTML stream.
|
|
|
|
*/
|
|
|
|
virtual bool DoSaveFile(wxRichTextBuffer* buffer, wxOutputStream& stream);
|
2008-03-08 08:52:38 -05:00
|
|
|
};
|
2008-03-10 11:24:38 -04:00
|
|
|
|