1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/richtext/richeditxml.h
3 // Purpose: XML and HTML I/O for wxRichTextCtrl
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_RICHTEXTXML_H_
13 #define _WX_RICHTEXTXML_H_
19 #include "wx/richtext/richtextbuffer.h"
20 #include "wx/richtext/richtextstyles.h"
22 #if wxUSE_RICHTEXT && wxUSE_XML
25 * wxRichTextXMLHandler
28 class WXDLLIMPEXP_FWD_XML wxXmlNode
;
30 class WXDLLIMPEXP_RICHTEXT wxRichTextXMLHandler
: public wxRichTextFileHandler
32 DECLARE_CLASS(wxRichTextXMLHandler
)
34 wxRichTextXMLHandler(const wxString
& name
= wxT("XML"), const wxString
& ext
= wxT("xml"), int type
= wxRICHTEXT_TYPE_XML
)
35 : wxRichTextFileHandler(name
, ext
, type
)
39 /// Recursively export an object
40 bool ExportXML(wxOutputStream
& stream
, wxMBConv
* convMem
, wxMBConv
* convFile
, wxRichTextObject
& obj
, int level
);
41 bool ExportStyleDefinition(wxOutputStream
& stream
, wxMBConv
* convMem
, wxMBConv
* convFile
, wxRichTextStyleDefinition
* def
, int level
);
43 /// Recursively import an object
44 bool ImportXML(wxRichTextBuffer
* buffer
, wxXmlNode
* node
);
45 bool ImportStyleDefinition(wxRichTextStyleSheet
* sheet
, wxXmlNode
* node
);
47 /// Create style parameters
48 wxString
CreateStyle(const wxTextAttr
& attr
, bool isPara
= false);
50 /// Get style parameters
51 bool GetStyle(wxTextAttr
& attr
, wxXmlNode
* node
, bool isPara
= false);
54 /// Can we save using this handler?
55 virtual bool CanSave() const { return true; }
57 /// Can we load using this handler?
58 virtual bool CanLoad() const { return true; }
62 bool HasParam(wxXmlNode
* node
, const wxString
& param
);
63 wxXmlNode
*GetParamNode(wxXmlNode
* node
, const wxString
& param
);
64 wxString
GetNodeContent(wxXmlNode
*node
);
65 wxString
GetParamValue(wxXmlNode
*node
, const wxString
& param
);
66 wxString
GetText(wxXmlNode
*node
, const wxString
& param
= wxEmptyString
, bool translate
= false);
70 virtual bool DoLoadFile(wxRichTextBuffer
*buffer
, wxInputStream
& stream
);
71 virtual bool DoSaveFile(wxRichTextBuffer
*buffer
, wxOutputStream
& stream
);
76 // wxUSE_RICHTEXT && wxUSE_XML