2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: richtext/richtextxml.h
|
2008-03-09 13:09:29 -04:00
|
|
|
// Purpose: interface of wxRichTextXMLHandler
|
2008-03-08 08:52:38 -05:00
|
|
|
// Author: wxWidgets team
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Licence: wxWindows license
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/**
|
|
|
|
@class wxRichTextXMLHandler
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
A handler for loading and saving content in an XML format specific
|
2008-10-09 12:30:57 -04:00
|
|
|
to wxRichTextBuffer.
|
|
|
|
|
|
|
|
You can either add the handler to the buffer and load and save through
|
|
|
|
the buffer or control API, or you can create an instance of the handler
|
|
|
|
on the stack and call its functions directly.
|
|
|
|
|
|
|
|
|
|
|
|
@section richtextxmlhandler_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_INCLUDE_STYLESHEET
|
|
|
|
Include the style sheet in loading and saving operations.
|
|
|
|
|
2008-03-08 09:43:31 -05: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 wxRichTextXMLHandler : public wxRichTextFileHandler
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
Constructor.
|
|
|
|
*/
|
2009-01-18 16:46:46 -05:00
|
|
|
wxRichTextXMLHandler(const wxString& name = "XML",
|
|
|
|
const wxString& ext = "xml",
|
2008-10-13 07:09:56 -04:00
|
|
|
int type = wxRICHTEXT_TYPE_XML);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns @true.
|
|
|
|
*/
|
2008-09-27 07:21:10 -04:00
|
|
|
virtual bool CanLoad() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns @true.
|
|
|
|
*/
|
2008-09-27 07:21:10 -04:00
|
|
|
virtual bool CanSave() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Creates XML code for a given character or paragraph style.
|
|
|
|
*/
|
2008-03-09 08:33:59 -04:00
|
|
|
wxString CreateStyle(const wxTextAttr& attr, bool isPara = false);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Recursively exports an object to the stream.
|
|
|
|
*/
|
|
|
|
bool ExportXML(wxOutputStream& stream, wxMBConv* convMem,
|
|
|
|
wxMBConv* convFile,
|
|
|
|
wxRichTextObject& obj,
|
|
|
|
int level);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Helper function: gets node context.
|
|
|
|
*/
|
|
|
|
wxString GetNodeContent(wxXmlNode* node);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Helper function: gets a named parameter from the XML node.
|
|
|
|
*/
|
|
|
|
wxXmlNode* GetParamNode(wxXmlNode* node, const wxString& param);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Helper function: gets a named parameter from the XML node.
|
|
|
|
*/
|
|
|
|
wxString GetParamValue(wxXmlNode* node, const wxString& param);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Helper function: gets style parameters from the given XML node.
|
|
|
|
*/
|
|
|
|
bool GetStyle(wxTextAttr& attr, wxXmlNode* node,
|
2008-03-09 08:33:59 -04:00
|
|
|
bool isPara = false);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Helper function: gets text from the node.
|
|
|
|
*/
|
|
|
|
wxString GetText(wxXmlNode* node,
|
|
|
|
const wxString& param = wxEmptyString,
|
2008-03-09 08:33:59 -04:00
|
|
|
bool translate = false);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Helper function: returns @true if the node has the given parameter.
|
|
|
|
*/
|
|
|
|
bool HasParam(wxXmlNode* node, const wxString& param);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Recursively imports an object.
|
|
|
|
*/
|
|
|
|
bool ImportXML(wxRichTextBuffer* buffer, wxXmlNode* node);
|
2008-10-29 14:55:57 -04:00
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
/**
|
|
|
|
Loads buffer context from the given stream.
|
|
|
|
*/
|
|
|
|
virtual bool DoLoadFile(wxRichTextBuffer* buffer, wxInputStream& stream);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Saves buffer context to the given stream.
|
|
|
|
*/
|
|
|
|
virtual bool DoSaveFile(wxRichTextBuffer* buffer, wxOutputStream& stream);
|
2008-03-08 08:52:38 -05:00
|
|
|
};
|
2008-03-10 11:24:38 -04:00
|
|
|
|