wxWidgets/include/wx/richtext/richtextxml.h
Julian Smart d2d0adc776 Added URL support to attribute objects and to wxRichTextCtrl,
generating a wxTextUrlEvent as appropriate.
Added outline list support and updated previews.
Added alignment support for bullets.
Added single right parenthesis support.
Added XML stylesheet reading/writing.
Changed SetBulletSymbol to SetBulletText so it can support
bullet text more generally (e.g. for cached outline list numbering)
Added wxRichTextRenderer to isolate e.g. bullet drawing and make
it customisable.
Added event handler support to wxRichTextBuffer.
Updated documentation.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42431 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-26 06:32:47 +00:00

80 lines
2.5 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: wx/richtext/richeditxml.h
// Purpose: XML and HTML I/O for wxRichTextCtrl
// Author: Julian Smart
// Modified by:
// Created: 2005-09-30
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_RICHTEXTXML_H_
#define _WX_RICHTEXTXML_H_
/*!
* Includes
*/
#include "wx/richtext/richtextbuffer.h"
#include "wx/richtext/richtextstyles.h"
#if wxUSE_RICHTEXT && wxUSE_XML
/*!
* wxRichTextXMLHandler
*/
class WXDLLIMPEXP_XML wxXmlNode;
class WXDLLIMPEXP_RICHTEXT wxRichTextXMLHandler: public wxRichTextFileHandler
{
DECLARE_CLASS(wxRichTextXMLHandler)
public:
wxRichTextXMLHandler(const wxString& name = wxT("XML"), const wxString& ext = wxT("xml"), int type = wxRICHTEXT_TYPE_XML)
: wxRichTextFileHandler(name, ext, type)
{ }
#if wxUSE_STREAMS
/// Recursively export an object
bool ExportXML(wxOutputStream& stream, wxMBConv* convMem, wxMBConv* convFile, wxRichTextObject& obj, int level);
bool ExportStyleDefinition(wxOutputStream& stream, wxMBConv* convMem, wxMBConv* convFile, wxRichTextStyleDefinition* def, int level);
/// Recursively import an object
bool ImportXML(wxRichTextBuffer* buffer, wxXmlNode* node);
bool ImportStyleDefinition(wxRichTextStyleSheet* sheet, wxXmlNode* node);
/// Create style parameters
wxString CreateStyle(const wxTextAttrEx& attr, bool isPara = false);
/// Get style parameters
bool GetStyle(wxTextAttrEx& attr, wxXmlNode* node, bool isPara = false);
#endif
/// Can we save using this handler?
virtual bool CanSave() const { return true; }
/// Can we load using this handler?
virtual bool CanLoad() const { return true; }
// Implementation
bool HasParam(wxXmlNode* node, const wxString& param);
wxXmlNode *GetParamNode(wxXmlNode* node, const wxString& param);
wxString GetNodeContent(wxXmlNode *node);
wxString GetParamValue(wxXmlNode *node, const wxString& param);
wxString GetText(wxXmlNode *node, const wxString& param = wxEmptyString, bool translate = false);
protected:
#if wxUSE_STREAMS
virtual bool DoLoadFile(wxRichTextBuffer *buffer, wxInputStream& stream);
virtual bool DoSaveFile(wxRichTextBuffer *buffer, wxOutputStream& stream);
#endif
};
#endif
// wxUSE_RICHTEXT && wxUSE_XML
#endif
// _WX_RICHTEXTXML_H_