2006-10-07 Anders Carlsson <acarlsson@apple.com>
[WebKit-https.git] / WebCore / dom / MutationEvent.h
1 /*
2  * This file is part of the DOM implementation for KDE.
3  *
4  * Copyright (C) 2001 Peter Kelly (pmk@post.com)
5  * Copyright (C) 2001 Tobias Anton (anton@stud.fbi.fh-darmstadt.de)
6  * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
7  * Copyright (C) 2003, 2004, 2005, 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 MutationEvent_h
27 #define MutationEvent_h
28
29 #include "Event.h"
30 #include "Node.h"
31
32 namespace WebCore {
33
34     class MutationEvent : public Event {
35     public:
36         enum attrChangeType {
37             MODIFICATION    = 1,
38             ADDITION        = 2,
39             REMOVAL         = 3
40         };
41
42         MutationEvent();
43         MutationEvent(const AtomicString& type, bool canBubble, bool cancelable, Node* relatedNode,
44                       const String& prevValue, const String& newValue,
45                       const String& attrName, unsigned short attrChange);
46
47         void initMutationEvent(const AtomicString& type, bool canBubble, bool cancelable, Node* relatedNode,
48                                const String& prevValue, const String& newValue,
49                                const String& attrName, unsigned short attrChange);
50
51         Node* relatedNode() const { return m_relatedNode.get(); }
52         String prevValue() const { return m_prevValue; }
53         String newValue() const { return m_newValue; }
54         String attrName() const { return m_attrName; }
55         unsigned short attrChange() const { return m_attrChange; }
56
57         virtual bool isMutationEvent() const;
58
59     private:
60         RefPtr<Node> m_relatedNode;
61         String m_prevValue;
62         String m_newValue;
63         String m_attrName;
64         unsigned short m_attrChange;
65     };
66
67 } // namespace WebCore
68
69 #endif // MutationEvent_h