7ff3d2c9f6ec506794407aa5d4ed5d928bc0ac63
[WebKit-https.git] / WebCore / html / HTMLPlugInElement.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  * Copyright (C) 2004, 2006 Apple Computer, Inc.
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Library General Public
10  * License as published by the Free Software Foundation; either
11  * version 2 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Library General Public License for more details.
17  *
18  * You should have received a copy of the GNU Library General Public License
19  * along with this library; see the file COPYING.LIB.  If not, write to
20  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21  * Boston, MA 02110-1301, USA.
22  *
23  */
24
25 #ifndef HTMLPlugInElement_h
26 #define HTMLPlugInElement_h
27
28 #include "HTMLFrameOwnerElement.h"
29
30 #if USE(JAVASCRIPTCORE_BINDINGS)
31 #include <bindings/runtime.h>
32 #endif
33
34 #if USE(NPOBJECT)
35 #include <bindings/npruntime.h>
36 #endif
37
38 namespace WebCore {
39
40 class HTMLPlugInElement : public HTMLFrameOwnerElement {
41 public:
42     HTMLPlugInElement(const QualifiedName& tagName, Document*);
43     virtual ~HTMLPlugInElement();
44
45     virtual bool mapToEntry(const QualifiedName& attrName, MappedAttributeEntry& result) const;
46     virtual void parseMappedAttribute(MappedAttribute*);
47
48     virtual HTMLTagStatus endTagRequirement() const { return TagStatusRequired; }
49     virtual bool checkDTD(const Node* newChild);
50
51     String align() const;
52     void setAlign(const String&);
53     
54     String height() const;
55     void setHeight(const String&);
56     
57     String name() const;
58     void setName(const String&);
59     
60     String width() const;
61     void setWidth(const String&);
62
63 #if USE(JAVASCRIPTCORE_BINDINGS)
64     virtual KJS::Bindings::Instance* getInstance() const = 0;
65 #endif
66 #if USE(NPOBJECT)
67     virtual NPObject* getNPObject();
68 #endif
69
70     virtual void defaultEventHandler(Event*);
71 private:
72 #if USE(NPOBJECT)
73     NPObject* createNPObject();
74 #endif
75
76 protected:
77     String oldNameAttr;
78 #if USE(JAVASCRIPTCORE_BINDINGS)
79     mutable RefPtr<KJS::Bindings::Instance> m_instance;
80 #endif
81 #if USE(NPOBJECT)
82     NPObject* m_NPObject;
83 #endif
84 };
85
86 } // namespace WebCore
87
88 #endif // HTMLPlugInElement_h