25#include "../main/manager.h"
27#include "eventsignal.h"
33#include <tqmetaobject.h>
45 TQStrList slotnames = m_object->metaObject()->slotNames(
false);
46 for(
char* c = slotnames.first(); c; c = slotnames.next()) {
48 addChild(s, new EventSlot(s, object, s) );
51 TQStrList signalnames = m_object->metaObject()->signalNames(
false);
52 for(
char* c = signalnames.first(); c; c = signalnames.next()) {
54 addChild(s, new EventSignal(s, object, s) );
60 addFunction(
"propertyNames", &QtObject::propertyNames);
74 addFunction(
"disconnect", &QtObject::disconnectSignal);
83 return "Kross::Api::QtObject";
93 int startpos = signature.find(
"(");
94 int endpos = signature.findRev(
")");
95 if(startpos < 0 || startpos > endpos)
99 TQString params = signature.mid(startpos + 1, endpos - startpos - 1);
100 TQStringList paramlist = TQStringList::split(
",", params);
101 uint paramcount = paramlist.size();
105 TQUObject* uo =
new TQUObject[ paramcount + 1 ];
113 uint argcount = arguments ? arguments->count() : 0;
114 for(uint i = 0; i < paramcount; i++) {
115 if(paramlist[i].find(
"TQString") >= 0) {
116 const TQString s = (argcount > i) ?
Variant::toString(arguments->item(i)) : TQString();
118 static_QUType_TQString.set( &(uo[i + 1]), s );
122 throw Exception::Ptr(
new Exception(TQString(
"Unknown TQt signal or slot argument '%1' in signature '%2'.").arg(paramlist[i]).arg(signature)) );
132 TQStringList::fromStrList(m_object->metaObject()->propertyNames(
false)));
144 if(variant.type() == TQVariant::Invalid)
151 return new Kross::Api::Variant(
152 m_object->setProperty(
160 return new Kross::Api::Variant(
161 TQStringList::fromStrList(m_object->metaObject()->slotNames(
false)));
166 return new Kross::Api::Variant(
167 bool(m_object->metaObject()->slotNames(
false).find(
176 int slotid = m_object->metaObject()->findSlot(
name.latin1(),
false);
178 throw Exception::Ptr(
new Exception(TQString(
"No such slot '%1'.").arg(name)) );
181 m_object->tqt_invoke(slotid, uo);
184 return new Variant( TQVariant(
true) );
189 return new Kross::Api::Variant(
190 TQStringList::fromStrList(m_object->metaObject()->signalNames(
false)));
195 return new Kross::Api::Variant(
196 bool(m_object->metaObject()->signalNames(
false).find(
204 int signalid = m_object->metaObject()->findSignal(
name.latin1(),
false);
206 throw Exception::Ptr(
new Exception(TQString(
"No such signal '%1'.").arg(name)) );
207 m_object->tqt_invoke(signalid, 0);
214 TQString signalsignatur = TQString(
"2%1").arg(signalname);
215 const char* signalsig = signalsignatur.latin1();
220 throw Exception::Ptr(
new Exception(TQString(
"No such TQObject receiver in '%1'.").arg(obj->
getName())) );
223 TQString slotsignatur = TQString(
"1%1").arg(slotname);
224 const char* slotsig = slotsignatur.latin1();
226 return new Kross::Api::Variant(
227 TQObject::connect(m_object, signalsig, o, slotsig));
const TQString getName() const
Class(const TQString &name)
void addFunction(const TQString &name, FunctionPtr function)
Common exception class used for representing exceptions in Kross.
TDESharedPtr< Exception > Ptr
Shared pointer to implement reference-counting.
TDESharedPtr< List > Ptr
Shared pointer to implement reference-counting.
static T * fromObject(Object::Ptr object)
Try to convert the Object instance to the template class T.
TDESharedPtr< Object > Ptr
Shared pointer to implement reference-counting.
virtual const TQString getClassName() const
TQObject * getObject()
Return the TQObject instance this class wraps.
virtual ~QtObject()
Destructor.
QtObject(TQObject *object, const TQString &name=TQString())
Constructor.
static TQUObject * toTQUObject(const TQString &signature, List::Ptr arguments)
Build a TQt TQUObject struct out of the TQt signal or slot signature and the passed List arguments.
Variant value to wrap a TQVariant into a Kross::Api::Value to enable primitive types like strings or ...
virtual const TQString toString()
static const TQVariant & toVariant(Object::Ptr object)
Try to convert the given Object into a TQVariant.
const char * name(StdAction id)
The common Kross API used as common codebase.
The Kross scripting bridge to embed scripting functionality into an application.