1/*
2 * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
3 *
4 *  This library is free software; you can redistribute it and/or
5 *  modify it under the terms of the GNU Lesser General Public
6 *  License as published by the Free Software Foundation; either
7 *  version 2 of the License, or (at your option) any later version.
8 *
9 *  This library is distributed in the hope that it will be useful,
10 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 *  Lesser General Public License for more details.
13 *
14 *  You should have received a copy of the GNU Lesser General Public
15 *  License along with this library; if not, write to the Free Software
16 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17 *
18 */
19
20#ifndef qt_pixmapruntime_h
21#define qt_pixmapruntime_h
22
23#include "BridgeJSC.h"
24#include <QVariant>
25
26namespace JSC {
27
28namespace Bindings {
29
30class QtPixmapInstance : public Instance {
31    QVariant data;
32public:
33    QtPixmapInstance(PassRefPtr<RootObject> rootObj, const QVariant& newData);
34    virtual Class* getClass() const;
35    virtual JSValue getMethod(ExecState* exec, const Identifier& propertyName);
36    virtual JSValue invokeMethod(ExecState*, RuntimeMethod*);
37    virtual void getPropertyNames(ExecState*, PropertyNameArray&);
38
39    virtual JSValue defaultValue(ExecState*, PreferredPrimitiveType) const;
40    virtual JSValue valueOf(ExecState* exec) const;
41    int width() const;
42    int height() const;
43    QPixmap toPixmap();
44    QImage toImage();
45    RuntimeObject* newRuntimeObject(ExecState* exec);
46    static JSObject* createPixmapRuntimeObject(ExecState*, PassRefPtr<RootObject>, const QVariant&);
47    static QVariant variantFromObject(JSObject*, QMetaType::Type hint);
48    static bool canHandle(QMetaType::Type hint);
49};
50
51}
52
53}
54#endif
55