JavaScriptCore:
[WebKit-https.git] / WebCore / bindings / js / JSRGBColor.h
1 /*
2  *  Copyright (C) 2000 Harri Porten (porten@kde.org)
3  *  Copyright (C) 2001 Peter Kelly (pmk@post.com)
4  *  Copyright (C) 2004, 2006, 2007, 2008 Apple Inc. All rights reserved.
5  *
6  *  This library is free software; you can redistribute it and/or
7  *  modify it under the terms of the GNU Lesser General Public
8  *  License as published by the Free Software Foundation; either
9  *  version 2 of the License, or (at your option) any later version.
10  *
11  *  This library is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  *  Lesser General Public License for more details.
15  *
16  *  You should have received a copy of the GNU Lesser General Public
17  *  License along with this library; if not, write to the Free Software
18  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
19  */
20
21 #ifndef JSRGBColor_h
22 #define JSRGBColor_h
23
24 #include "Color.h"
25 #include "JSDOMBinding.h"
26
27 namespace WebCore {
28
29     // FIXME: JSRGBColor should have a proper prototype and a constructor.
30     class JSRGBColor : public DOMObject {
31     public:
32         JSRGBColor(JSC::ExecState*, unsigned color);
33
34         virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier&, JSC::PropertySlot&);
35
36         virtual const JSC::ClassInfo* classInfo() const { return &s_info; }
37         static const JSC::ClassInfo s_info;
38
39         unsigned impl() const { return m_color; }
40
41         static JSC::ObjectPrototype* createPrototype(JSC::ExecState* exec)
42         {
43             return exec->lexicalGlobalObject()->objectPrototype();
44         }
45
46         static PassRefPtr<JSC::Structure> createStructure(JSC::JSValue* prototype)
47         {
48             return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType));
49         }
50
51     private:
52         unsigned m_color;
53     };
54
55     JSC::JSValue* getJSRGBColor(JSC::ExecState*, unsigned color);
56
57 } // namespace WebCore
58
59 #endif // JSRGBColor_h