kjsembed
variant_binding.h File Reference
#include <QtCore/QVariant>
#include <kdemacros.h>
#include <kjs/object.h>
#include <kjs/interpreter.h>
#include "static_binding.h"
Include dependency graph for variant_binding.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Namespaces | |
namespace | KJSEmbed |
Classes | |
class | KJSEmbed::VariantBinding |
QVariant based binding. More... | |
class | KJSEmbed::VariantFactory |
Defines | |
#define | END_VARIANT_METHOD |
#define | KJSO_VARIANT_SIMPLE_BINDING_CTOR(NAME, JSNAME, TYPE, BASENAME) |
#define | START_VARIANT_METHOD(METHODNAME, TYPE) |
Functions | |
QList< QVariant > | KJSEmbed::convertArrayToList (KJS::ExecState *exec, KJS::JSValue *value) |
QMap< QString, QVariant > | KJSEmbed::convertArrayToMap (KJS::ExecState *exec, KJS::JSValue *value) |
QStringList | KJSEmbed::convertArrayToStringList (KJS::ExecState *exec, KJS::JSValue *value) |
KJS::JSValue * | KJSEmbed::convertToValue (KJS::ExecState *exec, const QVariant &value) |
QVariant | KJSEmbed::convertToVariant (KJS::ExecState *exec, KJS::JSValue *value) |
template<typename T> | |
KJS::JSValue * | KJSEmbed::createVariant (KJS::ExecState *exec, const KJS::UString &className, const T &value) |
template<typename T> | |
T | KJSEmbed::extractVariant (KJS::ExecState *exec, const KJS::List &args, int idx, const T &defaultValue=T()) |
template<typename T> | |
T | KJSEmbed::extractVariant (KJS::ExecState *exec, KJS::JSValue *arg, const T &defaultValue) |
QVariant | KJSEmbed::extractVariant (KJS::ExecState *exec, KJS::JSValue *value) |
Define Documentation
#define END_VARIANT_METHOD |
Value:
imp->setValue(qVariantFromValue(value)); \ } \ else \ {\ KJS::throwError(exec, KJS::GeneralError, "We have a problem baby");\ }\ return result; \ }
Definition at line 56 of file variant_binding.h.
#define KJSO_VARIANT_SIMPLE_BINDING_CTOR | ( | NAME, | |||
JSNAME, | |||||
TYPE, | |||||
BASENAME | ) |
Value:
NAME::NAME(KJS::ExecState *exec, const char* typeName ) \ : BASENAME( exec, typeName ) \ { \ StaticBinding::publish( exec, this, NAME::methods() ); \ } \ NAME::NAME(KJS::ExecState *exec, const TYPE & value) \ : BASENAME( exec, QVariant::fromValue(value)) \ { \ StaticBinding::publish( exec, this, NAME::methods() ); \ }
Definition at line 66 of file variant_binding.h.
#define START_VARIANT_METHOD | ( | METHODNAME, | |||
TYPE | ) |
Value:
KJS::JSValue *METHODNAME( KJS::ExecState *exec, KJS::JSObject *self, const KJS::List &args ) \ { \ Q_UNUSED(exec);\ Q_UNUSED(self);\ Q_UNUSED(args);\ KJS::JSValue *result = KJS::jsNull(); \ KJSEmbed::VariantBinding *imp = KJSEmbed::extractBindingImp<KJSEmbed::VariantBinding>(exec, self ); \ if( imp ) \ { \ TYPE value = imp->value<TYPE>();
This will extract the QVariant, cast it to the native type and place it in "value". Any data that should be returned from this method should be placed into "result";
Definition at line 42 of file variant_binding.h.