LayoutTests:
[WebKit-https.git] / WebCore / bindings / js / kjs_html.h
1 // -*- c-basic-offset: 2 -*-
2 /*
3  *  This file is part of the KDE libraries
4  *  Copyright (C) 1999 Harri Porten (porten@kde.org)
5  *  Copyright (C) 2004, 2006, 2007 Apple Inc. All rights reserved.
6  *
7  *  This library is free software; you can redistribute it and/or
8  *  modify it under the terms of the GNU Lesser General Public
9  *  License as published by the Free Software Foundation; either
10  *  version 2 of the License, or (at your option) any later version.
11  *
12  *  This library is distributed in the hope that it will be useful,
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  *  Lesser General Public License for more details.
16  *
17  *  You should have received a copy of the GNU Lesser General Public
18  *  License along with this library; if not, write to the Free Software
19  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20  */
21
22 #ifndef kjs_html_h
23 #define kjs_html_h
24
25 #include "kjs_dom.h"
26
27 namespace WebCore {
28
29     class Document;
30     class HTMLCollection;
31     class HTMLElement;
32     class JSHTMLElement;
33
34     class ImageConstructorImp : public KJS::DOMObject {
35     public:
36         ImageConstructorImp(KJS::ExecState*, Document*);
37
38         virtual bool implementsConstruct() const { return true; }
39         virtual KJS::JSObject* construct(KJS::ExecState*, const KJS::List&);
40
41     private:
42         RefPtr<Document> m_doc;
43     };
44
45
46     // Runtime object support code for JSHTMLAppletElement, JSHTMLEmbedElement and JSHTMLObjectElement.
47     // FIXME: Move these to a more appropriate place.
48
49     KJS::JSValue* runtimeObjectGetter(KJS::ExecState*, KJS::JSObject*, const KJS::Identifier&, const KJS::PropertySlot&);
50     KJS::JSValue* runtimeObjectPropertyGetter(KJS::ExecState*, KJS::JSObject*, const KJS::Identifier&, const KJS::PropertySlot&);
51     bool runtimeObjectCustomGetOwnPropertySlot(KJS::ExecState*, const KJS::Identifier&, KJS::PropertySlot&, JSHTMLElement*, HTMLElement*);
52     bool runtimeObjectCustomPut(KJS::ExecState*, const KJS::Identifier&, KJS::JSValue*, int attr, HTMLElement*);
53     bool runtimeObjectImplementsCall(HTMLElement*);
54     KJS::JSValue* runtimeObjectCallAsFunction(KJS::ExecState*, KJS::JSObject*, const KJS::List&, HTMLElement*);
55
56 } // namespace WebCore
57
58 #endif // kjs_html_h