From 09818e412d190eb04bcfef7b6d83ebf3da08836b Mon Sep 17 00:00:00 2001 From: punkrockguy318 Date: Wed, 16 Mar 2011 04:59:58 +0000 Subject: [PATCH] gtk: added load game genie rom option todo: checkbox somewhere for gg gtk: cleaned some code --- src/drivers/sdl/gui.cpp | 72 ++++++++++++++++++++++++++++++++++------- 1 file changed, 61 insertions(+), 11 deletions(-) diff --git a/src/drivers/sdl/gui.cpp b/src/drivers/sdl/gui.cpp index 39902517..2fea599f 100644 --- a/src/drivers/sdl/gui.cpp +++ b/src/drivers/sdl/gui.cpp @@ -1311,6 +1311,64 @@ void loadFdsBios () } +void loadGameGenie () +{ + GtkWidget* fileChooser; + GtkFileFilter* filterGG; + GtkFileFilter* filterRom; + GtkFileFilter* filterNes; + GtkFileFilter* filterAll; + + + filterGG = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filterGG, "gg.rom"); + gtk_file_filter_set_name(filterGG, "gg.rom"); + + filterRom = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filterRom, "*.rom"); + gtk_file_filter_set_name(filterRom, "*.rom"); + + filterNes = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filterNes, "*.nes"); + gtk_file_filter_set_name(filterNes, "*.nes"); + + filterAll = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filterAll, "*"); + gtk_file_filter_set_name(filterAll, "All Files"); + + + fileChooser = gtk_file_chooser_dialog_new ("Load Game Genie ROM", GTK_WINDOW(MainWindow), + GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fileChooser), filterGG); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fileChooser), filterRom); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fileChooser), filterNes); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fileChooser), filterAll); + + if (gtk_dialog_run (GTK_DIALOG (fileChooser)) ==GTK_RESPONSE_ACCEPT) + { + char* filename; + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fileChooser)); + // copy file to proper place (~/.fceux/gg.rom) + std::ifstream f1 (filename,std::fstream::binary); + std::string fn_out = FCEU_MakeFName(FCEUMKF_GGROM, 0, ""); + std::ofstream f2 (fn_out.c_str(),std::fstream::trunc|std::fstream::binary); + gtk_widget_destroy (fileChooser); + GtkWidget* d; + d = gtk_message_dialog_new(GTK_WINDOW(MainWindow), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, + "Game Genie ROM loaded. Be sure to enable it in your configuration (~/.fceux/fceux.cfg)."); + gtk_dialog_run(GTK_DIALOG(d)); + gtk_widget_destroy(d); + + f2<"}, { "/Emulator/_FDS/_Eject Disk", NULL, FCEU_FDSInsert, 0, ""}, { "/Emulator/_FDS/Load _BIOS File", NULL, loadFdsBios, 0, ""}, + { "/Emulator/_Load Game Genie ROM", NULL, loadGameGenie, 0, ""}, { "/Emulator/_Insert coin", NULL, FCEUI_VSUniCoin, 0, ""}, //{ "/Emulator/GTKterm (DEV)", NULL, openGTKterm, 0, ""}, { "/_Movie", NULL, NULL, 0, "" }, @@ -1804,20 +1863,11 @@ static GtkWidget* CreateMenubar( GtkWidget* window) /* Finally, return the actual menu bar created by the item factory. */ return gtk_item_factory_get_widget (item_factory, "
"); } -//GtkTextBuffer* gtkConsoleBuf; -//GtkWidget* consoleOutput; -//GtkTextIter iter; -char* buf; -//GtkWidget* term; + void pushOutputToGTK(const char* str) { - - //printf(str); - //gtk_text_buffer_insert(GTK_TEXT_BUFFER(gtkConsoleBuf), &iter, str, -1); - //gtk_text_buffer_set_text(gtkConsoleBuf, str, -1); - - //vte_terminal_feed_child(VTE_TERMINAL(term), str, -1); + // we don't really do anything with the output right now return; }