MCPcopy Create free account
hub / github.com/TASEmulators/fceux / openCheatFile

Function openCheatFile

src/drivers/sdl/cheat.cpp:526–585  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

524}
525
526static void openCheatFile (GtkWidget * widget, cheat_win_t * cw)
527{
528 GtkWidget *fileChooser;
529 GtkFileFilter *filterCht;
530 GtkFileFilter *filterAll;
531
532 filterCht = gtk_file_filter_new ();
533 filterAll = gtk_file_filter_new ();
534
535 gtk_file_filter_add_pattern (filterCht, "*.cht");
536 gtk_file_filter_add_pattern (filterAll, "*");
537
538 gtk_file_filter_set_name (filterCht, "*.cht");
539 gtk_file_filter_set_name (filterAll, "All Files");
540
541 fileChooser =
542 gtk_file_chooser_dialog_new ("Open Cheat",
543 GTK_WINDOW (cw->win),
544 GTK_FILE_CHOOSER_ACTION_OPEN,
545 "_Cancel", GTK_RESPONSE_CANCEL,
546 "_Open", GTK_RESPONSE_ACCEPT,
547 NULL);
548 const char *last_dir;
549 g_config->getOption ("SDL.LastOpenFile", &last_dir);
550 gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (fileChooser),
551 last_dir);
552
553 gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (fileChooser), filterCht);
554 gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (fileChooser), filterAll);
555
556 if (gtk_dialog_run (GTK_DIALOG (fileChooser)) == GTK_RESPONSE_ACCEPT)
557 {
558 FILE *fp;
559 char *filename;
560
561 filename =
562 gtk_file_chooser_get_filename (GTK_FILE_CHOOSER
563 (fileChooser));
564 gtk_widget_destroy (fileChooser);
565
566 fp = fopen (filename, "r");
567
568 if (fp != NULL)
569 {
570 FCEU_LoadGameCheats (fp, 0);
571 fclose (fp);
572 }
573 //g_config->setOption("SDL.LastOpenFile", filename);
574 // Error dialog no longer required with GTK implementation of FCEUD_PrintError()
575
576 resizeGtkWindow ();
577 g_free (filename);
578 }
579 else
580 {
581 gtk_widget_destroy (fileChooser);
582 }
583

Callers

nothing calls this directly

Calls 4

FCEU_LoadGameCheatsFunction · 0.85
resizeGtkWindowFunction · 0.85
updateAllActvCheatListsFunction · 0.85
getOptionMethod · 0.80

Tested by

no test coverage detected