00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __JAVASCRIPTOBJECT_H__
00009 #define __JAVASCRIPTOBJECT_H__
00010
00011 #include "webkit/glue/cpp_bound_class.h"
00012 #include "JSValue.h"
00013 #include "v8.h"
00014
00015 namespace Awesomium { class WebView; }
00016 class NamedCallback;
00017
00018 class JavascriptObject : public CppBoundClass
00019 {
00020 public:
00021 JavascriptObject(const std::wstring& objectName, Awesomium::WebView* view);
00022 virtual ~JavascriptObject();
00023
00024 const std::wstring& getName() const;
00025
00026 void setProperty(const std::wstring& name, const Awesomium::JSValue& value);
00027
00028 void setCallback(const std::wstring& name);
00029
00030 protected:
00031
00032 std::map<std::wstring, CppVariant*> properties;
00033 std::map<std::wstring, NamedCallback*> callbacks;
00034 Awesomium::WebView* view;
00035 std::wstring objectName;
00036 };
00037
00038 void initFromCppArgumentList(const CppArgumentList& args, Awesomium::JSArguments& result);
00039
00040 void createV8ArgsFromJSArgs(const Awesomium::JSArguments& args, std::vector<v8::Handle<v8::Value> >& result);
00041
00042 #endif