1
#include "kscript_ext_qwidget.h"
2
#include "kscript_ext_qstructs.h"
3
#include "kscript_context.h"
4
#include "kscript_util.h"
9
#define WIDGET ((QWidget*)object())
11
#define CHECKTYPE( context, v, type ) if ( !checkType( context, v, type ) ) return FALSE;
12
#define RETURN_LEFTEXPR( n, value ) if ( name == n ) { KSValue::Ptr ptr = value; ptr->setMode( KSValue::LeftExpr ); return ptr; }
13
#define RETURN_RIGHTEXPR( n, value ) if ( name == n ) { return value; }
14
#define CHECK_LEFTEXPR( context, name ) if ( context.leftExpr() ) return KSObject::member( context, name );
15
#define SET_PROP( __n, __expr, __t ) if ( name == __n ) { CHECKTYPE( context, v, __t ); __expr; return TRUE; }
17
KSClass_QWidget::KSClass_QWidget( KSModule* m, const char* name ) : KSClass_QObject( m, name )
19
nameSpace()->insert( "QWidget", new KSValue( (KSBuiltinMethod)&KSObject_QWidget::ksQWidget ) );
20
nameSpace()->insert( "show", new KSValue( (KSBuiltinMethod)&KSObject_QWidget::ksQWidget_show ) );
23
KSScriptObject* KSClass_QWidget::createObject( KSClass* c )
25
return new KSObject_QWidget( c );
28
KSObject_QWidget::KSObject_QWidget( KSClass* c ) : KS_Qt_Object( c )
32
bool KSObject_QWidget::ksQWidget( KSContext& context )
34
qDebug("QWidget count=%i\n", count);
36
if ( !checkDoubleConstructor( context, "QWidget" ) )
42
QValueList<KSValue::Ptr>& args = context.value()->listValue();
44
if ( args.count() >= 1 )
46
if ( !checkArguments( context, context.value(), "QWidget::QWidget", KS_Qt_Object::WidgetType ) )
48
parent = KSObject_QWidget::convert( args[0] );
50
if ( args.count() >= 2 )
52
if ( !checkArguments( context, context.value(), "QWidget::QWidget", KS_Qt_Object::StringType ) )
54
name = args[1]->stringValue();
56
if ( args.count() > 2 )
58
KSUtil::tooFewArgumentsError( context, "QWidget::QWidget" );
62
setObject( new QWidget( parent, name.latin1() ) );
64
qDebug("QWidget end count=%i\n", count);
69
bool KSObject_QWidget::ksQWidget_show( KSContext& context )
71
qDebug("QWidget::show\n");
73
if ( !checkLive( context, "QWidget::show" ) )
76
if ( !KSUtil::checkArgumentsCount( context, 0, "QWidget::QWidget" ) )
79
QWidget* w = (QWidget*)object();
86
bool KSObject_QWidget::ksQWidget_delete( KSContext& context )
88
qDebug("QWidget::delete\n");
90
if ( !KSUtil::checkArgumentsCount( context, 0, "QWidget::delete" ) )
102
KSValue::Ptr KSObject_QWidget::member( KSContext& context, const QString& name )
104
RETURN_RIGHTEXPR( "width", new KSValue( WIDGET->width() ) );
105
RETURN_RIGHTEXPR( "height", new KSValue( WIDGET->height() ) );
106
RETURN_RIGHTEXPR( "x", new KSValue( WIDGET->x() ) );
107
RETURN_RIGHTEXPR( "y", new KSValue( WIDGET->y() ) );
109
CHECK_LEFTEXPR( context, name );
111
RETURN_LEFTEXPR( "caption", new KSValue( WIDGET->caption() ) );
112
RETURN_LEFTEXPR( "geometry", KSQt::Rect::convert( context, WIDGET->geometry() ) );
114
return KS_Qt_Object::member( context, name );
117
bool KSObject_QWidget::setMember( KSContext& context, const QString& name, const KSValue::Ptr& v )
119
SET_PROP( "caption", WIDGET->setCaption( v->stringValue() ), StringType )
120
SET_PROP( "geometry", WIDGET->setGeometry( KSQt::Rect::convert( context, v ) ), RectType )
122
return KS_Qt_Object::setMember( context, name, v );