dom_text.h
00001 /* 00002 * This file is part of the DOM implementation for KDE. 00003 * 00004 * (C) 1999 Lars Knoll (knoll@kde.org) 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Library General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Library General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Library General Public License 00017 * along with this library; see the file COPYING.LIB. If not, write to 00018 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00019 * Boston, MA 02111-1307, USA. 00020 * 00021 * This file includes excerpts from the Document Object Model (DOM) 00022 * Level 1 Specification (Recommendation) 00023 * http://www.w3.org/TR/REC-DOM-Level-1/ 00024 * Copyright © World Wide Web Consortium , (Massachusetts Institute of 00025 * Technology , Institut National de Recherche en Informatique et en 00026 * Automatique , Keio University ). All Rights Reserved. 00027 * 00028 * $Id: dom_text.h,v 1.9.12.1 2003/05/18 12:34:37 mueller Exp $ 00029 */ 00030 #ifndef _DOM_CharacterData_h_ 00031 #define _DOM_CharacterData_h_ 00032 00033 #include <dom/dom_node.h> 00034 00035 namespace DOM { 00036 00037 class DOMString; 00038 class CharacterDataImpl; 00039 00050 class CharacterData : public Node 00051 { 00052 public: 00053 CharacterData(); 00054 CharacterData(const CharacterData &other); 00055 CharacterData(const Node &other) : Node() 00056 {(*this)=other;} 00057 00058 CharacterData & operator = (const Node &other); 00059 CharacterData & operator = (const CharacterData &other); 00060 00061 ~CharacterData(); 00062 00079 DOMString data() const; 00080 00087 void setData( const DOMString & ); 00088 00096 unsigned long length() const; 00097 00119 DOMString substringData ( const unsigned long offset, const unsigned long count ); 00120 00135 void appendData ( const DOMString &arg ); 00136 00153 void insertData ( const unsigned long offset, const DOMString &arg ); 00154 00177 void deleteData ( const unsigned long offset, const unsigned long count ); 00178 00205 void replaceData ( const unsigned long offset, const unsigned long count, const DOMString &arg ); 00206 00207 protected: 00208 CharacterData(CharacterDataImpl *i); 00209 }; 00210 00211 00212 class CommentImpl; 00213 00222 class Comment : public CharacterData 00223 { 00224 friend class Document; 00225 00226 public: 00227 Comment(); 00228 Comment(const Comment &other); 00229 Comment(const Node &other) : CharacterData() 00230 {(*this)=other;} 00231 00232 Comment & operator = (const Node &other); 00233 Comment & operator = (const Comment &other); 00234 00235 ~Comment(); 00236 00237 protected: 00238 Comment(CommentImpl *i); 00239 }; 00240 00241 class TextImpl; 00242 00267 class Text : public CharacterData 00268 { 00269 friend class Document; 00270 00271 public: 00272 Text(); 00273 Text(const Text &other); 00274 Text(const Node &other) : CharacterData() 00275 {(*this)=other;} 00276 00277 Text & operator = (const Node &other); 00278 Text & operator = (const Text &other); 00279 00280 ~Text(); 00281 00301 Text splitText ( const unsigned long offset ); 00302 00303 protected: 00304 Text(TextImpl *i); 00305 00306 }; 00307 00308 } //namespace 00309 #endif