int widget_roms_finish( widget_finish_state finished ) { if( finished == WIDGET_FINISHED_OK ) { settings_copy( &settings_current, widget_settings ); } settings_free( widget_settings ); free( widget_settings ); return 0; }
SIGNAL_CALLBACK void on_execute_button_clicked (GtkWidget *button) { GtkTreeIter iter; gboolean valid; Settings * user_settings; GList * rows; /* gui should prevent this from happening */ if (processing) return; if (confirm_overwrite()) { keep_going = TRUE; user_settings = settings_get_from_gui(); settings_on_execute = settings_copy(user_settings); rows = NULL; valid = gtk_tree_model_get_iter_first( GTK_TREE_MODEL(list_store), &iter); if (valid) { hide_sections_for_execute(); } else { message_box(" No files to process (click Browse...) "); } while (valid && keep_going) { GtkTreeRowReference * ref; GtkTreePath * path; path = gtk_tree_model_get_path(GTK_TREE_MODEL(list_store), &iter); ref = gtk_tree_row_reference_new(GTK_TREE_MODEL(list_store), path); rows = g_list_append(rows, ref); valid = gtk_tree_model_iter_next( GTK_TREE_MODEL(list_store), &iter); } process_items_from_list(rows, TRUE); settings_delete(user_settings); } }
int widget_roms_draw( void *data ) { int i; char buffer[32]; char key[] = "\x0A "; if( data ) info = data; /* Get a copy of the current settings */ if( !info->initialised ) { widget_settings = malloc( sizeof( settings_info ) ); if( !widget_settings ) { ui_error( UI_ERROR_ERROR, "out of memory at %s:%d", __FILE__, __LINE__ ); return 1; } memset( widget_settings, 0, sizeof( settings_info ) ); settings_copy( widget_settings, &settings_current ); info->initialised = 1; } first_rom = info->start; rom_count = info->count; is_peripheral = info->is_peripheral; /* Blank the main display area */ widget_dialog_with_border( 1, 2, 30, rom_count + 2 ); widget_printstring( 10, 16, WIDGET_COLOUR_TITLE, info->title ); widget_display_lines( 2, rom_count + 2 ); for( i=0; i < info->count; i++ ) { snprintf( buffer, sizeof( buffer ), "ROM %d:", i ); key[1] = 'A' + i; widget_printstring_right( 24, i*8+24, WIDGET_COLOUR_FOREGROUND, key ); widget_printstring( 28, i*8+24, WIDGET_COLOUR_FOREGROUND, buffer ); print_rom( i ); } return 0; }