Source Code (Use browser search to find items of interest.)

Class Index

kdelibs'AttributeList (./kdelibs/khtml/html/htmltoken.h:112)

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, replaces it.
    void add(const Attribute &attr);

    unsigned int length() const;

    // returns -1 if not found
    int find(const DOMString &name);
    int find(ushort id);

    DOMString operator [] (const DOMString &name);
    Attribute *operator [] (uint index);

    void remove(DOMString name);
    void remove(uint index);

    virtual DOMString toHTML(DOMString _string);

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.
 */

kdelibs'AttributeList::AttributeList() (./kdelibs/khtml/html/htmltoken.cpp:64)

AttributeList::AttributeList()
{
    _list = 0;
    _len = 0;
}


kdelibs'AttributeList::AttributeList() (./kdelibs/khtml/html/htmltoken.cpp:70)

AttributeList::AttributeList( const AttributeList &other)
{
    if(!other._len)
    {
	_len = 0;
	_list = 0;
    }
    _len = other._len;
    _list = new Attribute [ _len ];
    int i = 0;
    while(i < (int)_len)
    {
	_list[i].setValue(other._list[i].val());
	_list[i].id = other._list[i].id;
	i++;
    }
}


kdelibs'AttributeList::AttributeList() (./kdelibs/khtml/html/htmltoken.cpp:108)

AttributeList::AttributeList( Attribute *list, unsigned int len)
{
    _list = list;
    _len = len;
}


kdelibs'AttributeList::~AttributeList() (./kdelibs/khtml/html/htmltoken.cpp:114)

AttributeList::~AttributeList()
{
    if(_list) delete [] _list;
}



kdelibs'AttributeList::id() (./kdelibs/khtml/html/htmltoken.cpp:120)

ushort AttributeList::id(uint index) const
{
    return _list[index].id;
}


kdelibs'AttributeList::name() (./kdelibs/khtml/html/htmltoken.cpp:125)

DOMString AttributeList::name(uint index) const
{
    if(index >= _len) return 0;

    return _list[index].name();
}


kdelibs'AttributeList::value() (./kdelibs/khtml/html/htmltoken.cpp:132)

DOMString AttributeList::value(uint index) const
{
    if(index >= _len) return 0;

    return _list[index].value();
}


kdelibs'AttributeList::add() (./kdelibs/khtml/html/htmltoken.cpp:139)

void AttributeList::add(const Attribute &a)
{
    int index = find(a.id);

    if(index == -1)
    {
	Attribute *nList = new Attribute [ _len+1 ];
	if(_list)
	{
	    int i = 0;
	    while(i < (int)_len)
	    {
		nList[i].setValue(_list[i].val());
		nList[i].id = _list[i].id;
		i++;
	    }
	    delete [] _list;
	}
	_list = nList;
	_list[_len].id = a.id;
	_list[_len].setValue(a.val());
	_len++;
    }
    else
	_list[index].setValue(a.val());
}


kdelibs'AttributeList::length() (./kdelibs/khtml/html/htmltoken.cpp:166)

unsigned int AttributeList::length() const
{
    return _len;
}


kdelibs'AttributeList::find() (./kdelibs/khtml/html/htmltoken.cpp:171)

int AttributeList::find(const DOMString &name)
{
    DOMString n = name.string().upper();
    int i = 0;
    while( i<(int)_len )
    {
	if(_list[i].name() == n)
	    return i;
	i++;
    }
    return -1;
}


kdelibs'AttributeList::find() (./kdelibs/khtml/html/htmltoken.cpp:184)

int AttributeList::find(ushort id)
{
    int i = 0;
    while( i<(int)_len )
    {
	if(_list[i].id == id)
	    return i;
	i++;
    }
    return -1;
}



kdelibs'AttributeList::remove() (./kdelibs/khtml/html/htmltoken.cpp:210)

void AttributeList::remove(DOMString name)
{
    int index = find(name);

    if(index == -1)
	return;

    remove(index);
}


kdelibs'AttributeList::remove() (./kdelibs/khtml/html/htmltoken.cpp:220)

void AttributeList::remove(uint index)
{
    if(index > _len) return;

    Attribute *nList = new Attribute [ _len-1 ];
    uint i = 0;
    while(i < index)
    {
	nList[i].setValue(_list[i].val());
	nList[i].id = _list[i].id;
	i++;
    }
    while(i < _len-1)
    {
	nList[i].setValue(_list[i+1].val());
	nList[i].id = _list[i+1].id;
	i++;
    }

    delete [] _list;
    _list = nList;
    _len--;
}


kdelibs'AttributeList::toHTML() (./kdelibs/khtml/html/htmltoken.cpp:244)

DOMString AttributeList::toHTML(DOMString _string)
{
    Attribute _attr;
    for( unsigned int n=0; n<length(); n++ )
    {
        _attr = *(*this)[n];
        _string = _string + " " + _attr.name().string() + "=\"" +  _attr.value().string() + "\"";
    }
    return _string;
}

// ---------------------------------------------------------------------------

// contructor for a text token