Files
wxWidgets/interface/wx/richtext/richtextxml.h
Vadim Zeitlin 3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00

112 lines
3.2 KiB
Objective-C

/////////////////////////////////////////////////////////////////////////////
// Name: richtext/richtextxml.h
// Purpose: interface of wxRichTextXMLHandler
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@class wxRichTextXMLHandler
A handler for loading and saving content in an XML format specific
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.
@library{wxrichtext}
@category{richtext}
*/
class wxRichTextXMLHandler : public wxRichTextFileHandler
{
public:
/**
Constructor.
*/
wxRichTextXMLHandler(const wxString& name = "XML",
const wxString& ext = "xml",
int type = wxRICHTEXT_TYPE_XML);
/**
Returns @true.
*/
virtual bool CanLoad() const;
/**
Returns @true.
*/
virtual bool CanSave() const;
/**
Recursively exports an object to the stream.
*/
bool ExportXML(wxOutputStream& stream, 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 text from the node.
*/
wxString GetText(wxXmlNode* node,
const wxString& param = wxEmptyString,
bool translate = false);
/**
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, wxRichTextObject* obj, wxXmlNode* node);
/**
Call with XML node name, C++ class name so that wxRTC can read in the node.
If you add a custom object, call this.
*/
static void RegisterNodeName(const wxString& nodeName, const wxString& className) { sm_nodeNameToClassMap[nodeName] = className; }
/**
Cleans up the mapping between node name and C++ class.
*/
static void ClearNodeToClassMap() { sm_nodeNameToClassMap.clear(); }
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);
};