Python docstrings will have the correct case. Started adding extra docstrings where needed. Some other little tweaks and fixes. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24593 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			190 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
			
		
		
	
	
			190 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        _xml.i
 | |
| // Purpose:     SWIG interface for other wxXml classes
 | |
| //
 | |
| // Author:      Robin Dunn
 | |
| //
 | |
| // Created:     4-June-2001
 | |
| // RCS-ID:      $Id$
 | |
| // Copyright:   (c) 2003 by Total Control Software
 | |
| // Licence:     wxWindows license
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| // Not a %module
 | |
| 
 | |
| 
 | |
| //---------------------------------------------------------------------------
 | |
| %newgroup
 | |
| 
 | |
| 
 | |
| // In order to provide wrappers for wxXmlResourceHandler we need to also
 | |
| // provide the classes for representing and parsing XML.
 | |
| 
 | |
| 
 | |
| // Represents XML node type.
 | |
| enum wxXmlNodeType
 | |
| {
 | |
|     // note: values are synchronized with xmlElementType from libxml
 | |
|     wxXML_ELEMENT_NODE,
 | |
|     wxXML_ATTRIBUTE_NODE,
 | |
|     wxXML_TEXT_NODE,
 | |
|     wxXML_CDATA_SECTION_NODE,
 | |
|     wxXML_ENTITY_REF_NODE,
 | |
|     wxXML_ENTITY_NODE,
 | |
|     wxXML_PI_NODE,
 | |
|     wxXML_COMMENT_NODE,
 | |
|     wxXML_DOCUMENT_NODE,
 | |
|     wxXML_DOCUMENT_TYPE_NODE,
 | |
|     wxXML_DOCUMENT_FRAG_NODE,
 | |
|     wxXML_NOTATION_NODE,
 | |
|     wxXML_HTML_DOCUMENT_NODE
 | |
| };
 | |
| 
 | |
| 
 | |
| 
 | |
| // Represents node property(ies).
 | |
| // Example: in <img src="hello.gif" id="3"/> "src" is property with value
 | |
| //          "hello.gif" and "id" is property with value "3".
 | |
| class wxXmlProperty
 | |
| {
 | |
| public:
 | |
|     wxXmlProperty(const wxString& name = wxPyEmptyString,
 | |
|                   const wxString& value = wxPyEmptyString,
 | |
|                   wxXmlProperty *next = NULL);
 | |
| 
 | |
|     wxString GetName() const;
 | |
|     wxString GetValue() const;
 | |
|     wxXmlProperty *GetNext() const;
 | |
| 
 | |
|     void SetName(const wxString& name);
 | |
|     void SetValue(const wxString& value);
 | |
|     void SetNext(wxXmlProperty *next);
 | |
| };
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| // Represents node in XML document. Node has name and may have content
 | |
| // and properties. Most common node types are wxXML_TEXT_NODE (name and props
 | |
| // are irrelevant) and wxXML_ELEMENT_NODE (e.g. in <title>hi</title> there is
 | |
| // element with name="title", irrelevant content and one child (wxXML_TEXT_NODE
 | |
| // with content="hi").
 | |
| //
 | |
| // If wxUSE_UNICODE is 0, all strings are encoded in the encoding given to Load
 | |
| // (default is UTF-8).
 | |
| class wxXmlNode
 | |
