/** * create_gens_window_menubar(): Create the menu bar. */ void gens_window_create_menubar(void) { if (gens_menu_bar != NULL) { // Menu bar already exists. Delete it. gtk_widget_destroy(gens_menu_bar); gens_menu_clear(); } if (!vdraw_get_fullscreen() && Settings.showMenuBar) { // Create a menu bar. gens_menu_bar = gtk_menu_bar_new(); gtk_widget_show(gens_menu_bar); gtk_box_pack_start(GTK_BOX(gens_vbox_main), gens_menu_bar, FALSE, FALSE, 0); } else { // Create a popup menu. gens_menu_bar = gtk_menu_new(); } // Connect the menu "deactivate" signal. // For whatever reason, GtkMenuShell has a "deactivate" signal, // but not an "activate" signal. g_signal_connect((gpointer)gens_menu_bar, "deactivate", G_CALLBACK(gens_menu_deactivate), NULL); // Accelerator Group. static GtkAccelGroup *gens_menu_accel_group = NULL; if (gens_menu_accel_group != NULL) { // Delete the accelerator group. gtk_window_remove_accel_group(GTK_WINDOW(gens_window), gens_menu_accel_group); g_object_unref(gens_menu_accel_group); } // Create an accelerator group. gens_menu_accel_group = gtk_accel_group_new(); // Parse the menus. gens_menu_parse(&gmiMain[0], GTK_MENU_SHELL(gens_menu_bar), gens_menu_accel_group); // Add the accel group. gtk_window_add_accel_group(GTK_WINDOW(gens_window), gens_menu_accel_group); // Synchronize the menus. Sync_Gens_Window(); #ifdef GDK_WINDOWING_QUARTZ // Set the menu bar as the MacOS X menu bar. if (!vdraw_get_fullscreen() && Settings.showMenuBar) ige_mac_menu_set_menu_bar(GTK_MENU_SHELL(gens_menu_bar)); #endif }
/** * create_gens_window_menubar(): Create the menu bar. */ void gens_window_create_menubar(void) { if (gens_menu_bar != NULL) { // Menu bar already exists. Delete it. gtk_widget_destroy(gens_menu_bar); gens_menu_clear(); } if (!vdraw_get_fullscreen() && Settings.showMenuBar) { // Create a menu bar. gens_menu_bar = gtk_menu_bar_new(); gtk_widget_show(gens_menu_bar); gtk_box_pack_start(GTK_BOX(gens_vbox_main), gens_menu_bar, FALSE, FALSE, 0); } else { // Create a popup menu. gens_menu_bar = gtk_menu_new(); } // Accelerator Group. static GtkAccelGroup *gens_menu_accel_group = NULL; if (gens_menu_accel_group != NULL) { // Delete the accelerator group. gtk_window_remove_accel_group(GTK_WINDOW(gens_window), gens_menu_accel_group); g_object_unref(gens_menu_accel_group); } // Create an accelerator group. gens_menu_accel_group = gtk_accel_group_new(); // Parse the menus. gens_menu_parse(&gmiMain[0], gens_menu_bar, gens_menu_accel_group); // Add the accel group. gtk_window_add_accel_group(GTK_WINDOW(gens_window), gens_menu_accel_group); // Synchronize the menus. Sync_Gens_Window(); #ifdef GDK_WINDOWING_QUARTZ // Set the menu bar as the MacOS X menu bar. if (!vdraw_get_fullscreen() && Settings.showMenuBar) ige_mac_menu_set_menu_bar(GTK_MENU_SHELL(gens_menu_bar)); #endif }
/** * gens_window_create_menubar(): Create the menu bar. */ void gens_window_create_menubar(void) { if (MainMenu) { // Menu bar already exists. Delete it. DestroyMenu(MainMenu); gens_menu_clear(); } DestroyMenu(MainMenu); // Create the main menu. if (!vdraw_get_fullscreen() && Settings.showMenuBar) { // Create a menu bar. MainMenu = CreateMenu(); } else { // Create a popup menu. MainMenu = CreatePopupMenu(); } // Parse the menus. gens_menu_parse(&gmiMain[0], MainMenu); // Synchronize the menus. Sync_Gens_Window(); // Set the menu bar. if (!vdraw_get_fullscreen() && Settings.showMenuBar) SetMenu(gens_window, MainMenu); else SetMenu(gens_window, NULL); if (!vdraw_get_fullscreen()) { // Resize the window after the menu bar is rebuilt. if (vdraw_scale <= 0) return; const int w = 320 * vdraw_scale; const int h = 240 * vdraw_scale; gsft_win32_set_actual_window_size(gens_window, w, h); } }