X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Fmathml_editor%2Fsrc%2FTNode.hh;fp=helm%2FDEVEL%2Fmathml_editor%2Fsrc%2FTNode.hh;h=0000000000000000000000000000000000000000;hb=c7514aaa249a96c5fdd39b1123fbdb38d92f20b6;hp=adbfe69a68166138564efb94a71fcc6f865fb46d;hpb=1c7fb836e2af4f2f3d18afd0396701f2094265ff;p=helm.git diff --git a/helm/DEVEL/mathml_editor/src/TNode.hh b/helm/DEVEL/mathml_editor/src/TNode.hh deleted file mode 100644 index adbfe69a6..000000000 --- a/helm/DEVEL/mathml_editor/src/TNode.hh +++ /dev/null @@ -1,107 +0,0 @@ -/* This file is part of EdiTeX, an editor of mathematical - * expressions based on TeX syntax. - * - * Copyright (C) 2002-2003 Luca Padovani , - * 2003 Paolo Marinelli . - * - * 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 - */ - -#ifndef __TNode_hh__ -#define __TNode_hh__ - -#include "dom.hh" -#include "globals.hh" -#include "TDictionary.hh" - -class TNode -{ -public: - TNode(void) : node(0) { }; - TNode(const DOM::Node& n) : node(n) { }; - TNode(const DOM::Element& elem) : node(elem) { }; - TNode(const TNode& n) : node(n.node) { }; - - TNode next(void) const; - TNode nextL(void) const; - TNode prev(void) const; - TNode prevL(void) const; - TNode core(void) const; - TNode parent(void) const; - TNode first(void) const; - TNode firstL(void) const; - TNode last(void) const; - TNode lastL(void) const; - TNode child(unsigned) const; - unsigned size(void) const; - bool empty(void) const { return !first().node; }; - std::string value(void) const { return (*this)["val"]; }; - - class ProxyAttr - { - public: - ProxyAttr(const DOM::Element& n, const std::string& s) : node(n), name(s) { }; - operator std::string() const { return node.getAttribute(name); }; - ProxyAttr& operator=(const std::string& v) { node.setAttribute(name, v); }; - bool operator==(const std::string& v) const { return node.getAttribute(name) == v; }; - bool operator!=(const std::string& v) const { return node.getAttribute(name) != v; }; - private: - DOM::Element node; - std::string name; - }; - - operator bool() const { return node; }; - DOM::Element element(void) const { return node; }; - bool operator==(const TNode& n) const { return node == n.node; }; - bool operator!=(const TNode& n) const { return node != n.node; }; - TNode operator[](int i) const { return child(i); }; - ProxyAttr operator[](const char* s) const { return ProxyAttr(node, s); }; - - //void advance(const TNode&) const; - void remove(void) const; - void replace(const TNode&) const; - void replace(const TNode&, const TNode&) const; - void insert(const TNode&) const; - void append(const TNode&) const; - void append(const TNode&, const TNode&) const; - void prepend(const TNode&) const; - - std::string get(const std::string&) const; - void set(const std::string&, const std::string&) const; - - std::string name(void) const { return node.get_localName(); }; - std::string nameC(void) const { return node.getAttribute("name"); }; - bool hasId(void) const { return node.hasAttribute("id"); }; - bool hasId(const std::string& id) const { return node.getAttribute("id") == id; }; - bool is(const std::string& s) const { return name() == s; }; - bool isG(void) const { return is("g"); }; - bool isSb(void) const { return is("sb"); }; - bool isSp(void) const { return is("sp"); }; - bool isC(void) const { return is("c"); } - bool isC(const std::string& name) const - { return isC() && node.getAttribute("name") == name; }; - bool isT(void) const { return (is("o") || is("i") || is("n") || is("s")); }; - - friend class TDocument; - -private: - DOM::Element node; -}; - -#endif // __TNode_hh__