kjsembed
value_binding.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "value_binding.h"
00023 #include "static_binding.h"
00024
00025 using namespace KJSEmbed;
00026
00027 const KJS::ClassInfo ValueBinding::info = { "ValueBinding", 0, 0, 0 };
00028
00029 KJS::JSValue *callValueType( KJS::ExecState *exec, KJS::JSObject *self, const KJS::List &args )
00030 {
00031 Q_UNUSED(args);
00032 KJSEmbed::ValueBinding *imp = KJSEmbed::extractBindingImp<KJSEmbed::ValueBinding>(exec, self );
00033 if( imp )
00034 {
00035 return KJS::jsString( imp->className().ascii() );
00036 }
00037 return KJS::jsNull();
00038 }
00039
00040 const Method ValueFactory::ValueMethods[] =
00041 {
00042 {"type", 0, KJS::DontDelete|KJS::ReadOnly, &callValueType },
00043
00044
00045 {0, 0, 0, 0 }
00046 };
00047
00048 const Method *ValueFactory::methods()
00049 {
00050 return ValueMethods;
00051 }
00052
00053 ValueBinding::ValueBinding( KJS::ExecState *exec, const char *typeName)
00054 : ProxyBinding( exec ),
00055 m_value(0),
00056 m_name(typeName)
00057 {
00058 StaticBinding::publish( exec, this, ValueFactory::methods() );
00059 }
00060
00061 ValueBinding::~ValueBinding()
00062 {
00063 delete m_value;
00064 }
00065
00066 KJS::UString ValueBinding::toString(KJS::ExecState *exec) const
00067 {
00068 Q_UNUSED(exec);
00069 return m_value->type().name();
00070 }
00071
00072