// -*- c++ -*- /* * Copyright (C) 2001-2002, Richard J. Moore * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #ifndef KJSEMBEDJSBINDING_H #define KJSEMBEDJSBINDING_H #include "global.h" #include #include #include #include #include #include /** * Implement TQString-KJS::UString conversion methods. These methods are declared * by KJS, but libkjs doesn't actually contain their implementations. * * @version $Id$ */ namespace KJS { inline UString::UString( const TTQString &d ) { uint len = d.length(); UChar *dat = new UChar[len]; memcpy( dat, d.unicode(), len * sizeof(UChar) ); rep = UString::Rep::create(dat, len); } inline TTQString UString::qstring() const { return TTQString((TTQChar*) data(), size()); } inline TTQConstString UString::qconststring() const { return TTQConstString((TTQChar*) data(), size()); } inline TTQString Identifier::qstring() const { return TTQString((TTQChar*) data(), size()); } } namespace KJSEmbed { class JSObjectProxy; class JSOpaqueProxy; enum JavaScriptArrayType { None, List, Map }; KJSEMBED_EXPORT JavaScriptArrayType checkArray( KJS::ExecState *exec, const KJS::Value &val ); /** Converts a TTQVariant to the closest possible KJS::Value. */ KJSEMBED_EXPORT KJS::Value convertToValue( KJS::ExecState *exec, const TTQVariant &val); /** Converts a KJS::Value to the closest possible TTQVariant. */ KJSEMBED_EXPORT TTQVariant convertToVariant( KJS::ExecState *exec, const KJS::Value &v ); /** Returns HTML that documents the specified object. */ KJSEMBED_EXPORT TTQString dumpObject( KJS::ExecState *exec, KJS::Object &obj ); /** Returns HTML that documents the TTQObject facilities of the specified object. */ KJSEMBED_EXPORT TTQString dumpTQObject( KJS::ExecState *exec, KJS::Object &obj ); /** Returns a TTQStringList that contains all possible properties, * methods and slots for use with a completion object */ KJSEMBED_EXPORT TTQStringList dumpCompletion( KJS::ExecState *exec, KJS::Object &obj); KJSEMBED_EXPORT TTQPen extractTQPen(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQFont extractTQFont(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQBrush extractTQBrush(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQPalette extractTQPalette(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQPixmap extractTQPixmap( KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQImage extractTQImage( KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQString extractTQString( KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT int extractInt( KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQColor extractTQColor(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQSize extractTQSize(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT bool extractBool(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT double extractDouble(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT uint extractUInt(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQStringList extractTQStringList(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQDateTime extractTQDateTime(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQDate extractTQDate(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQTime extractTQTime(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQRect extractTQRect(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQPoint extractTQPoint(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQFont extractTQFont(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQStrList extractTQStrList(KJS::ExecState *exec, const KJS::List &args, int idx); KJSEMBED_EXPORT TTQObject *extractTQObject( KJS::ExecState *exec, const KJS::List &args, int idx ); KJSEMBED_EXPORT TTQWidget *extractTQWidget( KJS::ExecState *exec, const KJS::List &args, int idx ); KJSEMBED_EXPORT JSOpaqueProxy *extractOpaqueProxy( KJS::ExecState *exec, const KJS::List &args, int idx ); // Helpers for Variant conversions.... KJSEMBED_EXPORT TTQStrList convertArrayToStrList( KJS::ExecState *exec, const KJS::Value &value); KJSEMBED_EXPORT TTQStringList convertArrayToStringList( KJS::ExecState *exec, const KJS::Value &value); KJSEMBED_EXPORT TTQDateTime convertDateToDateTime(KJS::ExecState *exec, const KJS::Value &value); KJSEMBED_EXPORT TTQValueList convertArrayToList( KJS::ExecState *exec, const KJS::Value &value ); KJSEMBED_EXPORT TTQMap convertArrayToMap( KJS::ExecState *exec, const KJS::Value &value ); /** * This will throw an exception with the error string. * @returns An error object. */ KJS::Object throwError( KJS::ExecState *exec, const TTQString &error, KJS::ErrorType type = KJS::GeneralError ); } #endif // KJSEMBEDJSBINDING_H // Local Variables: // c-basic-offset: 4 // End: