void WHandleClear( WAccelEditInfo *einfo ) { if( einfo->tbl != NULL && einfo->tbl->num != 0 ) { if( WQueryClearRes( einfo ) ) { WResetEditWindow( einfo ); SendDlgItemMessage( einfo->edit_dlg, IDM_ACCEDLIST, LB_RESETCONTENT, 0, 0 ); WFreeAccelTableEntries( einfo->tbl->first_entry ); einfo->tbl->first_entry = NULL; einfo->tbl->num = 0; einfo->current_entry = NULL; einfo->current_pos = -1; einfo->getting_key = FALSE; if( einfo->info->stand_alone ) { if( einfo->file_name != NULL ) { WRMemFree( einfo->file_name ); einfo->file_name = NULL; WSetEditTitle( einfo ); } if( einfo->info->symbol_table != NULL ) { WRFreeHashTable( einfo->info->symbol_table ); einfo->info->symbol_table = WRInitHashTable(); } } einfo->info->modified = true; SetFocus( einfo->edit_dlg ); WSetStatusByID( einfo->wsb, W_ACCELCLEARMSG, -1 ); } } }
void WHandleClear( WMenuEditInfo *einfo ) { if( einfo->menu != NULL && einfo->menu->first_entry != NULL ) { if( WQueryClearRes( einfo ) ) { WSetEditWindowText( einfo->edit_dlg, 0, NULL ); WSetEditWindowID( einfo->edit_dlg, 0, TRUE, NULL ); WResetEditWindowFlags( einfo->edit_dlg ); SendDlgItemMessage( einfo->edit_dlg, IDM_MENUEDLIST, LB_RESETCONTENT, 0, 0 ); WFreeMenuEntries( einfo->menu->first_entry ); einfo->menu->first_entry = NULL; einfo->current_entry = NULL; einfo->current_pos = -1; einfo->first_preview_id = FIRST_PREVIEW_ID; WResetPrevWindowMenu( einfo ); if( einfo->info->stand_alone ) { if( einfo->file_name != NULL ) { WMemFree( einfo->file_name ); einfo->file_name = NULL; WSetEditTitle( einfo ); } if( einfo->info->symbol_table != NULL ) { WRFreeHashTable( einfo->info->symbol_table ); einfo->info->symbol_table = WRInitHashTable(); } } einfo->info->modified = TRUE; SetFocus( einfo->edit_dlg ); WSetStatusByID( einfo->wsb, W_MENUCLEARMSG, -1 ); } } }
void WHandleClear( WStringEditInfo *einfo ) { if( einfo->tbl != NULL && einfo->tbl->first_block != NULL ) { if( WQueryClearRes( einfo ) ) { WResetEditWindow( einfo ); SendDlgItemMessage( einfo->edit_dlg, IDM_STREDLIST, LB_RESETCONTENT, 0, 0 ); WFreeStringTableBlocks( einfo->tbl->first_block ); einfo->tbl->first_block = NULL; einfo->current_block = NULL; einfo->current_string = 0; einfo->current_pos = -1; if( einfo->info->stand_alone ) { if( einfo->file_name != NULL ) { WRMemFree( einfo->file_name ); einfo->file_name = NULL; WSetEditTitle( einfo ); } if( einfo->info->symbol_table != NULL ) { WRFreeHashTable( einfo->info->symbol_table ); einfo->info->symbol_table = WRInitHashTable(); } } einfo->info->modified = true; SetFocus( einfo->edit_dlg ); WSetStatusByID( einfo->wsb, W_STRINGCLEARMSG, -1 ); } } }
WdeResInfo *WdeCreateNewResource( char *title ) { WdeResInfo *res_info; bool ok; ok = ((res_info = WdeAllocResInfo()) != NULL); if( ok ) { ok = ((res_info->info = WRAllocWRInfo()) != NULL); } if( ok ) { res_info->hash_table = WRInitHashTable(); ok = (res_info->hash_table != NULL); } if( ok ) { if( title != NULL ) { res_info->info->save_name = WdeStrDup( title ); ok = (res_info->info->save_name != NULL); } } if( ok ) { #ifdef __NT__ res_info->is32bit = TRUE; #else res_info->is32bit = FALSE; #endif ok = WdeCreateResourceWindow( res_info, 0, title ); } if( ok ) { ListAddElt( &WdeResList, (void *)res_info ); if( !WdeIsDDE() || title == NULL ) { ok = (WdeCreateNewDialog( NULL, res_info->is32bit ) != NULL); } } if( ok ) { WdeCheckBaseScrollbars( FALSE ); } if( res_info ) { if( ok ) { WdeSetResModified( res_info, FALSE ); } else { WdeRemoveResource( res_info ); res_info = NULL; } } return( res_info ); }
WREResInfo *WRECreateNewResource( char *filename ) { WREResInfo *res_info; Bool ok; ok = ((res_info = WREAllocResInfo()) != NULL); if( ok ) { res_info->info = WRAllocWRInfo(); ok = (res_info->info != NULL); } if( ok ) { res_info->symbol_table = WRInitHashTable(); ok = (res_info->symbol_table != NULL); } if( ok && filename != NULL ) { res_info->info->save_name = WREStrDup( filename ); ok = (res_info->info->save_name != NULL); } if( ok ) { #ifdef __NT__ res_info->is32bit = TRUE; #else res_info->is32bit = FALSE; #endif if( res_info->is32bit ) { res_info->info->internal_type = WR_WINNTW_RES; } else { res_info->info->internal_type = WR_WIN16W_RES; } WREFindAndLoadSymbols( res_info ); ok = WRECreateResourceWindow( res_info ); } if( res_info != NULL ) { if( ok ) { ListAddElt( &WREResList, (void *)res_info ); } else { WREFreeResInfo( res_info ); res_info = NULL; } } return( res_info ); }
WREResInfo *WRELoadResource( const char *file_name ) { WRFileType file_type; WREResInfo *res_info; Bool ok; WRESetWaitCursor( TRUE ); ok = ((res_info = WREAllocResInfo()) != NULL); if( ok ) { file_type = WRIdentifyFile( file_name ); ok = (file_type != WR_INVALID_FILE); } if( ok ) { res_info->info = WRLoadResource( file_name, file_type ); ok = (res_info->info != NULL); } if( ok ) { file_type = res_info->info->file_type; if( res_info->info->internal_type != WR_DONT_KNOW ) { file_type = res_info->info->internal_type; } res_info->is32bit = WRIs32Bit( file_type ); } if( ok ) { res_info->symbol_table = WRInitHashTable(); ok = (res_info->symbol_table != NULL); } if( !ok ) { if( res_info != NULL ) { WREFreeResInfo( res_info ); res_info = NULL; } } WRESetWaitCursor( FALSE ); return( res_info ); }
static char *WRELoadSymbols( WRHashTable **table, char *file_name, bool prompt ) { char *name; int c; unsigned flags; char *inc_path; WREGetFileStruct gf; unsigned pp_count; unsigned busy_count; char busy_str[2]; bool ret; bool ok; name = NULL; ok = (table != NULL); if( ok ) { WRESetStatusText( NULL, "", FALSE ); WRESetStatusByID( WRE_LOADINGSYMBOLS, -1 ); } if( ok ) { if( file_name == NULL || prompt ) { gf.file_name = file_name; gf.title = WRESymLoadTitle; gf.filter = WRESymSaveFilter; gf.save_ext = FALSE; name = WREGetOpenFileName( &gf ); } else { name = WREStrDup( file_name ); } ok = (name != NULL); } WRESetWaitCursor( TRUE ); if( ok ) { flags = PPFLAG_IGNORE_INCLUDE | PPFLAG_EMIT_LINE; inc_path = NULL; ret = setjmp( SymEnv ); if( ret ) { PP_Fini(); WREDisplayErrorMsg( WRE_SYMOUTOFMEM ); ok = false; } } if( ok ) { ok = !PP_Init( name, flags, inc_path ); if( !ok ) { WREDisplayErrorMsg( WRE_NOLOADHEADERFILE ); } } if( ok ) { pp_count = 0; busy_count = 0; busy_str[1] = '\0'; do { pp_count++; c = PP_Char(); if( pp_count == MAX_PP_CHARS ) { busy_count++; busy_str[0] = WREBusyChars[busy_count % 4]; WRESetStatusText( NULL, busy_str, TRUE ); pp_count = 0; } } while( c != EOF ); if( *table == NULL ) { *table = WRInitHashTable(); } WREAddSymbols( *table ); WRMakeHashTableClean( *table ); PP_Fini(); WRESetStatusText( NULL, " ", TRUE ); } if( !ok ) { if( name != NULL ) { WRMemFree( name ); name = NULL; } } WRESetWaitCursor( FALSE ); WRESetStatusReadyText(); return( name ); }
bool WdeOpenResource( char *fn ) { char *name; WdeResInfo *res_info; WdeGetFileStruct gf; bool ok, got_name; WdeSetWaitCursor( TRUE ); res_info = NULL; name = NULL; got_name = FALSE; if( fn != NULL ) { if( WdeFileExists( fn ) ) { name = WdeStrDup( fn ); gf.fn_offset = WRFindFnOffset( name ); } else { return( FALSE ); } } else { gf.file_name = NULL; gf.title = WdeResOpenTitle; gf.filter = WdeResOpenFilter; ok = ((name = WdeGetOpenFileName( &gf )) != NULL); } if( ok ) { got_name = TRUE; ok = ((res_info = WdeLoadResource( name )) != NULL); } if( ok ) { res_info->hash_table = WRInitHashTable(); ok = (res_info->hash_table != NULL); } if( ok ) { if( res_info->info->internal_type != WR_DONT_KNOW ) { res_info->is32bit = WRIs32Bit( res_info->info->internal_type ); } else { res_info->is32bit = WRIs32Bit( res_info->info->file_type ); } ok = WdeAddDlgItems( res_info ); } if( ok ) { WdeFindAndLoadSymbols( res_info ); ok = WdeCreateResourceWindow( res_info, gf.fn_offset, NULL ); } if( ok ) { if( WdeResInfoHasDialogs( res_info ) ) { WdeSelectDialog( res_info ); } else { WdeDisplayErrorMsg( WDE_PRJHASNODIALOGS ); } ListAddElt( &WdeResList, (void *)res_info ); WdeSetResModified( res_info, FALSE ); WdeCheckBaseScrollbars( FALSE ); } if( !ok ) { if( res_info != NULL ) { WdeFreeResInfo( res_info ); res_info = NULL; } if( got_name ) { WdeDisplayErrorMsg( WDE_RESOURCESNOTLOADED ); } } if( name != NULL ) { WRMemFree( name ); } WdeSetWaitCursor( FALSE ); return( ok ); }
char *WLoadSymbols( WRHashTable **table, char *file_name, HWND parent, bool prompt ) { char *name; int c; unsigned flags; char *inc_path; WGetFileStruct gf; bool ret; bool ok; name = NULL; ok = (table != NULL); if( ok ) { if( file_name == NULL || prompt ) { gf.file_name = file_name; gf.title = AllocRCString( W_LOADSYMTITLE ); gf.filter = AllocRCString( W_SYMFILTER ); WMassageFilter( gf.filter ); name = WGetOpenFileName( parent, &gf ); if( gf.title != NULL ) { FreeRCString( gf.title ); } if( gf.filter != NULL ) { FreeRCString( gf.filter ); } } else { name = WStrDup( file_name ); } ok = (name != NULL); } WSetWaitCursor( parent, TRUE ); if( ok ) { flags = PPFLAG_IGNORE_INCLUDE | PPFLAG_EMIT_LINE; inc_path = NULL; ret = setjmp( SymEnv ) != 0; if( ret ) { PP_Fini(); WDisplayErrorMsg( W_SYMOUTOFMEM ); ok = false; } } if( ok ) { ok = !PP_Init( name, flags, inc_path ); if( !ok ) { WDisplayErrorMsg( W_NOOPENSYMFILE ); } } if( ok ) { do { c = PP_Char(); } while( c != EOF ); if( *table == NULL ) { *table = WRInitHashTable(); } addSymbols( *table ); WRMakeHashTableClean( *table ); PP_Fini(); } if( !ok ) { if( name != NULL ) { WRMemFree( name ); name = NULL; } } WSetWaitCursor( parent, FALSE ); return( name ); }