// -*- c++ -*- /* * Copyright (C) 2003-2004, 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 KJSEMBED_SLOTPROXY_H #define KJSEMBED_SLOTPROXY_H #include #include #include #ifndef QT_ONLY #include #else #include #endif // QT_ONLY class TQDate; class TQTime; class TQDateTime; namespace KJS { class Interpreter; } namespace KJSEmbed { class JSObjectProxy; /** * Allows slots to be connected to methods of a JS object. * * @author Richard Moore, rich@kde.org */ class KJSEMBED_EXPORT JSSlotProxy : public TQObject { Q_OBJECT public: JSSlotProxy( TQObject *parent, const char *name=0 ); JSSlotProxy( TQObject *parent, const char *name, JSObjectProxy *prx ); virtual ~JSSlotProxy(); void setInterpreter( KJS::Interpreter *js ) { this->js = js; } void setProxy( JSObjectProxy *proxy ) { this->proxy = proxy; } void setObject( const KJS::Object &obj ) { this->obj = obj; } void setMethod( const TQString &method ) { this->method = method; } public slots: void slot_void(); void slot_bool( bool b ); void slot_string( const TQString &s ); void slot_int( int i ); void slot_uint( uint i ); void slot_long( long i ); void slot_ulong( ulong i ); void slot_double( double d ); void slot_font( const TQFont &font ); void slot_color( const TQColor &color ); void slot_point( const TQPoint &point ); void slot_rect( const TQRect &rec ); void slot_size( const TQSize &size ); void slot_pixmap( const TQPixmap &pix ); void slot_url( const KURL &url ); void slot_intint( int , int ); void slot_intbool( int , bool ); void slot_intintint( int , int , int ); void slot_date(const TQDate& date); void slot_time(const TQTime& time); void slot_datetime( const TQDateTime &dateTime ); void slot_datedate( const TQDate &date1, const TQDate &date2 ); void slot_colorstring( const TQColor &color, const TQString &string); void slot_image( const TQImage &image ); void slot_variant( const TQVariant &variant ); void slot_widget( TQWidget *widget ); private: void execute( const KJS::List &args ); JSObjectProxy *proxy; KJS::Interpreter *js; KJS::Object obj; TQString method; class SlotProxyPrivate *d; }; } // namespace KJSEmbed #endif // KJSEMBED_SLOTPROXY_H