#include #include #include #include #include #include #include #include #include #include #include #include #include "qcanvassprite_imp.h" /** * Namespace containing the KJSEmbed library. */ namespace KJSEmbed { TTQCanvasSpriteImp::TQCanvasSpriteImp( KJS::ExecState *exec, int mid, bool constructor ) : JSProxyImp(exec), id(mid), cons(constructor) { } TTQCanvasSpriteImp::~TQCanvasSpriteImp() { } /** * Adds bindings for static methods and enum constants to the specified Object. */ void TQCanvasSpriteImp::addStaticBindings( KJS::ExecState *exec, KJS::Object &object ) { JSProxy::MethodTable methods[] = { { 0, 0 } }; int idx = 0; TTQCString lastName; while( methods[idx].name ) { if ( lastName != methods[idx].name ) { TQCanvasSpriteImp *meth = new TQCanvasSpriteImp( exec, methods[idx].id ); object.put( exec , methods[idx].name, KJS::Object(meth) ); lastName = methods[idx].name; } ++idx; } // // Define the enum constants // struct EnumValue { const char *id; int val; }; EnumValue enums[] = { // enum FrameAnimationType { "Cycle", TTQCanvasSprite::Cycle }, { "Oscillate", TTQCanvasSprite::Oscillate }, { 0, 0 } }; int enumidx = 0; while( enums[enumidx].id ) { object.put( exec, enums[enumidx].id, KJS::Number(enums[enumidx].val), KJS::ReadOnly ); ++enumidx; } } /** * Adds bindings for instance methods to the specified Object. */ void TQCanvasSpriteImp::addBindings( KJS::ExecState *exec, KJS::Object &object ) { JSProxy::MethodTable methods[] = { { Method_setSequence_2, "setSequence" }, { Method_move_4, "move" }, { Method_move_5, "move" }, { Method_setFrame_6, "setFrame" }, { Method_setFrameAnimation_7, "setFrameAnimation" }, { Method_frame_8, "frame" }, { Method_frameCount_9, "frameCount" }, { Method_rtti_10, "rtti" }, { Method_collidesWith_11, "collidesWith" }, { Method_boundingRect_12, "boundingRect" }, { Method_width_13, "width" }, { Method_height_14, "height" }, { Method_leftEdge_15, "leftEdge" }, { Method_topEdge_16, "topEdge" }, { Method_rightEdge_17, "rightEdge" }, { Method_bottomEdge_18, "bottomEdge" }, { Method_leftEdge_19, "leftEdge" }, { Method_topEdge_20, "topEdge" }, { Method_rightEdge_21, "rightEdge" }, { Method_bottomEdge_22, "bottomEdge" }, { Method_image_23, "image" }, { Method_imageAdvanced_24, "imageAdvanced" }, { Method_image_25, "image" }, { Method_advance_26, "advance" }, { Method_draw_27, "draw" }, { 0, 0 } }; int idx = 0; TTQCString lastName; while( methods[idx].name ) { if ( lastName != methods[idx].name ) { TQCanvasSpriteImp *meth = new TQCanvasSpriteImp( exec, methods[idx].id ); object.put( exec , methods[idx].name, KJS::Object(meth) ); lastName = methods[idx].name; } ++idx; } } /** * Extract a TTQCanvasSprite pointer from an Object. */ TTQCanvasSprite *TQCanvasSpriteImp::toTQCanvasSprite( KJS::Object &self ) { JSObjectProxy *ob = JSProxy::toObjectProxy( self.imp() ); if ( ob ) { TTQObject *obj = ob->object(); if ( obj ) return dynamic_cast( obj ); } JSOpaqueProxy *op = JSProxy::toOpaqueProxy( self.imp() ); if ( !op ) return 0; if ( op->typeName() != "TTQCanvasSprite" ) return 0; return op->toNative(); } /** * Select and invoke the correct constructor. */ KJS::Object TQCanvasSpriteImp::construct( KJS::ExecState *exec, const KJS::List &args ) { switch( id ) { case Constructor_QCanvasSprite_1: return TQCanvasSprite_1( exec, args ); break; default: break; } TTQString msg = i18n("TQCanvasSpriteCons has no constructor with id '%1'.").arg(id); return throwError(exec, msg,KJS::ReferenceError); } KJS::Object TQCanvasSpriteImp::TQCanvasSprite_1( KJS::ExecState *exec, const KJS::List &args ) { // Unsupported parameter TTQCanvasPixmapArray * return KJS::Object(); TTQCanvasPixmapArray * arg0; // Dummy // Unsupported parameter TTQCanvas * return KJS::Object(); TTQCanvas * arg1; // Dummy // We should now create an instance of the TTQCanvasSprite object TTQCanvasSprite *ret = new TTQCanvasSprite( arg0, arg1 ); } KJS::Value TQCanvasSpriteImp::call( KJS::ExecState *exec, KJS::Object &self, const KJS::List &args ) { instance = TQCanvasSpriteImp::toTQCanvasSprite( self ); switch( id ) { case Method_setSequence_2: return setSequence_2( exec, self, args ); break; case Method_move_4: return move_4( exec, self, args ); break; case Method_move_5: return move_5( exec, self, args ); break; case Method_setFrame_6: return setFrame_6( exec, self, args ); break; case Method_setFrameAnimation_7: return setFrameAnimation_7( exec, self, args ); break; case Method_frame_8: return frame_8( exec, self, args ); break; case Method_frameCount_9: return frameCount_9( exec, self, args ); break; case Method_rtti_10: return rtti_10( exec, self, args ); break; case Method_collidesWith_11: return collidesWith_11( exec, self, args ); break; case Method_boundingRect_12: return boundingRect_12( exec, self, args ); break; case Method_width_13: return width_13( exec, self, args ); break; case Method_height_14: return height_14( exec, self, args ); break; case Method_leftEdge_15: return leftEdge_15( exec, self, args ); break; case Method_topEdge_16: return topEdge_16( exec, self, args ); break; case Method_rightEdge_17: return rightEdge_17( exec, self, args ); break; case Method_bottomEdge_18: return bottomEdge_18( exec, self, args ); break; case Method_leftEdge_19: return leftEdge_19( exec, self, args ); break; case Method_topEdge_20: return topEdge_20( exec, self, args ); break; case Method_rightEdge_21: return rightEdge_21( exec, self, args ); break; case Method_bottomEdge_22: return bottomEdge_22( exec, self, args ); break; case Method_image_23: return image_23( exec, self, args ); break; case Method_imageAdvanced_24: return imageAdvanced_24( exec, self, args ); break; case Method_image_25: return image_25( exec, self, args ); break; case Method_advance_26: return advance_26( exec, self, args ); break; case Method_draw_27: return draw_27( exec, self, args ); break; default: break; } TTQString msg = i18n( "TQCanvasSpriteImp has no method with id '%1'." ).arg( id ); return throwError(exec, msg,KJS::ReferenceError); } KJS::Value TQCanvasSpriteImp::setSequence_2( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { // Unsupported parameter TTQCanvasPixmapArray * return KJS::Value(); TTQCanvasPixmapArray * arg0; // Dummy instance->setSequence( arg0 ); return KJS::Value(); // Returns void } KJS::Value TQCanvasSpriteImp::move_4( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { double arg0 = extractDouble(exec, args, 0); double arg1 = extractDouble(exec, args, 1); instance->move( arg0, arg1 ); return KJS::Value(); // Returns void } KJS::Value TQCanvasSpriteImp::move_5( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { double arg0 = extractDouble(exec, args, 0); double arg1 = extractDouble(exec, args, 1); int arg2 = extractInt(exec, args, 2); instance->move( arg0, arg1, arg2 ); return KJS::Value(); // Returns void } KJS::Value TQCanvasSpriteImp::setFrame_6( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int arg0 = extractInt(exec, args, 0); instance->setFrame( arg0 ); return KJS::Value(); // Returns void } KJS::Value TQCanvasSpriteImp::setFrameAnimation_7( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { TTQCanvasSprite::FrameAnimationType arg0 = TTQCanvasSprite::Cycle; // TODO (hack for TTQCanvasSprite) int arg1 = extractInt(exec, args, 1); int arg2 = extractInt(exec, args, 2); instance->setFrameAnimation( arg0, arg1, arg2 ); return KJS::Value(); // Returns void } KJS::Value TQCanvasSpriteImp::frame_8( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int ret; ret = instance->frame( ); return KJS::Number( ret ); } KJS::Value TQCanvasSpriteImp::frameCount_9( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int ret; ret = instance->frameCount( ); return KJS::Number( ret ); } KJS::Value TQCanvasSpriteImp::rtti_10( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int ret; ret = instance->rtti( ); return KJS::Number( ret ); } KJS::Value TQCanvasSpriteImp::collidesWith_11( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { // Unsupported parameter const TTQCanvasItem * return KJS::Value(); const TTQCanvasItem * arg0; // Dummy bool ret; ret = instance->collidesWith( arg0 ); return KJS::Boolean( ret ); } KJS::Value TQCanvasSpriteImp::boundingRect_12( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { TTQRect ret; ret = instance->boundingRect( ); return convertToValue( exec, ret ); } KJS::Value TQCanvasSpriteImp::width_13( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int ret; ret = instance->width( ); return KJS::Number( ret ); } KJS::Value TQCanvasSpriteImp::height_14( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int ret; ret = instance->height( ); return KJS::Number( ret ); } KJS::Value TQCanvasSpriteImp::leftEdge_15( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int ret; ret = instance->leftEdge( ); return KJS::Number( ret ); } KJS::Value TQCanvasSpriteImp::topEdge_16( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int ret; ret = instance->topEdge( ); return KJS::Number( ret ); } KJS::Value TQCanvasSpriteImp::rightEdge_17( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int ret; ret = instance->rightEdge( ); return KJS::Number( ret ); } KJS::Value TQCanvasSpriteImp::bottomEdge_18( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int ret; ret = instance->bottomEdge( ); return KJS::Number( ret ); } KJS::Value TQCanvasSpriteImp::leftEdge_19( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int arg0 = extractInt(exec, args, 0); int ret; ret = instance->leftEdge( arg0 ); return KJS::Number( ret ); } KJS::Value TQCanvasSpriteImp::topEdge_20( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int arg0 = extractInt(exec, args, 0); int ret; ret = instance->topEdge( arg0 ); return KJS::Number( ret ); } KJS::Value TQCanvasSpriteImp::rightEdge_21( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int arg0 = extractInt(exec, args, 0); int ret; ret = instance->rightEdge( arg0 ); return KJS::Number( ret ); } KJS::Value TQCanvasSpriteImp::bottomEdge_22( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int arg0 = extractInt(exec, args, 0); int ret; ret = instance->bottomEdge( arg0 ); return KJS::Number( ret ); } KJS::Value TQCanvasSpriteImp::image_23( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { instance->image( ); return KJS::Value(); // Returns 'TTQCanvasPixmap *' } KJS::Value TQCanvasSpriteImp::imageAdvanced_24( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { instance->imageAdvanced( ); return KJS::Value(); // Returns 'TTQCanvasPixmap *' } KJS::Value TQCanvasSpriteImp::image_25( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int arg0 = extractInt(exec, args, 0); instance->image( arg0 ); return KJS::Value(); // Returns 'TTQCanvasPixmap *' } KJS::Value TQCanvasSpriteImp::advance_26( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { int arg0 = extractInt(exec, args, 0); instance->advance( arg0 ); return KJS::Value(); // Returns void } KJS::Value TQCanvasSpriteImp::draw_27( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) { TTQPainter arg0; // TODO (hack for qcanvas) instance->draw( arg0 ); return KJS::Value(); // Returns void } } // namespace KJSEmbed // Local Variables: // c-basic-offset: 4 // End: