]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/mathml_editor/src/TDocument.hh
ocaml 3.09 transition
[helm.git] / helm / DEVEL / mathml_editor / src / TDocument.hh
index cf4b7c391b2c7e60a491b8abd169a0f4293ce009..02d1dc38dd7c794531166b223e234b3001826f15 100644 (file)
@@ -1,3 +1,27 @@
+/* This file is part of EdiTeX, an editor of mathematical
+ * expressions based on TeX syntax.
+ * 
+ * Copyright (C) 2002-2003 Luca Padovani <lpadovan@cs.unibo.it>,
+ *                    2003 Paolo Marinelli <pmarinel@cs.unibo.it>.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * For more information, please visit the project's home page
+ * http://helm.cs.unibo.it/editex/
+ * or send an email to <lpadovan@cs.unibo.it>
+ */
 
 #ifndef __TDocument_hh__
 #define __TDocument_hh__
@@ -11,6 +35,7 @@ public:
   TDocument(void);
   ~TDocument();
 
+  void  reset(void);
   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;
@@ -18,9 +43,11 @@ public:
   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); };
+  TNode createS(unsigned id = 0) const { return createT("s", "", id); };
 
   DOM::Document document(void) const { return doc; };
 
+  TNode getNodeById(unsigned) const;
   TNode root(void) { return doc.get_documentElement(); };
   TNode dirtyNode(void) const { return dirty; };
   void  clearDirty(void) { dirty = DOM::Element(0); };
@@ -32,6 +59,8 @@ private:
   DOM::Element dirty;
 
   virtual void handleEvent(const DOM::Event&);
+  static std::string makeId(unsigned);
+  static TNode getNodeByIdAux(const TNode&, const std::string&);
   static unsigned nodeDepth(const DOM::Node&);
   static DOM::Node findCommonAncestor(const DOM::Node&, const DOM::Node&);
   static DOM::Node findIdNode(const DOM::Node&);