void DwDispositionType::Parse() { mIsModified = 0; mDispositionType = DwMime::kDispTypeNull; mDispositionTypeStr = ""; if(mFirstParameter) { DeleteParameterList(); } if(mString.length() == 0) return; DwRfc1521Tokenizer tokenizer(mString); int found = 0; while(!found && tokenizer.Type() != eTkNull) { if(tokenizer.Type() == eTkToken) { mDispositionTypeStr = tokenizer.Token(); found = 1; } ++tokenizer; } // Get parameters DwTokenString tokenStr(mString); while(1) { // Get ';' found = 0; while(!found && tokenizer.Type() != eTkNull) { if(tokenizer.Type() == eTkTspecial && tokenizer.Token()[0] == ';') { found = 1; } ++tokenizer; } if(tokenizer.Type() == eTkNull) { // No more parameters break; } tokenStr.SetFirst(tokenizer); // Get attribute DwString attrib; int attribFound = 0; while(!attribFound && tokenizer.Type() != eTkNull) { if(tokenizer.Type() == eTkToken) { attrib = tokenizer.Token(); attribFound = 1; } ++tokenizer; } // Get '=' found = 0; while(!found && tokenizer.Type() != eTkNull) { if(tokenizer.Type() == eTkTspecial && tokenizer.Token()[0] == '=') { found = 1; } ++tokenizer; } // Get value int valueFound = 0; while(!valueFound && tokenizer.Type() != eTkNull) { if(tokenizer.Type() == eTkToken || tokenizer.Type() == eTkQuotedString) { valueFound = 1; } ++tokenizer; } if(attribFound && valueFound) { tokenStr.ExtendTo(tokenizer); DwParameter *param = DwParameter::NewParameter(tokenStr.Tokens(), this); param->Parse(); _AddParameter(param); } } StrToEnum(); }
void CGumpPicture::SetPictureTypeStr(CString strType) { m_eType = (TYPE)StrToEnum(strType, m_szPictureType, NUM_TYPE, m_eType); }
void DwDispositionType::SetDispositionTypeStr(const DwString &aStr) { mDispositionTypeStr = aStr; StrToEnum(); SetModified(); }