diff --git a/src/drivers/sdl/gui.cpp b/src/drivers/sdl/gui.cpp index 6faaf3ae..1433e017 100644 --- a/src/drivers/sdl/gui.cpp +++ b/src/drivers/sdl/gui.cpp @@ -10,9 +10,9 @@ #include "sdl.h" #include "gui.h" -//#define WIDTH 600 -//#define HEIGHT 600 - +#ifdef _S9XLUA_H +#include "../../fceulua.h" +#endif extern Config *g_config; @@ -71,8 +71,26 @@ void showAbout () } - - +#ifdef _S9XLUA_H +void loadLua () +{ + GtkWidget* fileChooser; + + fileChooser = gtk_file_chooser_dialog_new ("Open LUA Script", GTK_WINDOW(MainWindow), + GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); + + if (gtk_dialog_run (GTK_DIALOG (fileChooser)) ==GTK_RESPONSE_ACCEPT) + { + char* filename; + + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fileChooser)); + FCEU_LoadLuaCode(filename); + g_free(filename); + } + gtk_widget_destroy (fileChooser); +} +#endif void loadGame () { @@ -114,6 +132,9 @@ static GtkItemFactoryEntry menu_items[] = { { "/File/_Close ROM", "C", closeGame, 0, "", GTK_STOCK_CLOSE }, // { "/File/Save _As", NULL, NULL, 0, "" }, { "/File/sep1", NULL, NULL, 0, "" }, +#ifdef _S9XLUA_H + { "/File/Load _Lua Script", NULL, loadLua, 0, ""}, +#endif { "/File/_Quit", "Q", quit, 0, "", GTK_STOCK_QUIT }, { "/_Options", NULL, NULL, 0, "" }, { "/Options/tear", NULL, NULL, 0, "" }, diff --git a/src/drivers/sdl/input.cpp b/src/drivers/sdl/input.cpp index b21e730e..05f4f41b 100644 --- a/src/drivers/sdl/input.cpp +++ b/src/drivers/sdl/input.cpp @@ -151,7 +151,9 @@ static int g_fkbEnabled = 0; // key definitions int cheatMenuKey; +#ifdef _S9XLUA_H int loadLuaKey; +#endif int renderBgKey; int saveStateKey; int loadStateKey; diff --git a/src/fceulua.h b/src/fceulua.h index e95e9442..c23660d1 100644 --- a/src/fceulua.h +++ b/src/fceulua.h @@ -1,4 +1,6 @@ #ifdef _S9XLUA_H +#ifndef _FCEULUA_H +#define _FCEULUA_H enum LuaCallID { @@ -84,3 +86,4 @@ char *FCEU_GetFreezeFilename(int slot); #endif +#endif