diff options
author | pescuma <pescuma@c086bb3d-8645-0410-b8da-73a8550f86e7> | 2008-12-31 21:12:58 +0000 |
---|---|---|
committer | pescuma <pescuma@c086bb3d-8645-0410-b8da-73a8550f86e7> | 2008-12-31 21:12:58 +0000 |
commit | bb6784e0e1a385cdd20b41d3254093e89a210332 (patch) | |
tree | c5d9c91b42a74baa30682fcbb717116a1df9c126 /Plugins/skins/SkinLib/V8Script.h | |
parent | 204a27b2f949cababbc13aff26755756987789a0 (diff) |
skins: Added SkinLib
git-svn-id: http://pescuma.googlecode.com/svn/trunk/Miranda@120 c086bb3d-8645-0410-b8da-73a8550f86e7
Diffstat (limited to 'Plugins/skins/SkinLib/V8Script.h')
-rw-r--r-- | Plugins/skins/SkinLib/V8Script.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Plugins/skins/SkinLib/V8Script.h b/Plugins/skins/SkinLib/V8Script.h new file mode 100644 index 0000000..2611f47 --- /dev/null +++ b/Plugins/skins/SkinLib/V8Script.h @@ -0,0 +1,41 @@ +#ifndef __V8_SCRIPT_H__
+# define __V8_SCRIPT_H__
+
+#include <v8.h>
+#include "V8Wrappers.h"
+
+typedef void (*ExceptionCallback)(void *param, const TCHAR *err);
+
+
+class V8Script
+{
+public:
+ V8Script();
+ ~V8Script();
+
+ bool compile(const TCHAR *source, Dialog *dlg);
+ void dispose();
+
+ bool isValid();
+
+ SkinOptions * createOptions(Dialog *dlg);
+
+ bool run(DialogState * state, SkinOptions *opts);
+
+ void setExceptionCallback(ExceptionCallback cb, void *param = NULL);
+
+private:
+ V8Wrappers wrappers;
+ v8::Persistent<v8::Context> context;
+ v8::Persistent<v8::Script> script;
+
+ ExceptionCallback exceptionCallback;
+ void *exceptionCallbackParam;
+
+ v8::Handle<v8::Function> getOptionsFunction(Dialog *dlg);
+ void reportException(v8::TryCatch *try_catch);
+};
+
+
+
+#endif // __V8_SCRIPT_H__
|