9dbf9b6f21fdfb35d906178fa62da06ecf0817a8
[WebKit-https.git] / WebCore / html / HTMLObjectElement.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., 59 Temple Place - Suite 330,
21  * Boston, MA 02111-1307, USA.
22  *
23  */
24
25 #ifndef HTMLObjectElement_H
26 #define HTMLObjectElement_H
27
28 #include "HTMLPlugInElement.h"
29
30 #if PLATFORM(MAC)
31 #include <JavaScriptCore/runtime.h>
32 #else
33 namespace KJS { namespace Bindings { class Instance; } }
34 #endif
35
36 namespace WebCore {
37
38 class HTMLFormElement;
39 class HTMLImageLoader;
40
41 class HTMLObjectElement : public HTMLPlugInElement
42 {
43 public:
44     HTMLObjectElement(Document*);
45     ~HTMLObjectElement();
46
47     virtual int tagPriority() const { return 7; }
48
49     virtual void parseMappedAttribute(MappedAttribute*);
50
51     virtual void attach();
52     virtual bool rendererIsNeeded(RenderStyle*);
53     virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
54     virtual void closeRenderer();
55     virtual void detach();
56     virtual void insertedIntoDocument();
57     virtual void removedFromDocument();
58     
59     virtual void recalcStyle(StyleChange ch);
60     virtual void childrenChanged();
61
62     virtual bool isURLAttribute(Attribute*) const;
63
64     bool isImageType();
65
66     void renderFallbackContent();
67
68 #if PLATFORM(MAC)
69     virtual KJS::Bindings::Instance* getInstance() const;
70 #endif
71
72     String archive() const;
73     void setArchive(const String&);
74
75     String border() const;
76     void setBorder(const String&);
77
78     String code() const;
79     void setCode(const String&);
80     
81     String codeBase() const;
82     void setCodeBase(const String&);
83
84     String codeType() const;
85     void setCodeType(const String&);
86
87     Document* contentDocument() const;
88     
89     String data() const;
90     void setData(const String&);
91
92     bool declare() const;
93     void setDeclare(bool);
94
95     HTMLFormElement* form() const;
96     
97     String hspace() const;
98     void setHspace(const String&);
99
100     String standby() const;
101     void setStandby(const String&);
102
103     int tabIndex() const;
104     void setTabIndex(int);
105
106     String type() const;
107     void setType(const String&);
108
109     String useMap() const;
110     void setUseMap(const String&);
111
112     String vspace() const;
113     void setVspace(const String&);
114
115     bool isComplete() const { return m_complete; }
116     void setComplete(bool complete);
117     
118     bool isDocNamedItem() const { return m_docNamedItem; }
119
120     DeprecatedString serviceType;
121     DeprecatedString url;
122     String classId;
123     bool needWidgetUpdate : 1;
124     bool m_useFallbackContent : 1;
125     HTMLImageLoader* m_imageLoader;
126
127 private:
128     void updateDocNamedItem();
129     String oldIdAttr;
130     bool m_complete;
131     bool m_docNamedItem;
132 };
133
134 }
135
136 #endif