static bool ResWriteDialogHeaderCommon32( DialogBoxHeader32 *head, FILE *fp, bool add_quotes ) /********************************************************************************************/ { bool error; size_t len; char *newname; if( add_quotes ) { if( head->MenuName != NULL && head->MenuName->name[0] != '\0' ) { len = strlen( head->MenuName->name ); newname = WRESALLOC( len + 3 ); newname[0] = '"'; strcpy( newname + 1, head->MenuName->name ); newname[len + 1] = '"'; newname[len + 2] = '\0'; head->MenuName = ResStrToNameOrOrd( newname ); WRESFREE( newname ); } } error = ResWriteNameOrOrdinal( head->MenuName, true, fp ); if( !error ) { error = ResWriteNameOrOrdinal( head->ClassName, true, fp ); } if( !error ) { error = ResWriteString( head->Caption, true, fp ); } return( error ); }
static ResNameOrOrdinal *WRCreateMRESResName( WResResNode *rnode, WResLangNode *lnode ) { ResNameOrOrdinal *name; char *str; int len; if( rnode == NULL || lnode == NULL ) { return( NULL ); } if( !lnode->Info.lang.lang && !lnode->Info.lang.sublang ) { name = WResIDToNameOrOrd( &rnode->Info.ResName ); } else { if( rnode->Info.ResName.IsName ) { len = rnode->Info.ResName.ID.Name.NumChars; str = (char *)MemAlloc( len + ( 1 + UINT16STRLEN ) * 2 + 1 ); if( str == NULL ) { return( NULL ); } memcpy( str, rnode->Info.ResName.ID.Name.Name, len ); sprintf( str + len, "_%u_%u", lnode->Info.lang.lang, lnode->Info.lang.sublang ); } else { str = (char *)MemAlloc( UINT16STRLEN + ( 1 + UINT16STRLEN ) * 2 + 1 ); if( str == NULL ) { return( NULL ); } sprintf( str, "%u_%u_%u", rnode->Info.ResName.ID.Num, lnode->Info.lang.lang, lnode->Info.lang.sublang ); } name = ResStrToNameOrOrd( str ); MemFree( str ); } return( name ); }
void WdeChangeControlInfo( WdeInfoStruct *is ) { char *str; char *cp; WdeInfoStruct c_is; bool str_is_ordinal; uint_16 ord; bool found; WdeHashValue value; c_is = *is; str = NULL; cp = WdeGetStrFromEdit( WdeInfoWindow, IDB_INFO_CAPTION, NULL ); if( cp != NULL ) { str = WRConvertStringTo( cp, "\t\n", "tn" ); WRMemFree( cp ); } if( str != NULL ) { c_is.c.text = ResStrToNameOrOrd( str ); WRMemFree( str ); } else { c_is.c.text = NULL; } str = WdeGetStrFromCombo( WdeInfoWindow, IDB_INFO_IDSTR ); if( str == NULL ) { WRMemFree( c_is.c.text ); c_is.c.text = NULL; return; } WRStripSymbol( str ); if( str[0] == '\0' ) { WRMemFree( str ); WRMemFree( c_is.c.text ); c_is.c.text = NULL; return; } ord = (uint_16)strtoul( str, &cp, 0 ); str_is_ordinal = (*cp == '\0'); c_is.symbol = NULL; if( str_is_ordinal ) { c_is.c.id = ord; WRMemFree( str ); } else { if( !WdeIsValidSymbol( str ) ) { WRMemFree( str ); WRMemFree( c_is.c.text ); c_is.c.text = NULL; return; } strupr( str ); c_is.symbol = str; } Forward( c_is.obj, MODIFY_INFO, &c_is, NULL ); if( c_is.symbol ) { WdeAddUniqueStringToCombo( WdeInfoWindow, IDB_INFO_IDSTR, c_is.symbol ); value = WdeLookupName( c_is.res_info->hash_table, c_is.symbol, &found ); if( found ) { WdeSetEditWithSINT32( (int_32)value, 10, WdeInfoWindow, IDB_INFO_IDNUM ); } } else if( str_is_ordinal ) { WdeSetEditWithSINT32( (int_32)ord, 10, WdeInfoWindow, IDB_INFO_IDNUM ); } else { WdeSetEditWithStr( "", WdeInfoWindow, IDB_INFO_IDNUM ); } *is = c_is; }