| {
 | |
| public:
 | |
|     wxXmlNode(wxXmlNode *parent = NULL,
 | |
|               wxXmlNodeType type = 0,
 | |
|               const wxString& name = wxPyEmptyString,
 | |
|               const wxString& content = wxPyEmptyString,
 | |
|               wxXmlProperty *props = NULL,
 | |
|               wxXmlNode *next = NULL);
 | |
|     ~wxXmlNode();
 | |
| 
 | |
| 
 | |
|     // user-friendly creation:
 | |
|     %name(XmlNodeEasy) wxXmlNode(wxXmlNodeType type, const wxString& name,
 | |
|                                   const wxString& content = wxPyEmptyString);
 | |
| 
 | |
|     void AddChild(wxXmlNode *child);
 | |
|     void InsertChild(wxXmlNode *child, wxXmlNode *before_node);
 | |
|     bool RemoveChild(wxXmlNode *child);
 | |
|     void AddProperty(wxXmlProperty *prop);
 | |
|     %name(AddPropertyName) void AddProperty(const wxString& name, const wxString& value);
 | |
|     bool DeleteProperty(const wxString& name);
 | |
| 
 | |
|     // access methods:
 | |
|     wxXmlNodeType GetType() const;
 | |
|     wxString GetName() const;
 | |
|     wxString GetContent() const;
 | |
| 
 | |
|     wxXmlNode *GetParent() const;
 | |
|     wxXmlNode *GetNext() const;
 | |
|     wxXmlNode *GetChildren() const;
 | |
| 
 | |
|     wxXmlProperty *GetProperties() const;
 | |
|     wxString GetPropVal(const wxString& propName,
 | |
|                         const wxString& defaultVal) const;
 | |
|     bool HasProp(const wxString& propName) const;
 | |
| 
 | |
|     void SetType(wxXmlNodeType type);
 | |
|     void SetName(const wxString& name);
 | |
|     void SetContent(const wxString& con);
 | |
| 
 | |
|     void SetParent(wxXmlNode *parent);
 | |
|     void SetNext(wxXmlNode *next);
 | |
|     void SetChildren(wxXmlNode *child);
 | |
| 
 | |
|     void SetProperties(wxXmlProperty *prop);
 | |
| };
 | |
| 
 | |
| 
 | |
| 
 | |
| // This class holds XML data/document as parsed by XML parser.
 | |
| class wxXmlDocument : public wxObject
 | |
| {
 | |
| public:
 | |
|     wxXmlDocument(const wxString& filename,
 | |
|                   const wxString& encoding = wxPyUTF8String);
 | |
|     %name(XmlDocumentFromStream) wxXmlDocument(wxInputStream& stream,
 | |
|                                                 const wxString& encoding = wxPyUTF8String);
 | |
|     %name(EmptyXmlDocument) wxXmlDocument();
 | |
| 
 | |
|     ~wxXmlDocument();
 | |
| 
 | |
| 
 | |
|     // Parses .xml file and loads data. Returns True on success, False
 | |
|     // otherwise.
 | |
|     bool Load(const wxString& filename,
 | |
|               const wxString& encoding = wxPyUTF8String);
 | |
|     %name(LoadFromStream)bool Load(wxInputStream& stream,
 | |
|                                    const wxString& encoding = wxPyUTF8String);
 | |
| 
 | |
|     // Saves document as .xml file.
 | |
|     bool Save(const wxString& filename) const;
 | |
|     %name(SaveToStream)bool Save(wxOutputStream& stream) const;
 | |
| 
 | |
|     bool IsOk() const;
 | |
| 
 | |
|     // Returns root node of the document.
 | |
|     wxXmlNode *GetRoot() const;
 | |
| 
 | |
|     // Returns version of document (may be empty).
 | |
|     wxString GetVersion() const;
 | |
| 
 | |
|     // Returns encoding of document (may be empty).
 | |
|     // Note: this is the encoding original file was saved in, *not* the
 | |
|     // encoding of in-memory representation!
 | |
|     wxString GetFileEncoding() const;
 | |
| 
 | |
|     // Write-access methods:
 | |
|     void SetRoot(wxXmlNode *node);
 | |
|     void SetVersion(const wxString& version);
 | |
|     void SetFileEncoding(const wxString& encoding);
 | |
| 
 | |
| //     %extend {
 | |
| //         // Returns encoding of in-memory representation of the document (same
 | |
| //         // as passed to Load or ctor, defaults to UTF-8).  NB: this is
 | |
| //         // meaningless in Unicode build where data are stored as wchar_t*
 | |
| //         wxString GetEncoding() {
 | |
| //         %#if wxUSE_UNICODE
 | |
| //             return wxPyEmptyString;
 | |
| //         %#else
 | |
| //             return self->GetEncoding();
 | |
| //         %#endif
 | |
| //         }
 | |
| //         void SetEncoding(const wxString& enc) {
 | |
| //         %#if wxUSE_UNICODE
 | |
| //             // do nothing
 | |
| //         %#else
 | |
| //             self->SetEncoding(enc);
 | |
| //         %#endif
 | |
| //         }
 | |
| //     }
 | |
| };
 | |
| 
 | |
| //---------------------------------------------------------------------------
 | |
| //---------------------------------------------------------------------------
 |