⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htmltoken.h

📁 monqueror一个很具有参考价值的源玛
💻 H
字号:
/*    This file is part of the KDE libraries    Copyright (C) 1997 Martin Jones (mjones@kde.org)              (C) 1997 Torben Weis (weis@kde.org)              (C) 1998 Waldo Bastian (bastian@kde.org)              (C) 1999 Lars Knoll (knoll@kde.org)    This library is free software; you can redistribute it and/or    modify it under the terms of the GNU Library General Public    License as published by the Free Software Foundation; either    version 2 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    Library General Public License for more details.    You should have received a copy of the GNU Library General Public License    along with this library; see the file COPYING.LIB.  If not, write to    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,    Boston, MA 02111-1307, USA.*///----------------------------------------------------------------------------//// KDE HTML Widget -- Tokenizers// $Id: htmltoken.h,v 1.1.1.1 2002/01/16 10:39:55 ymwei Exp $#ifndef HTMLTOKEN_H#define HTMLTOKEN_H#include <qstring.h>#include "stringit.h"#include "dom_stringimpl.h"namespace DOM {    class AttrImpl;}namespace khtml {/** * @internal * represents one HTML Attribute */class Attribute{    friend class DOM::AttrImpl;public:    Attribute() { id = 0, v = 0, n = 0; }    ~Attribute()    {        if(v) v->deref();        if(n) n->deref();    }    Attribute &operator = (const Attribute &other) {	id = other.id;	if(v == other.v && n == other.n) return *this;	if(v) v->deref();	v = other.v;	if(v) v->ref();	if(n) n->deref();	n = other.n;	if(n) n->ref();	return *this;    }    void setValue(QChar *_s, int _l) {	if(v) v->deref();        v = new DOMStringImpl(_s, _l);        v->ref();    }    DOMString value() const { return v; }    DOMStringImpl *val() const { return v; }    DOMString name() const;    void setName(const DOMString &name);    unsigned char id;protected:    DOM::DOMStringImpl *n;    DOM::DOMStringImpl *v;};/** * @internal * A list of Attributes */class AttributeList{public:    AttributeList();    AttributeList( Attribute *list, unsigned int length);    AttributeList( const AttributeList &other);    virtual ~AttributeList();    AttributeList &operator = (const AttributeList &other );    ushort id(uint index) const;    DOMString name(uint index) const;    DOMString value(uint index) const;    DOMString valueForId(uint id)	{	    int i = find(id);	    if(i == -1) return 0;	    return value(i);	}    // adds the attribute. If it exists, nothing happens    void add(const Attribute &attr);    unsigned int length() const;    // returns -1 if not found    int find(const DOMString &name) const;    int find(ushort id) const;    DOMString operator [] (const DOMString &name) const;    Attribute *operator [] (uint index) const;private:    void remove(DOMString name);    void remove(uint index);protected:    Attribute *_list;    uint _len;};/** * @internal * represents one HTML tag. Consists of a numerical id, and the list * of attributes. Can also represent text. In this case the id = 0 and * text contains the text. */class Token{public:    Token() { id = 0; complexText = false; }    // contructor for a text token    Token(QChar *text, uint len);    // tag without attributes    Token(ushort id);    // tag with attributes    Token(ushort id, Attribute *lst, uint len);    ushort id;    AttributeList attrs;    DOMString text;    bool complexText;};// makes code in the parser nicerinline bool operator==( const Attribute &a, const int &i ){ return a.id == i; }inline bool operator==( const Attribute &a, const QString &s ){ return a.value() == s; }};#endif // HTMLTOKEN

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -