]> git.sven.stormbind.net Git - sven/vym.git/blob - xml-freemind.h
Import Upstream version 2.6.11
[sven/vym.git] / xml-freemind.h
1 #ifndef XML_FREEMIND_H
2 #define XML_FREEMIND_H
3
4 #include "xml-base.h"
5
6 class BranchItem;
7 class VymModel;
8
9 /*! \brief Parsing Freemind maps from XML documents */
10
11 class parseFreemindHandler  : public parseBaseHandler
12 {
13 public:
14     bool startDocument();
15     QString parseHREF(QString);
16     bool startElement ( const QString&, const QString&,
17                         const QString& eName, const QXmlAttributes& atts ); 
18     bool   endElement ( const QString&, const QString&, const QString& ); 
19     bool characters   ( const QString&);
20     QString errorString();
21     bool readNodeAttr (const QXmlAttributes&);
22     bool readRichContentAttr (const QXmlAttributes&);
23
24 private:
25     QString     errorProt;
26     enum State 
27     { 
28         StateInit, 
29         StateAttributeRegistry,
30         StateAttributeName,
31         StateAttributeValue,
32         StateMap, 
33         StateNode, 
34         StateProperties, 
35         StateMapStyles, 
36         StateCloud,
37         StateEdge, 
38         StateIcon, 
39         StateFont,
40         StateArrowLink,
41         StateHook,
42         StateText,
43         StateRichContent,
44         StateHtml,
45         StateUnknown
46      };
47     enum HtmlPurpose {Node,Note,Unknown};
48     HtmlPurpose htmlPurpose;
49                  
50     State state;             
51     QList <State> stateStack;
52     BranchItem *lastBranch;
53     BranchItem *mapCenter;
54     BranchItem *mainBranchLeft;
55     BranchItem *mainBranchRight;
56 }; 
57 #endif