示例#1
0
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;
}
示例#2
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);
    }
}
示例#3
0
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;
}