From 3abd781670e4cd7a82d5ab2966ef9f8131535b54 Mon Sep 17 00:00:00 2001 From: pescuma Date: Tue, 6 Jan 2009 05:45:37 +0000 Subject: skins: Added border to fields State is now got through interface It works! git-svn-id: http://pescuma.googlecode.com/svn/trunk/Miranda@124 c086bb3d-8645-0410-b8da-73a8550f86e7 --- .../skins/SkinLib/TextFieldState_v8_wrapper.cpp | 50 +++++++++++++++++----- 1 file changed, 40 insertions(+), 10 deletions(-) (limited to 'Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp') diff --git a/Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp b/Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp index 0c3fb3f..73035d9 100644 --- a/Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp +++ b/Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp @@ -18,7 +18,13 @@ static Handle Get_TextFieldState_text(Local property, const Acces { Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); + if (wrap.IsEmpty()) + return Undefined(); + TextFieldState *tmp = (TextFieldState *) wrap->Value(); + if (tmp == NULL) + return Undefined(); + return String::New((const V8_TCHAR *) tmp->getText()); } @@ -26,9 +32,18 @@ static void Set_TextFieldState_text(Local property, Local value, { Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); + if (wrap.IsEmpty()) + return; + TextFieldState *tmp = (TextFieldState *) wrap->Value(); - String::Utf8Value utf8_value(value); - tmp->setText(Utf8ToTchar(*utf8_value)); + if (tmp == NULL) + return; + + if (!value.IsEmpty() && value->IsString()) + { + String::Utf8Value utf8_value(value); + tmp->setText(Utf8ToTchar(*utf8_value)); + } } @@ -36,7 +51,13 @@ static Handle Get_TextFieldState_hAlign(Local property, const Acc { Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); + if (wrap.IsEmpty()) + return Undefined(); + TextFieldState *tmp = (TextFieldState *) wrap->Value(); + if (tmp == NULL) + return Undefined(); + switch(tmp->getHAlign()) { case LEFT: return String::New((const V8_TCHAR *) _T("LEFT")); @@ -50,15 +71,24 @@ static void Set_TextFieldState_hAlign(Local property, Local value { Local self = info.Holder(); Local wrap = Local::Cast(self->GetInternalField(0)); + if (wrap.IsEmpty()) + return; + TextFieldState *tmp = (TextFieldState *) wrap->Value(); - String::Utf8Value utf8_value(value); - Utf8ToTchar tval(*utf8_value); - if ( lstrcmpi(_T("LEFT"), tval) == 0) - tmp->setHAlign(LEFT); - else if ( lstrcmpi(_T("CENTER"), tval) == 0) - tmp->setHAlign(CENTER); - else if ( lstrcmpi(_T("RIGHT"), tval) == 0) - tmp->setHAlign(RIGHT); + if (tmp == NULL) + return; + + if (!value.IsEmpty() && value->IsString()) + { + String::Utf8Value utf8_value(value); + Utf8ToTchar tval(*utf8_value); + if ( lstrcmpi(_T("LEFT"), tval) == 0) + tmp->setHAlign(LEFT); + else if ( lstrcmpi(_T("CENTER"), tval) == 0) + tmp->setHAlign(CENTER); + else if ( lstrcmpi(_T("RIGHT"), tval) == 0) + tmp->setHAlign(RIGHT); + } } -- cgit v1.2.3