#include "globals.h" #include "FontState_v8_wrapper.h" #include #include "FontState.h" #include using namespace v8; #ifdef UNICODE # define V8_TCHAR uint16_t #else # define V8_TCHAR char #endif static Handle Get_FontState_face(Local property, const AccessorInfo &info) { HandleScope scope; Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) return scope.Close( Undefined() ); FontState *tmp = (FontState *) wrap->Value(); if (tmp == NULL) return scope.Close( Undefined() ); return scope.Close( String::New((const V8_TCHAR *) tmp->getFace()) ); } static void Set_FontState_face(Local property, Local value, const AccessorInfo& info) { HandleScope scope; Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) return; FontState *tmp = (FontState *) wrap->Value(); if (tmp == NULL) return; if (!value.IsEmpty() && value->IsString()) { String::Utf8Value utf8_value(value); tmp->setFace(Utf8ToTchar(*utf8_value)); } } static Handle Get_FontState_size(Local property, const AccessorInfo &info) { HandleScope scope; Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) return scope.Close( Undefined() ); FontState *tmp = (FontState *) wrap->Value(); if (tmp == NULL) return scope.Close( Undefined() ); return scope.Close( Int32::New(tmp->getSize()) ); } static void Set_FontState_size(Local property, Local value, const AccessorInfo& info) { HandleScope scope; Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) return; FontState *tmp = (FontState *) wrap->Value(); if (tmp == NULL) return; if (!value.IsEmpty() && value->IsNumber()) tmp->setSize(value->Int32Value()); } static Handle Get_FontState_italic(Local property, const AccessorInfo &info) { HandleScope scope; Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) return scope.Close( Undefined() ); FontState *tmp = (FontState *) wrap->Value(); if (tmp == NULL) return scope.Close( Undefined() ); return scope.Close( Boolean::New(tmp->isItalic()) ); } static void Set_FontState_italic(Local property, Local value, const AccessorInfo& info) { HandleScope scope; Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) return; FontState *tmp = (FontState *) wrap->Value(); if (tmp == NULL) return; if (!value.IsEmpty() && value->IsBoolean()) tmp->setItalic(value->BooleanValue()); } static Handle Get_FontState_bold(Local property, const AccessorInfo &info) { HandleScope scope; Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) return scope.Close( Undefined() ); FontState *tmp = (FontState *) wrap->Value(); if (tmp == NULL) return scope.Close( Undefined() ); return scope.Close( Boolean::New(tmp->isBold()) ); } static void Set_FontState_bold(Local property, Local value, const AccessorInfo& info) { HandleScope scope; Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) return; FontState *tmp = (FontState *) wrap->Value(); if (tmp == NULL) return; if (!value.IsEmpty() && value->IsBoolean()) tmp->setBold(value->BooleanValue()); } static Handle Get_FontState_underline(Local property, const AccessorInfo &info) { HandleScope scope; Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) return scope.Close( Undefined() ); FontState *tmp = (FontState *) wrap->Value(); if (tmp == NULL) return scope.Close( Undefined() ); return scope.Close( Boolean::New(tmp->isUnderline()) ); } static void Set_FontState_underline(Local property, Local value, const AccessorInfo& info) { HandleScope scope; Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) return; FontState *tmp = (FontState *) wrap->Value(); if (tmp == NULL) return; if (!value.IsEmpty() && value->IsBoolean()) tmp->setUnderline(value->BooleanValue()); } static Handle Get_FontState_strikeOut(Local property, const AccessorInfo &info) { HandleScope scope; Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) return scope.Close( Undefined() ); FontState *tmp = (FontState *) wrap->Value(); if (tmp == NULL) return scope.Close( Undefined() ); return scope.Close( Boolean::New(tmp->isStrikeOut()) ); } static void Set_FontState_strikeOut(Local property, Local value, const AccessorInfo& info) { HandleScope scope; Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) return; FontState *tmp = (FontState *) wrap->Value(); if (tmp == NULL) return; if (!value.IsEmpty() && value->IsBoolean()) tmp->setStrikeOut(value->BooleanValue()); } static Handle Get_FontState_color(Local property, const AccessorInfo &info) { HandleScope scope; Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) return scope.Close( Undefined() ); FontState *tmp = (FontState *) wrap->Value(); if (tmp == NULL) return scope.Close( Undefined() ); return scope.Close( Int32::New(tmp->getColor()) ); } static void Set_FontState_color(Local property, Local value, const AccessorInfo& info) { HandleScope scope; Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); if (wrap.IsEmpty()) return; FontState *tmp = (FontState *) wrap->Value(); if (tmp == NULL) return; if (!value.IsEmpty() && value->IsNumber()) tmp->setColor(value->Int32Value()); } void AddFontStateAcessors(Handle &templ) { HandleScope scope; templ->SetAccessor(String::New("face"), Get_FontState_face, Set_FontState_face); templ->SetAccessor(String::New("size"), Get_FontState_size, Set_FontState_size); templ->SetAccessor(String::New("italic"), Get_FontState_italic, Set_FontState_italic); templ->SetAccessor(String::New("bold"), Get_FontState_bold, Set_FontState_bold); templ->SetAccessor(String::New("underline"), Get_FontState_underline, Set_FontState_underline); templ->SetAccessor(String::New("strikeOut"), Get_FontState_strikeOut, Set_FontState_strikeOut); templ->SetAccessor(String::New("color"), Get_FontState_color, Set_FontState_color); }