Updated options sub menu.

This commit is contained in:
Matthew Budd 2020-05-10 15:32:32 -04:00
parent 89895fdd18
commit ee35a5bab4
1 changed files with 117 additions and 11 deletions

View File

@ -56,7 +56,7 @@ GtkWidget* buttonMappings[10];
GtkWidget* Menubar; GtkWidget* Menubar;
GtkRadioAction* stateSlot = NULL; GtkRadioAction* stateSlot = NULL;
bool gtkIsStarted = false; bool gtkIsStarted = false;
bool menuTogglingEnabled; bool menuTogglingEnabled = false;
//----------------------------------------- //-----------------------------------------
// Cheat static variables // Cheat static variables
@ -414,7 +414,7 @@ void clearPalette(GtkWidget* w, gpointer p)
gtk_entry_set_text(GTK_ENTRY(p), ""); gtk_entry_set_text(GTK_ENTRY(p), "");
} }
void openPaletteConfig() void openPaletteConfig(void)
{ {
GtkWidget* win; GtkWidget* win;
GtkWidget* vbox; GtkWidget* vbox;
@ -539,7 +539,7 @@ void netResponse(GtkWidget* w, gint response_id, gpointer p)
gtk_widget_destroy(w); gtk_widget_destroy(w);
} }
void openNetworkConfig() void openNetworkConfig(void)
{ {
GtkWidget* win; GtkWidget* win;
GtkWidget* box; GtkWidget* box;
@ -772,7 +772,7 @@ void updateGamepadConfig(GtkWidget* w, gpointer p)
} }
// creates and opens the gamepad config window (requires GTK 2.24) // creates and opens the gamepad config window (requires GTK 2.24)
void openGamepadConfig() void openGamepadConfig(void)
{ {
// GTK 2.24 required for this dialog // GTK 2.24 required for this dialog
if (checkGTKVersion(2, 24) == false) if (checkGTKVersion(2, 24) == false)
@ -1055,7 +1055,7 @@ void setDoubleBuffering(GtkWidget* w, gpointer p)
} }
#endif #endif
void openVideoConfig() void openVideoConfig(void)
{ {
GtkWidget* win; GtkWidget* win;
GtkWidget* vbox; GtkWidget* vbox;
@ -1265,7 +1265,7 @@ int mixerChanged(GtkWidget* w, gpointer p)
return 0; return 0;
} }
void openSoundConfig() void openSoundConfig(void)
{ {
GtkWidget* win; GtkWidget* win;
GtkWidget* main_hbox; GtkWidget* main_hbox;
@ -1499,24 +1499,26 @@ void hardReset ()
} }
} }
void enableFullscreen () void enableFullscreen (void)
{ {
if(isloaded) if(isloaded)
ToggleFS(); ToggleFS();
} }
void toggleMenuToggling (GtkToggleAction *action) void toggleMenuToggling(GtkCheckMenuItem *item, gpointer user_data)
{ {
bool toggleMenu = gtk_toggle_action_get_active(action); bool toggleMenu = gtk_check_menu_item_get_active(item);
//printf("ToggleMenu: %i\n", (int)toggleMenu);
g_config->setOption("SDL.ToggleMenu", (int)toggleMenu); g_config->setOption("SDL.ToggleMenu", (int)toggleMenu);
menuTogglingEnabled = toggleMenu; menuTogglingEnabled = toggleMenu;
} }
void toggleAutoResume (GtkToggleAction *action) void toggleAutoResume(GtkCheckMenuItem *item, gpointer user_data)
{ {
bool autoResume = gtk_toggle_action_get_active(action); bool autoResume = gtk_check_menu_item_get_active(item);
//printf("AutoResume: %i\n", (int)autoResume);
g_config->setOption("SDL.AutoResume", (int)autoResume); g_config->setOption("SDL.AutoResume", (int)autoResume);
AutoResumePlay = autoResume; AutoResumePlay = autoResume;
} }
@ -4184,6 +4186,7 @@ static GtkWidget* CreateMenubar2( GtkWidget* window)
gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);
//---------------------------------------
// Create File Menu // Create File Menu
item = gtk_menu_item_new_with_label("File"); item = gtk_menu_item_new_with_label("File");
@ -4315,6 +4318,9 @@ static GtkWidget* CreateMenubar2( GtkWidget* window)
g_signal_connect( item, "activate", G_CALLBACK(FCEUI_SaveSnapshot), NULL); g_signal_connect( item, "activate", G_CALLBACK(FCEUI_SaveSnapshot), NULL);
gtk_widget_add_accelerator( item, "activate", accel_group,
GDK_KEY_F12, (GdkModifierType)0, GTK_ACCEL_VISIBLE);
//-File --> Quit ------------------ //-File --> Quit ------------------
item = gtk_menu_item_new_with_label("Quit"); item = gtk_menu_item_new_with_label("Quit");
@ -4323,6 +4329,106 @@ static GtkWidget* CreateMenubar2( GtkWidget* window)
gtk_widget_add_accelerator( item, "activate", accel_group, gtk_widget_add_accelerator( item, "activate", accel_group,
GDK_KEY_q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); GDK_KEY_q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
gtk_menu_shell_append( GTK_MENU_SHELL(menu), item );
//---------------------------------------
// Create Options Menu
item = gtk_menu_item_new_with_label("Options");
gtk_menu_shell_append( GTK_MENU_SHELL(menubar), item );
menu = gtk_menu_new();
gtk_menu_item_set_submenu( GTK_MENU_ITEM(item), menu );
// Load Options Menu Items
//-Options --> Gamepad Config ---------------------
item = gtk_menu_item_new_with_label("Gamepad Config");
g_signal_connect( item, "activate", G_CALLBACK(openGamepadConfig), NULL);
//gtk_widget_add_accelerator( item, "activate", accel_group,
// GDK_KEY_o, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
gtk_menu_shell_append( GTK_MENU_SHELL(menu), item );
//-Options --> Hotkey Config ---------------------
item = gtk_menu_item_new_with_label("Hotkey Config");
g_signal_connect( item, "activate", G_CALLBACK(openHotkeyConfig), NULL);
//gtk_widget_add_accelerator( item, "activate", accel_group,
// GDK_KEY_o, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
gtk_menu_shell_append( GTK_MENU_SHELL(menu), item );
//-Options --> Sound Config ---------------------
item = gtk_menu_item_new_with_label("Sound Config");
g_signal_connect( item, "activate", G_CALLBACK(openSoundConfig), NULL);
//gtk_widget_add_accelerator( item, "activate", accel_group,
// GDK_KEY_o, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
gtk_menu_shell_append( GTK_MENU_SHELL(menu), item );
//-Options --> Video Config ---------------------
item = gtk_menu_item_new_with_label("Video Config");
g_signal_connect( item, "activate", G_CALLBACK(openVideoConfig), NULL);
//gtk_widget_add_accelerator( item, "activate", accel_group,
// GDK_KEY_o, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
gtk_menu_shell_append( GTK_MENU_SHELL(menu), item );
//-Options --> Palette Config ---------------------
item = gtk_menu_item_new_with_label("Palette Config");
g_signal_connect( item, "activate", G_CALLBACK(openPaletteConfig), NULL);
//gtk_widget_add_accelerator( item, "activate", accel_group,
// GDK_KEY_o, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
gtk_menu_shell_append( GTK_MENU_SHELL(menu), item );
//-Options --> Network Config ---------------------
item = gtk_menu_item_new_with_label("Network Config");
g_signal_connect( item, "activate", G_CALLBACK(openNetworkConfig), NULL);
gtk_menu_shell_append( GTK_MENU_SHELL(menu), item );
//-Options --> Auto-Resume Play ---------------------
item = gtk_check_menu_item_new_with_label("Auto-Resume Play");
gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(item), AutoResumePlay);
g_signal_connect( item, "toggled", G_CALLBACK(toggleAutoResume), NULL);
gtk_menu_shell_append( GTK_MENU_SHELL(menu), item );
//-Options --> Toggle Menubar ---------------------
item = gtk_check_menu_item_new_with_label("Toggle Menubar (alt)");
//gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(item), FALSE);
g_signal_connect( item, "toggled", G_CALLBACK(toggleMenuToggling), NULL);
gtk_menu_shell_append( GTK_MENU_SHELL(menu), item );
// Add Separator
item = gtk_separator_menu_item_new();
gtk_menu_shell_append( GTK_MENU_SHELL(menu), item );
//-Options --> Fullscreen ---------------------
item = gtk_menu_item_new_with_label("Fullscreen");
g_signal_connect( item, "activate", G_CALLBACK(enableFullscreen), NULL);
gtk_widget_add_accelerator( item, "activate", accel_group,
GDK_KEY_Return, GDK_MOD1_MASK, GTK_ACCEL_VISIBLE);
gtk_menu_shell_append( GTK_MENU_SHELL(menu), item ); gtk_menu_shell_append( GTK_MENU_SHELL(menu), item );
// Finally, return the actual menu bar created // Finally, return the actual menu bar created