- global rename, done by script
[WebKit-https.git] / WebCore / dom / ContainerNode.h
1 /*
2  * This file is part of the DOM implementation for KDE.
3  *
4  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
5  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
6  *           (C) 2001 Dirk Mueller (mueller@kde.org)
7  * Copyright (C) 2004, 2006 Apple Computer, Inc.
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Library General Public
11  * License as published by the Free Software Foundation; either
12  * version 2 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17  * Library General Public License for more details.
18  *
19  * You should have received a copy of the GNU Library General Public License
20  * along with this library; see the file COPYING.LIB.  If not, write to
21  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22  * Boston, MA 02111-1307, USA.
23  *
24  */
25
26 #ifndef DOM_ContainerNodeImpl_h
27 #define DOM_ContainerNodeImpl_h
28
29 #include "EventTargetNode.h"
30
31 namespace WebCore {
32
33 class ContainerNode : public EventTargetNode
34 {
35 public:
36     ContainerNode(Document *doc);
37     virtual ~ContainerNode();
38
39     virtual Node* firstChild() const;
40     virtual Node* lastChild() const;
41
42     virtual bool insertBefore(PassRefPtr<Node> newChild, Node* refChild, ExceptionCode&);
43     virtual bool replaceChild(PassRefPtr<Node> newChild, Node* oldChild, ExceptionCode&);
44     virtual bool removeChild(Node* child, ExceptionCode&);
45     virtual bool appendChild(PassRefPtr<Node> newChild, ExceptionCode&);
46
47     virtual ContainerNode* addChild(PassRefPtr<Node>);
48     virtual bool hasChildNodes() const;
49     virtual void attach();
50     virtual void detach();
51     virtual void willRemove();
52     virtual IntRect getRect() const;
53     virtual void setFocus(bool = true);
54     virtual void setActive(bool active = true, bool pause = false);
55     virtual void setHovered(bool = true);
56     virtual unsigned childNodeCount() const;
57     virtual Node* childNode(unsigned index) const;
58
59     virtual void insertedIntoDocument();
60     virtual void removedFromDocument();
61     virtual void insertedIntoTree(bool deep);
62     virtual void removedFromTree(bool deep);
63
64     Node* fastFirstChild() const { return m_firstChild; }
65     Node* fastLastChild() const { return m_lastChild; }
66     
67     void removeAllChildren();
68     void removeChildren();
69     void cloneChildNodes(Node* clone);
70
71 private:
72     Node* m_firstChild;
73     Node* m_lastChild;
74
75     bool getUpperLeftCorner(int& x, int& y) const;
76     bool getLowerRightCorner(int& x, int& y) const;
77 };
78
79 } //namespace
80
81 #endif