bool TextBox::SetProperty(UIProperty::Enum prop, const char* val) { switch (prop) { case UIProperty::BACKGROUND_IMAGE_NOATLAS: { mStrBackImage = val; if (!mImage) { mImage = ImageBox::Create(); mImage->SetHwndId(GetHwndId()); mImage->SetRender3D(mRender3D, GetRenderTargetSize()); mImage->SetManualParent(mSelfPtr.lock()); mImage->ChangePos(GetFinalPos()); mImage->ChangeSize(GetFinalSize()); } UIManager::GetInstance().DirtyRenderList(GetHwndId()); mImage->SetTexture(val); return true; } case UIProperty::KEEP_IMAGE_RATIO: { mStrKeepRatio = val; if (!mImage) { mImage = ImageBox::Create(); mImage->SetHwndId(GetHwndId()); mImage->SetRender3D(mRender3D, GetRenderTargetSize()); mImage->SetManualParent(mSelfPtr.lock()); mImage->ChangePos(GetFinalPos()); mImage->ChangeSize(GetFinalSize()); } UIManager::GetInstance().DirtyRenderList(GetHwndId()); mImage->SetKeepImageRatio(StringConverter::ParseBool(val, true)); return true; } case UIProperty::TEXTBOX_MATCH_HEIGHT: { mMatchHeight = StringConverter::ParseBool(val); if (mMatchHeight) { unsigned height = GetTextBoxHeight(); ChangeSizeY(height); } return true; } } return __super::SetProperty(prop, val); }
void TextBox::OnSizeChanged() { __super::OnSizeChanged(); if (mImage) mImage->SetSize(GetFinalSize()); }
/* // Struct Value Operand // // Returns 0 for OK, or -1 for Fatal Error */ static int StructValueOperand( char *source, int CmdType, uint *pValue ) { ASSIGN *pas; STRUCT *pst; char name[STRUCT_NAME_LEN]; char name2[STRUCT_NAME_LEN]; char *ext = 0; int i; for(i=0; i<STRUCT_NAME_LEN; i++) { name[i] = source[i]; if( name[i]=='.' || name[i]==0 ) break; } if( i==STRUCT_NAME_LEN ) return(-1); if( name[i]=='.' ) { name[i]=0; strcpy(name2,source+i+1); /* // Look for a name extenion. For example, the "W2" on "MyStruct.MyField.W2" */ for(i=0; i<STRUCT_NAME_LEN; i++) { if( name2[i]=='.' || name2[i]==0 ) break; } if( i==STRUCT_NAME_LEN ) return(-1); if( name2[i]=='.' ) { name2[i]=0; ext = name2+i+1; } } else name2[0]=0; pas = AssignFind(name); if( pas ) { if( !strlen(name2) ) { if( CmdType==SVO_SIZEOF ) *pValue = pas->TotalSize; else *pValue = 0; return(0); } for( i=0; i<pas->Elements; i++ ) { if( !stricmp(name2,pas->ElemName[i]) ) break; } if( i==pas->Elements ) return(-1); if( CmdType==SVO_SIZEOF ) { if(ext) return( GetFinalSize( ext, pas->Size[i], pValue ) ); *pValue = pas->Size[i]; } else { if(ext) return( GetFinalOffset( ext, pas->Size[i], pas->Offset[i], pValue ) ); *pValue = pas->Offset[i]; } return(0); } pst = StructFind(name); if( pst ) { if( !strlen(name2) ) { if( CmdType==SVO_SIZEOF ) *pValue = pst->TotalSize; else *pValue = 0; return(0); } for( i=0; i<pst->Elements; i++ ) { if( !stricmp(name2,pst->ElemName[i]) ) break; } if( i==pst->Elements ) return(-1); if( CmdType==SVO_SIZEOF ) { if(ext) return( GetFinalSize( ext, pst->Size[i], pValue ) ); *pValue = pst->Size[i]; } else { if(ext) return( GetFinalOffset( ext, pst->Size[i], pst->Offset[i], pValue ) ); *pValue = pst->Offset[i]; } return(0); } return -1; }