From 9242a80a84fa5c96dbadec9594177875aeeec1ac Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Tue, 10 Jul 2012 18:37:21 +0000 Subject: only added MyDetails and Skins. not adopted yet git-svn-id: http://svn.miranda-ng.org/main/trunk@892 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Skins/SkinLib/V8Templates.cpp | 475 ++++++++++++++++++++++++++++++++++ 1 file changed, 475 insertions(+) create mode 100644 plugins/Skins/SkinLib/V8Templates.cpp (limited to 'plugins/Skins/SkinLib/V8Templates.cpp') diff --git a/plugins/Skins/SkinLib/V8Templates.cpp b/plugins/Skins/SkinLib/V8Templates.cpp new file mode 100644 index 0000000000..4900e13772 --- /dev/null +++ b/plugins/Skins/SkinLib/V8Templates.cpp @@ -0,0 +1,475 @@ +#include "globals.h" +#include +#include "V8Templates.h" +#include "DialogState_v8_wrapper.h" +#include "FieldState_v8_wrapper.h" +#include "ControlFieldState_v8_wrapper.h" +#include "TextFieldState_v8_wrapper.h" +#include "FontState_v8_wrapper.h" +#include "BorderState_v8_wrapper.h" +#include "SkinOption_v8_wrapper.h" + +using namespace v8; + + +V8Templates::V8Templates() +{ +} + +V8Templates::~V8Templates() +{ + dialogStateTemplate.Dispose(); + fieldStateTemplate.Dispose(); + controlFieldStateTemplate.Dispose(); + textFieldStateTemplate.Dispose(); + fontStateTemplate.Dispose(); + borderStateTemplate.Dispose(); + skinOptionTemplate.Dispose(); +} + + +Handle V8Templates::getGlobalTemplate() +{ + HandleScope scope; + + if (!globalTemplate.IsEmpty()) + return globalTemplate; + + Handle templ = ObjectTemplate::New(); + templ->Set(String::New("HORIZONTAL_ALIGN_LEFT"), String::New("HORIZONTAL_ALIGN_LEFT")); + templ->Set(String::New("LEFT"), String::New("HORIZONTAL_ALIGN_LEFT")); + templ->Set(String::New("HORIZONTAL_ALIGN_CENTER"), String::New("HORIZONTAL_ALIGN_CENTER")); + templ->Set(String::New("CENTER"), String::New("HORIZONTAL_ALIGN_CENTER")); + templ->Set(String::New("HORIZONTAL_ALIGN_RIGHT"), String::New("HORIZONTAL_ALIGN_RIGHT")); + templ->Set(String::New("RIGHT"), String::New("HORIZONTAL_ALIGN_RIGHT")); + templ->Set(String::New("VERTICAL_ALIGN_TOP"), String::New("VERTICAL_ALIGN_TOP")); + templ->Set(String::New("TOP"), String::New("VERTICAL_ALIGN_TOP")); + templ->Set(String::New("VERTICAL_ALIGN_CENTER"), String::New("VERTICAL_ALIGN_CENTER")); + templ->Set(String::New("CENTER"), String::New("VERTICAL_ALIGN_CENTER")); + templ->Set(String::New("VERTICAL_ALIGN_BOTTOM"), String::New("VERTICAL_ALIGN_BOTTOM")); + templ->Set(String::New("BOTTOM"), String::New("VERTICAL_ALIGN_BOTTOM")); + templ->Set(String::New("CHECKBOX"), String::New("CHECKBOX")); + templ->Set(String::New("NUMBER"), String::New("NUMBER")); + templ->Set(String::New("TEXT"), String::New("TEXT")); + addGlobalTemplateFields(templ); + + globalTemplate = Persistent::New(templ); + + return globalTemplate; +} + + +void V8Templates::addGlobalTemplateFields(Handle &templ) +{ +} + + +int V8Templates::numOfDialogStateInternalFields() +{ + return 1; +} + +Handle V8Templates::getDialogStateTemplate() +{ + HandleScope scope; + + if (!dialogStateTemplate.IsEmpty()) + return dialogStateTemplate; + + Handle templ = ObjectTemplate::New(); + templ->SetInternalFieldCount(numOfDialogStateInternalFields()); + AddDialogStateAcessors(templ); + addDialogStateTemplateFields(templ); + + dialogStateTemplate = Persistent::New(templ); + + return dialogStateTemplate; +} + +void V8Templates::addDialogStateTemplateFields(Handle &templ) +{ +} + +Handle V8Templates::newDialogState() +{ + HandleScope scope; + + Handle obj = getDialogStateTemplate()->NewInstance(); + obj->Set(String::New("bordersRaw"), newBorderState(), ReadOnly); + + return scope.Close(obj); +} + +void V8Templates::fillDialogState(Handle v8Obj, DialogState *obj) +{ + HandleScope scope; + + _ASSERT(!v8Obj.IsEmpty()); + + v8Obj->SetInternalField(0, External::New(obj)); + fillBorderState(Handle::Cast(v8Obj->Get(String::New("bordersRaw"))), obj->getBorders()); +} + + +int V8Templates::numOfFieldStateInternalFields() +{ + return 1; +} + +Handle V8Templates::getFieldStateTemplate() +{ + HandleScope scope; + + if (!fieldStateTemplate.IsEmpty()) + return fieldStateTemplate; + + Handle templ = ObjectTemplate::New(); + templ->SetInternalFieldCount(numOfFieldStateInternalFields()); + AddFieldStateAcessors(templ); + addFieldStateTemplateFields(templ); + + fieldStateTemplate = Persistent::New(templ); + + return fieldStateTemplate; +} + +void V8Templates::addFieldStateTemplateFields(Handle &templ) +{ +} + +Handle V8Templates::newFieldState() +{ + HandleScope scope; + + Handle obj = getFieldStateTemplate()->NewInstance(); + obj->Set(String::New("bordersRaw"), newBorderState(), ReadOnly); + + return scope.Close(obj); +} + +void V8Templates::fillFieldState(Handle v8Obj, FieldState *obj) +{ + HandleScope scope; + + _ASSERT(!v8Obj.IsEmpty()); + + v8Obj->SetInternalField(0, External::New(obj)); + fillBorderState(Handle::Cast(v8Obj->Get(String::New("bordersRaw"))), obj->getBorders()); +} + + +int V8Templates::numOfControlFieldStateInternalFields() +{ + return 1; +} + +Handle V8Templates::getControlFieldStateTemplate() +{ + HandleScope scope; + + if (!controlFieldStateTemplate.IsEmpty()) + return controlFieldStateTemplate; + + Handle templ = ObjectTemplate::New(); + templ->SetInternalFieldCount(numOfControlFieldStateInternalFields()); + AddFieldStateAcessors(templ); + AddControlFieldStateAcessors(templ); + addControlFieldStateTemplateFields(templ); + + controlFieldStateTemplate = Persistent::New(templ); + + return controlFieldStateTemplate; +} + +void V8Templates::addControlFieldStateTemplateFields(Handle &templ) +{ +} + +Handle V8Templates::newControlFieldState() +{ + HandleScope scope; + + Handle obj = getControlFieldStateTemplate()->NewInstance(); + obj->Set(String::New("bordersRaw"), newBorderState(), ReadOnly); + obj->Set(String::New("font"), newFontState(), ReadOnly); + + return scope.Close(obj); +} + +void V8Templates::fillControlFieldState(Handle v8Obj, ControlFieldState *obj) +{ + HandleScope scope; + + _ASSERT(!v8Obj.IsEmpty()); + + v8Obj->SetInternalField(0, External::New(obj)); + fillBorderState(Handle::Cast(v8Obj->Get(String::New("bordersRaw"))), obj->getBorders()); + fillFontState(Handle::Cast(v8Obj->Get(String::New("font"))), obj->getFont()); +} + + +Handle V8Templates::getLabelFieldStateTemplate() +{ + return getControlFieldStateTemplate(); +} + +Handle V8Templates::newLabelFieldState() +{ + return newControlFieldState(); +} + +void V8Templates::fillLabelFieldState(Handle v8Obj, LabelFieldState *obj) +{ + fillControlFieldState(v8Obj, obj); +} + + +Handle V8Templates::getButtonFieldStateTemplate() +{ + return getControlFieldStateTemplate(); +} + +Handle V8Templates::newButtonFieldState() +{ + return newControlFieldState(); +} + +void V8Templates::fillButtonFieldState(Handle v8Obj, ButtonFieldState *obj) +{ + fillControlFieldState(v8Obj, obj); +} + + +Handle V8Templates::getEditFieldStateTemplate() +{ + return getControlFieldStateTemplate(); +} + +Handle V8Templates::newEditFieldState() +{ + return newControlFieldState(); +} + +void V8Templates::fillEditFieldState(Handle v8Obj, EditFieldState *obj) +{ + fillControlFieldState(v8Obj, obj); +} + + +Handle V8Templates::getIconFieldStateTemplate() +{ + return getFieldStateTemplate(); +} + +Handle V8Templates::newIconFieldState() +{ + return newFieldState(); +} + +void V8Templates::fillIconFieldState(Handle v8Obj, IconFieldState *obj) +{ + fillFieldState(v8Obj, obj); +} + + +Handle V8Templates::getImageFieldStateTemplate() +{ + return getFieldStateTemplate(); +} + +Handle V8Templates::newImageFieldState() +{ + return newFieldState(); +} + +void V8Templates::fillImageFieldState(Handle v8Obj, ImageFieldState *obj) +{ + fillFieldState(v8Obj, obj); +} + + +int V8Templates::numOfTextFieldStateInternalFields() +{ + return 1; +} + +Handle V8Templates::getTextFieldStateTemplate() +{ + HandleScope scope; + + if (!textFieldStateTemplate.IsEmpty()) + return textFieldStateTemplate; + + Handle templ = ObjectTemplate::New(); + templ->SetInternalFieldCount(numOfTextFieldStateInternalFields()); + AddFieldStateAcessors(templ); + AddTextFieldStateAcessors(templ); + addTextFieldStateTemplateFields(templ); + + textFieldStateTemplate = Persistent::New(templ); + + return textFieldStateTemplate; +} + +void V8Templates::addTextFieldStateTemplateFields(Handle &templ) +{ +} + +Handle V8Templates::newTextFieldState() +{ + HandleScope scope; + + Handle obj = getTextFieldStateTemplate()->NewInstance(); + obj->Set(String::New("bordersRaw"), newBorderState(), ReadOnly); + obj->Set(String::New("font"), newFontState(), ReadOnly); + + return scope.Close(obj); +} + +void V8Templates::fillTextFieldState(Handle v8Obj, TextFieldState *obj) +{ + HandleScope scope; + + _ASSERT(!v8Obj.IsEmpty()); + + v8Obj->SetInternalField(0, External::New(obj)); + fillBorderState(Handle::Cast(v8Obj->Get(String::New("bordersRaw"))), obj->getBorders()); + fillFontState(Handle::Cast(v8Obj->Get(String::New("font"))), obj->getFont()); +} + + +int V8Templates::numOfFontStateInternalFields() +{ + return 1; +} + +Handle V8Templates::getFontStateTemplate() +{ + HandleScope scope; + + if (!fontStateTemplate.IsEmpty()) + return fontStateTemplate; + + Handle templ = ObjectTemplate::New(); + templ->SetInternalFieldCount(numOfFontStateInternalFields()); + AddFontStateAcessors(templ); + addFontStateTemplateFields(templ); + + fontStateTemplate = Persistent::New(templ); + + return fontStateTemplate; +} + +void V8Templates::addFontStateTemplateFields(Handle &templ) +{ +} + +Handle V8Templates::newFontState() +{ + HandleScope scope; + + Handle obj = getFontStateTemplate()->NewInstance(); + + return scope.Close(obj); +} + +void V8Templates::fillFontState(Handle v8Obj, FontState *obj) +{ + HandleScope scope; + + _ASSERT(!v8Obj.IsEmpty()); + + v8Obj->SetInternalField(0, External::New(obj)); +} + + +int V8Templates::numOfBorderStateInternalFields() +{ + return 1; +} + +Handle V8Templates::getBorderStateTemplate() +{ + HandleScope scope; + + if (!borderStateTemplate.IsEmpty()) + return borderStateTemplate; + + Handle templ = ObjectTemplate::New(); + templ->SetInternalFieldCount(numOfBorderStateInternalFields()); + AddBorderStateAcessors(templ); + addBorderStateTemplateFields(templ); + + borderStateTemplate = Persistent::New(templ); + + return borderStateTemplate; +} + +void V8Templates::addBorderStateTemplateFields(Handle &templ) +{ +} + +Handle V8Templates::newBorderState() +{ + HandleScope scope; + + Handle obj = getBorderStateTemplate()->NewInstance(); + + return scope.Close(obj); +} + +void V8Templates::fillBorderState(Handle v8Obj, BorderState *obj) +{ + HandleScope scope; + + _ASSERT(!v8Obj.IsEmpty()); + + v8Obj->SetInternalField(0, External::New(obj)); +} + + +int V8Templates::numOfSkinOptionInternalFields() +{ + return 1; +} + +Handle V8Templates::getSkinOptionTemplate() +{ + HandleScope scope; + + if (!skinOptionTemplate.IsEmpty()) + return skinOptionTemplate; + + Handle templ = ObjectTemplate::New(); + templ->SetInternalFieldCount(numOfSkinOptionInternalFields()); + AddSkinOptionAcessors(templ); + addSkinOptionTemplateFields(templ); + + skinOptionTemplate = Persistent::New(templ); + + return skinOptionTemplate; +} + +void V8Templates::addSkinOptionTemplateFields(Handle &templ) +{ +} + +Handle V8Templates::newSkinOption() +{ + HandleScope scope; + + Handle obj = getSkinOptionTemplate()->NewInstance(); + + return scope.Close(obj); +} + +void V8Templates::fillSkinOption(Handle v8Obj, SkinOption *obj) +{ + HandleScope scope; + + _ASSERT(!v8Obj.IsEmpty()); + + v8Obj->SetInternalField(0, External::New(obj)); +} + + -- cgit v1.2.3