From 90825e2392b2d70e43c7a25b8a3752299a933894 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebindings@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kjsembed/qtbindings/qcanvasitemlist_imp.cpp | 172 ++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 kjsembed/qtbindings/qcanvasitemlist_imp.cpp (limited to 'kjsembed/qtbindings/qcanvasitemlist_imp.cpp') diff --git a/kjsembed/qtbindings/qcanvasitemlist_imp.cpp b/kjsembed/qtbindings/qcanvasitemlist_imp.cpp new file mode 100644 index 00000000..293aa5f3 --- /dev/null +++ b/kjsembed/qtbindings/qcanvasitemlist_imp.cpp @@ -0,0 +1,172 @@ + + + +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include + +#include +#include "qcanvasitemlist_imp.h" + +/** + * Namespace containing the KJSEmbed library. + */ +namespace KJSEmbed { + +QCanvasItemListImp::QCanvasItemListImp( KJS::ExecState *exec, int mid, bool constructor ) + : JSProxyImp(exec), id(mid), cons(constructor) +{ +} + +QCanvasItemListImp::~QCanvasItemListImp() +{ +} + +/** + * Adds bindings for static methods and enum constants to the specified Object. + */ +void QCanvasItemListImp::addStaticBindings( KJS::ExecState *exec, KJS::Object &object ) +{ + JSProxy::MethodTable methods[] = { + + { 0, 0 } + }; + + int idx = 0; + QCString lastName; + + while( methods[idx].name ) { + if ( lastName != methods[idx].name ) { + QCanvasItemListImp *meth = new QCanvasItemListImp( exec, methods[idx].id ); + object.put( exec , methods[idx].name, KJS::Object(meth) ); + lastName = methods[idx].name; + } + ++idx; + } + + +} + +/** + * Adds bindings for instance methods to the specified Object. + */ +void QCanvasItemListImp::addBindings( KJS::ExecState *exec, KJS::Object &object ) +{ + JSProxy::MethodTable methods[] = { + + { Method_sort_1, "sort" }, + { Method_drawUnique_2, "drawUnique" }, + { 0, 0 } + }; + + int idx = 0; + QCString lastName; + + while( methods[idx].name ) { + if ( lastName != methods[idx].name ) { + QCanvasItemListImp *meth = new QCanvasItemListImp( exec, methods[idx].id ); + object.put( exec , methods[idx].name, KJS::Object(meth) ); + lastName = methods[idx].name; + } + ++idx; + } +} + +/** + * Extract a QCanvasItemList pointer from an Object. + */ +QCanvasItemList *QCanvasItemListImp::toQCanvasItemList( KJS::Object &self ) +{ + JSObjectProxy *ob = JSProxy::toObjectProxy( self.imp() ); + if ( ob ) { + QObject *obj = ob->object(); + if ( obj ) + return dynamic_cast( obj ); + } + + JSOpaqueProxy *op = JSProxy::toOpaqueProxy( self.imp() ); + if ( !op ) + return 0; + + if ( op->typeName() != "QCanvasItemList" ) + return 0; + + return op->toNative(); +} + +/** + * Select and invoke the correct constructor. + */ +KJS::Object QCanvasItemListImp::construct( KJS::ExecState *exec, const KJS::List &args ) +{ + switch( id ) { + + default: + break; + } + + QString msg = i18n("QCanvasItemListCons has no constructor with id '%1'.").arg(id); + return throwError(exec, msg,KJS::ReferenceError); +} + + +KJS::Value QCanvasItemListImp::call( KJS::ExecState *exec, KJS::Object &self, const KJS::List &args ) +{ + instance = QCanvasItemListImp::toQCanvasItemList( self ); + + switch( id ) { + + case Method_sort_1: + return sort_1( exec, self, args ); + break; + + case Method_drawUnique_2: + return drawUnique_2( exec, self, args ); + break; + + default: + break; + } + + QString msg = i18n( "QCanvasItemListImp has no method with id '%1'." ).arg( id ); + return throwError(exec, msg,KJS::ReferenceError); +} + + +KJS::Value QCanvasItemListImp::sort_1( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) +{ + + instance->sort( ); + return KJS::Value(); // Returns void + +} + +KJS::Value QCanvasItemListImp::drawUnique_2( KJS::ExecState *exec, KJS::Object &obj, const KJS::List &args ) +{ + + QPainter arg0; // TODO (hack for qcanvas) + + instance->drawUnique( + arg0 ); + return KJS::Value(); // Returns void + +} + + +} // namespace KJSEmbed + +// Local Variables: +// c-basic-offset: 4 +// End: + + -- cgit v1.2.1