diff options
Diffstat (limited to 'Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp')
-rw-r--r-- | Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp | 50 |
1 files changed, 40 insertions, 10 deletions
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<Value> Get_TextFieldState_text(Local<String> property, const Acces {
Local<Object> self = info.Holder();
Local<External> wrap = Local<External>::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<String> property, Local<Value> value, {
Local<Object> self = info.Holder();
Local<External> wrap = Local<External>::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<Value> Get_TextFieldState_hAlign(Local<String> property, const Acc {
Local<Object> self = info.Holder();
Local<External> wrap = Local<External>::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<String> property, Local<Value> value {
Local<Object> self = info.Holder();
Local<External> wrap = Local<External>::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);
+ }
}
|