static UI_CALLBACK(save_callback) { String name; ui_popdown(cartridge_dialog); XtVaGetValues(file_name_field, XtNstring, &name, NULL); if (cartridge_save_image (name) < 0) ui_error(_("Cannot write cartridge image file\n`%s'\n"), name); }
static UI_MENU_CALLBACK(c64_cart_save_callback) { if (activated) { int cartid = vice_ptr_to_int(param); char *name = NULL; name = sdl_ui_file_selection_dialog("Choose cartridge file", FILEREQ_MODE_SAVE_FILE); if (name != NULL) { if (cartridge_save_image(cartid, name) < 0) { ui_error("Cannot save cartridge image."); } lib_free(name); } } return NULL; }
void ui_cartridge_save_dialog(int type) { gint res; char *name; if (cartridge_dialog) { gdk_window_show(gtk_widget_get_window(cartridge_dialog)); gdk_window_raise(gtk_widget_get_window(cartridge_dialog)); gtk_widget_show(cartridge_dialog); } else { uilib_file_filter_enum_t filter = UILIB_FILTER_ALL; cartridge_dialog = vice_file_entry(_("Save cartridge image"), NULL, NULL, &filter, 1, UI_FC_SAVE); g_signal_connect(G_OBJECT(cartridge_dialog), "destroy", G_CALLBACK(gtk_widget_destroyed), &cartridge_dialog); } ui_popup(cartridge_dialog, _("Save cartridge image"), FALSE); res = gtk_dialog_run(GTK_DIALOG(cartridge_dialog)); ui_popdown(cartridge_dialog); if (res != GTK_RESPONSE_ACCEPT) { return; } name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(cartridge_dialog)); if (!name) { ui_error(_("Invalid filename")); return; } if (cartridge_save_image (type, name) < 0) { ui_error(_("Cannot write cartridge image file\n`%s'\n"), name); } else { ui_message(_("Successfully wrote `%s'"), name); } lib_free(name); }