webengine/osswebengine/WebCore/bindings/js/kjs_css.h
changeset 0 dd21522fd290
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/osswebengine/WebCore/bindings/js/kjs_css.h	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,87 @@
+ // -*- c-basic-offset: 2 -*-
+/*
+ *  This file is part of the KDE libraries
+ *  Copyright (C) 2000 Harri Porten (porten@kde.org)
+ *  Copyright (C) 2001 Peter Kelly (pmk@post.com)
+ *  Copyright (C) 2004, 2006, 2007 Apple Inc. All rights reserved.
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifndef kjs_css_h
+#define kjs_css_h
+
+#include "Color.h"
+#include "JSStyleSheet.h"
+#include "kjs_binding.h"
+
+namespace WebCore {
+
+    class Counter;
+    class CSSStyleSheet;
+    class StyleSheet;
+    class StyleSheetList;
+
+    class JSStyleSheetList : public KJS::DOMObject {
+    public:
+        JSStyleSheetList(KJS::ExecState*, StyleSheetList*, Document*);
+        virtual ~JSStyleSheetList();
+
+        virtual bool getOwnPropertySlot(KJS::ExecState*, const KJS::Identifier&, KJS::PropertySlot&);
+        KJS::JSValue* getValueProperty(KJS::ExecState*, int token) const;
+        // no put - all read-only
+        virtual const KJS::ClassInfo* classInfo() const { return &info; }
+        static const KJS::ClassInfo info;
+
+        enum { Item, Length };
+
+        StyleSheetList* impl() const { return m_impl.get(); }
+
+    private:
+        static KJS::JSValue* indexGetter(KJS::ExecState*, KJS::JSObject*, const KJS::Identifier&, const KJS::PropertySlot&);
+        static KJS::JSValue* nameGetter(KJS::ExecState*, KJS::JSObject*, const KJS::Identifier&, const KJS::PropertySlot&);
+
+        RefPtr<StyleSheetList> m_impl;
+        RefPtr<Document> m_doc;
+    };
+
+    // The document is only used for get-stylesheet-by-name (make optional if necessary)
+    KJS::JSValue* toJS(KJS::ExecState*, StyleSheetList*, Document*);
+
+    class JSRGBColor : public KJS::DOMObject {
+    public:
+        JSRGBColor(KJS::ExecState*, unsigned color);
+        ~JSRGBColor();
+
+        virtual bool getOwnPropertySlot(KJS::ExecState*, const KJS::Identifier&, KJS::PropertySlot&);
+        KJS::JSValue* getValueProperty(KJS::ExecState*, int token) const;
+        // no put - all read-only
+
+        virtual const KJS::ClassInfo* classInfo() const { return &info; }
+        static const KJS::ClassInfo info;
+
+        enum { Red, Green, Blue };
+
+        unsigned impl() const { return m_color; }
+
+    private:
+        unsigned m_color;
+    };
+
+    KJS::JSValue* getJSRGBColor(KJS::ExecState*, unsigned color);
+
+} // namespace WebCore
+
+#endif // kjs_css_h