summaryrefslogtreecommitdiff
path: root/Plugins/skins/SkinLib/V8Wrappers.h
diff options
context:
space:
mode:
authorpescuma <pescuma@c086bb3d-8645-0410-b8da-73a8550f86e7>2009-01-20 23:24:30 +0000
committerpescuma <pescuma@c086bb3d-8645-0410-b8da-73a8550f86e7>2009-01-20 23:24:30 +0000
commit334bfbad3fda3860f51b74cd6370786ef253ad49 (patch)
tree2cc40bf67b0ad86fc1e8c2e5f0a2e2085498ae7b /Plugins/skins/SkinLib/V8Wrappers.h
parentff634d35c1fbd2831be6c1206bb9298cd5a14eda (diff)
skins: templates are kept in memory
git-svn-id: http://pescuma.googlecode.com/svn/trunk/Miranda@128 c086bb3d-8645-0410-b8da-73a8550f86e7
Diffstat (limited to 'Plugins/skins/SkinLib/V8Wrappers.h')
-rw-r--r--Plugins/skins/SkinLib/V8Wrappers.h65
1 files changed, 11 insertions, 54 deletions
diff --git a/Plugins/skins/SkinLib/V8Wrappers.h b/Plugins/skins/SkinLib/V8Wrappers.h
index 01781f7..4b7a672 100644
--- a/Plugins/skins/SkinLib/V8Wrappers.h
+++ b/Plugins/skins/SkinLib/V8Wrappers.h
@@ -1,70 +1,27 @@
#ifndef __V8_WRAPPERS_H__
# define __V8_WRAPPERS_H__
-#include <v8.h>
-#include <map>
-#include "DialogState.h"
-#include "TextFieldState.h"
-#include "ImageFieldState.h"
-#include "IconFieldState.h"
-#include "LabelFieldState.h"
-#include "ButtonFieldState.h"
-#include "EditFieldState.h"
+#include "V8Templates.h"
#include "SkinOptions.h"
-#ifdef UNICODE
-# define V8_TCHAR uint16_t
-#else
-# define V8_TCHAR char
-#endif
-class V8Wrappers
+class V8Wrappers : public V8Templates
{
public:
- v8::Handle<v8::Object> createDialogWrapper();
- v8::Handle<v8::Object> createOptionsWrapper();
- v8::Handle<v8::Object> createOptionWrapper();
- v8::Handle<v8::Object> createWrapper(FieldType type);
+ virtual v8::Handle<v8::Object> newState(FieldType type);
+ virtual void fillState(v8::Handle<v8::Object> obj, FieldState *state);
- v8::Handle<v8::Object> fillWrapper(v8::Handle<v8::Object> obj, FieldState *state);
- v8::Handle<v8::Object> fillWrapper(v8::Handle<v8::Object> obj, DialogState *state);
- v8::Handle<v8::Object> fillWrapper(v8::Handle<v8::Object> obj, SkinOptions *opts, bool configure);
- v8::Handle<v8::Object> fillWrapper(v8::Handle<v8::Object> obj, SkinOption *opt);
-
- void clearTemplates();
+ virtual v8::Handle<v8::ObjectTemplate> getOptionsTemplate();
+ virtual v8::Handle<v8::Object> newOptions();
+ virtual void fillOptions(v8::Handle<v8::Object> v8Obj, SkinOptions *obj, bool configure);
private:
- std::map<int, v8::Handle<v8::ObjectTemplate>> templs;
-
- void createDialogTemplate();
- void createOptionsTemplate();
- void createOptionTemplate();
- void createTemplateFor(FieldType type);
-
- void createTextTemplate();
- void createImageTemplate();
- void createIconTemplate();
- void createLabelTemplate();
- void createButtonTemplate();
- void createEditTemplate();
- void createFontTemplate();
- void createBorderTemplate();
-
- v8::Handle<v8::Object> createTextWrapper();
- v8::Handle<v8::Object> createImageWrapper();
- v8::Handle<v8::Object> createIconWrapper();
- v8::Handle<v8::Object> createLabelWrapper();
- v8::Handle<v8::Object> createButtonWrapper();
- v8::Handle<v8::Object> createEditWrapper();
+ v8::Persistent<v8::ObjectTemplate> optionsTemplate;
- v8::Handle<v8::Object> fillTextWrapper(v8::Handle<v8::Object> obj, TextFieldState *state);
- v8::Handle<v8::Object> fillImageWrapper(v8::Handle<v8::Object> obj, ImageFieldState *state);
- v8::Handle<v8::Object> fillIconWrapper(v8::Handle<v8::Object> obj, IconFieldState *state);
- v8::Handle<v8::Object> fillLabelWrapper(v8::Handle<v8::Object> obj, LabelFieldState *state);
- v8::Handle<v8::Object> fillButtonWrapper(v8::Handle<v8::Object> obj, ButtonFieldState *state);
- v8::Handle<v8::Object> fillEditWrapper(v8::Handle<v8::Object> obj, EditFieldState *state);
+protected:
+ virtual void addGlobalTemplateFields(v8::Handle<v8::ObjectTemplate> &templ);
- v8::Handle<v8::Object> newInstance(int type);
+ virtual void addSkinOptionTemplateFields(v8::Handle<v8::ObjectTemplate> &templ);
};