]> git.saurik.com Git - wxWidgets.git/blob - interface/wx/richtext/richtextxml.h
Complete wxEVT_MENU_{OPEN,CLOSE} implementation in wxMSW and wxOSX.
[wxWidgets.git] / interface / wx / richtext / richtextxml.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: richtext/richtextxml.h
3 // Purpose: interface of wxRichTextXMLHandler
4 // Author: wxWidgets team
5 // RCS-ID: $Id$
6 // Licence: wxWindows licence
7 /////////////////////////////////////////////////////////////////////////////
8
9 /**
10 @class wxRichTextXMLHandler
11
12 A handler for loading and saving content in an XML format specific
13 to wxRichTextBuffer.
14
15 You can either add the handler to the buffer and load and save through
16 the buffer or control API, or you can create an instance of the handler
17 on the stack and call its functions directly.
18
19
20 @section richtextxmlhandler_flags Handler flags
21
22 The following flags can be used with this handler, via the handler's SetFlags()
23 function or the buffer or control's SetHandlerFlags() function:
24
25 - wxRICHTEXT_HANDLER_INCLUDE_STYLESHEET
26 Include the style sheet in loading and saving operations.
27
28
29 @library{wxrichtext}
30 @category{richtext}
31 */
32 class wxRichTextXMLHandler : public wxRichTextFileHandler
33 {
34 public:
35 /**
36 Constructor.
37 */
38 wxRichTextXMLHandler(const wxString& name = "XML",
39 const wxString& ext = "xml",
40 int type = wxRICHTEXT_TYPE_XML);
41
42 /**
43 Returns @true.
44 */
45 virtual bool CanLoad() const;
46
47 /**
48 Returns @true.
49 */
50 virtual bool CanSave() const;
51
52 /**
53 Creates XML code for a given character or paragraph style.
54 */
55 wxString CreateStyle(const wxTextAttr& attr, bool isPara = false);
56
57 /**
58 Recursively exports an object to the stream.
59 */
60 bool ExportXML(wxOutputStream& stream, wxMBConv* convMem,
61 wxMBConv* convFile,
62 wxRichTextObject& obj,
63 int level);
64
65 /**
66 Helper function: gets node context.
67 */
68 wxString GetNodeContent(wxXmlNode* node);
69
70 /**
71 Helper function: gets a named parameter from the XML node.
72 */
73 wxXmlNode* GetParamNode(wxXmlNode* node, const wxString& param);
74
75 /**
76 Helper function: gets a named parameter from the XML node.
77 */
78 wxString GetParamValue(wxXmlNode* node, const wxString& param);
79
80 /**
81 Helper function: gets style parameters from the given XML node.
82 */
83 bool GetStyle(wxTextAttr& attr, wxXmlNode* node,
84 bool isPara = false);
85
86 /**
87 Helper function: gets text from the node.
88 */
89 wxString GetText(wxXmlNode* node,
90 const wxString& param = wxEmptyString,
91 bool translate = false);
92
93 /**
94 Helper function: returns @true if the node has the given parameter.
95 */
96 bool HasParam(wxXmlNode* node, const wxString& param);
97
98 /**
99 Recursively imports an object.
100 */
101 bool ImportXML(wxRichTextBuffer* buffer, wxXmlNode* node);
102
103 protected:
104
105 /**
106 Loads buffer context from the given stream.
107 */
108 virtual bool DoLoadFile(wxRichTextBuffer* buffer, wxInputStream& stream);
109
110 /**
111 Saves buffer context to the given stream.
112 */
113 virtual bool DoSaveFile(wxRichTextBuffer* buffer, wxOutputStream& stream);
114 };
115