# jsbinding.h

Go to the documentation of this file.

    00001 // -*- c++ -*-
    00002
    00003 /*
    00004  *  Copyright (C) 2001-2002, Richard J. Moore <rich@kde.org>
    00005  *
    00006  *  This library is free software; you can redistribute it and/or
    00007  *  modify it under the terms of the GNU Library General Public
    00008  *  License as published by the Free Software Foundation; either
    00009  *  version 2 of the License, or (at your option) any later version.
    00010  *
    00011  *  This library is distributed in the hope that it will be useful,
    00012  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    00013  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00014  *  Library General Public License for more details.
    00015  *
    00016  *  You should have received a copy of the GNU Library General Public License
    00017  *  along with this library; see the file COPYING.LIB.  If not, write to
    00018  *  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    00019  *  Boston, MA 02111-1307, USA.
    00020  */
    00021
    00022 #ifndef KJSEMBEDJSBINDING_H
    00023 #define KJSEMBEDJSBINDING_H
    00024
    00025 #include <qstring.h>
    00026 #include <qvariant.h>
    00027
    00028 #include <kjs/interpreter.h>
    00029 #include <kjs/object.h>
    00030 #include <kjs/types.h>
    00031
    00038 namespace KJS {
    00039
    00040     inline UString::UString( const QString &d )
    00041     {
    00042         uint len = d.length();
    00043         UChar *dat = new UChar[len];
    00044         memcpy( dat, d.unicode(), len * sizeof(UChar) );
    00045         rep = UString::Rep::create(dat, len);
    00046     }
    00047
    00048     inline QString UString::qstring() const
    00049     {
    00050         return QString((QChar*) data(), size());
    00051     }
    00052
    00053     inline QConstString UString::qconststring() const
    00054     {
    00055         return QConstString((QChar*) data(), size());
    00056     }
    00057
    00058     inline QString Identifier::qstring() const
    00059     {
    00060         return QString((QChar*) data(), size());
    00061     }
    00062
    00063 }
    00064
    00065 namespace KJSEmbed {
    00066     class JSObjectProxy;
    00067
    00069     KJS::Value convertToValue( KJS::ExecState *exec, const QVariant &val);
    00070
    00072     QVariant convertToVariant( KJS::ExecState *exec, const KJS::Value &v );
    00073
    00075     QString dumpObject( KJS::ExecState *exec, KJS::Object &obj );
    00076
    00078     QString dumpQObject( KJS::ExecState *exec, KJS::Object &obj );
    00079
    00083     QStringList dumpCompletion( KJS::ExecState *exec, KJS::Object &obj);
    00084
    00085     QPen extractQPen(KJS::ExecState *exec, const KJS::List &args, int idx);
    00086     QFont extractQFont(KJS::ExecState *exec, const KJS::List &args, int idx);
    00087     QBrush extractQBrush(KJS::ExecState *exec, const KJS::List &args, int idx);
    00088     QPalette extractQPalette(KJS::ExecState *exec, const KJS::List &args, int idx);
    00089     QPixmap extractQPixmap( KJS::ExecState *exec, const KJS::List &args, int idx);
    00090     QImage extractQImage( KJS::ExecState *exec, const KJS::List &args, int idx);
    00091     QString extractQString( KJS::ExecState *exec, const KJS::List &args, int idx);
    00092     int extractInt( KJS::ExecState *exec, const KJS::List &args, int idx);
    00093     QColor extractQColor(KJS::ExecState *exec, const KJS::List &args, int idx);
    00094     QSize extractQSize(KJS::ExecState *exec, const KJS::List &args, int idx);
    00095     bool extractBool(KJS::ExecState *exec, const KJS::List &args, int idx);
    00096     double extractDouble(KJS::ExecState *exec, const KJS::List &args, int idx);
    00097     uint extractUInt(KJS::ExecState *exec, const KJS::List &args, int idx);
    00098     QStringList extractQStringList(KJS::ExecState *exec, const KJS::List &args, int idx);
    00099
    00100     QDateTime extractQDateTime(KJS::ExecState *exec, const KJS::List &args, int idx);
    00101     QDate extractQDate(KJS::ExecState *exec, const KJS::List &args, int idx);
    00102     QTime extractQTime(KJS::ExecState *exec, const KJS::List &args, int idx);
    00103     QRect extractQRect(KJS::ExecState *exec, const KJS::List &args, int idx);
    00104
    00105     QFont extractQFont(KJS::ExecState *exec, const KJS::List &args, int idx);
    00106     QStrList extractQStrList(KJS::ExecState *exec, const KJS::List &args, int idx);
    00107
    00108     // Helpers for Variant conversions....
    00109     QStrList convertArrayToStrList( KJS::ExecState *exec, const KJS::Value &value);
    00110     QStringList convertArrayToStringList( KJS::ExecState *exec, const KJS::Value &value);
    00111     QDateTime convertDateToDateTime(KJS::ExecState *exec, const KJS::Value &value);
    00112 }
    00113
    00114 #endif // KJSEMBEDJSBINDING_H
    00115
    00116 // Local Variables:
    00117 // c-basic-offset: 4
    00118 // End: