X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Fmathml_editor%2Fsrc%2FTDocument.hh;fp=helm%2FDEVEL%2Fmathml_editor%2Fsrc%2FTDocument.hh;h=cf4b7c391b2c7e60a491b8abd169a0f4293ce009;hb=30060cffed61b88fe53e4d6386b606050d6dfda0;hp=0000000000000000000000000000000000000000;hpb=e6927665462cbbace76cff1b17d4f8badcb44eda;p=helm.git diff --git a/helm/DEVEL/mathml_editor/src/TDocument.hh b/helm/DEVEL/mathml_editor/src/TDocument.hh new file mode 100644 index 000000000..cf4b7c391 --- /dev/null +++ b/helm/DEVEL/mathml_editor/src/TDocument.hh @@ -0,0 +1,40 @@ + +#ifndef __TDocument_hh__ +#define __TDocument_hh__ + +#include "dom.hh" +#include "TNode.hh" + +class TDocument : private DOM::EventListener +{ +public: + TDocument(void); + ~TDocument(); + + TNode create(const std::string&, unsigned = 0) const; + TNode createG(unsigned id = 0) const { return create("g", id); }; + TNode createC(const std::string&, unsigned = 0) const; + TNode createT(const std::string&, const std::string&, unsigned = 0) const; + TNode createI(const std::string& text, unsigned id = 0) const { return createT("i", text, id); }; + TNode createN(const std::string& text, unsigned id = 0) const { return createT("n", text, id); }; + TNode createO(const std::string& text, unsigned id = 0) const { return createT("o", text, id); }; + + DOM::Document document(void) const { return doc; }; + + TNode root(void) { return doc.get_documentElement(); }; + TNode dirtyNode(void) const { return dirty; }; + void clearDirty(void) { dirty = DOM::Element(0); }; + + void serialize(const char*) const; + +private: + DOM::Document doc; + DOM::Element dirty; + + virtual void handleEvent(const DOM::Event&); + static unsigned nodeDepth(const DOM::Node&); + static DOM::Node findCommonAncestor(const DOM::Node&, const DOM::Node&); + static DOM::Node findIdNode(const DOM::Node&); +}; + +#endif // __TDocument_hh__