static MenuData* create_options_menu_controls(MenuData *parent) { MenuData *m = create_options_menu_base("Controls"); add_menu_entry(m, "Move up", do_nothing, bind_keybinding(CONFIG_KEY_UP) ); add_menu_entry(m, "Move down", do_nothing, bind_keybinding(CONFIG_KEY_DOWN) ); add_menu_entry(m, "Move left", do_nothing, bind_keybinding(CONFIG_KEY_LEFT) ); add_menu_entry(m, "Move right", do_nothing, bind_keybinding(CONFIG_KEY_RIGHT) ); add_menu_separator(m); add_menu_entry(m, "Shoot", do_nothing, bind_keybinding(CONFIG_KEY_SHOT) ); add_menu_entry(m, "Focus", do_nothing, bind_keybinding(CONFIG_KEY_FOCUS) ); add_menu_entry(m, "Use Spell Card", do_nothing, bind_keybinding(CONFIG_KEY_BOMB) ); add_menu_entry(m, "Power Surge / Discharge", do_nothing, bind_keybinding(CONFIG_KEY_SPECIAL) ); add_menu_separator(m); add_menu_entry(m, "Toggle fullscreen", do_nothing, bind_keybinding(CONFIG_KEY_FULLSCREEN) ); add_menu_entry(m, "Take a screenshot", do_nothing, bind_keybinding(CONFIG_KEY_SCREENSHOT) ); add_menu_entry(m, "Skip dialog", do_nothing, bind_keybinding(CONFIG_KEY_SKIP) ); add_menu_separator(m); add_menu_entry(m, "Toggle audio", do_nothing, bind_keybinding(CONFIG_KEY_TOGGLE_AUDIO) ); add_menu_separator(m); add_menu_entry(m, "Stop the game immediately", do_nothing, bind_keybinding(CONFIG_KEY_STOP) ); add_menu_entry(m, "Restart the game immediately", do_nothing, bind_keybinding(CONFIG_KEY_RESTART) ); #ifdef DEBUG add_menu_separator(m); add_menu_entry(m, "Toggle God mode", do_nothing, bind_keybinding(CONFIG_KEY_IDDQD) ); add_menu_entry(m, "Skip stage", do_nothing, bind_keybinding(CONFIG_KEY_HAHAIWIN) ); add_menu_entry(m, "Power up", do_nothing, bind_keybinding(CONFIG_KEY_POWERUP) ); add_menu_entry(m, "Power down", do_nothing, bind_keybinding(CONFIG_KEY_POWERDOWN) ); add_menu_entry(m, "Disable background rendering (HoM effect)", do_nothing, bind_keybinding(CONFIG_KEY_NOBACKGROUND) ); add_menu_entry(m, "Toggle collision areas overlay", do_nothing, bind_keybinding(CONFIG_KEY_HITAREAS) ); #endif add_menu_separator(m); add_menu_entry(m, "Back", menu_action_close, NULL); return m; }
MenuData* create_options_menu(void) { MenuData *m = create_options_menu_base("Options"); OptionBinding *b; add_menu_entry(m, "Player name", do_nothing, b = bind_stroption(CONFIG_PLAYERNAME) ); add_menu_separator(m); add_menu_entry(m, "Save replays", do_nothing, b = bind_option(CONFIG_SAVE_RPY, bind_common_onoffplus_get, bind_common_onoffplus_set) ); bind_addvalue(b, "always"); bind_addvalue(b, "never"); bind_addvalue(b, "ask"); add_menu_entry(m, "Auto-restart in Spell Practice", do_nothing, b = bind_option(CONFIG_SPELLSTAGE_AUTORESTART, bind_common_onoff_get, bind_common_onoff_set) ); bind_onoff(b); add_menu_entry(m, "Power in Spell and Stage Practice", do_nothing, b = bind_option(CONFIG_PRACTICE_POWER, bind_power_get, bind_power_set) ); bind_addvalue(b, "0.0"); bind_addvalue(b, "1.0"); bind_addvalue(b, "2.0"); bind_addvalue(b, "3.0"); bind_addvalue(b, "4.0"); add_menu_entry(m, "Shoot by default", do_nothing, b = bind_option(CONFIG_SHOT_INVERTED, bind_common_onoff_get, bind_common_onoff_set) ); bind_onoff(b); add_menu_entry(m, "Boss healthbar style", do_nothing, b = bind_option(CONFIG_HEALTHBAR_STYLE, bind_common_int_get, bind_common_int_set) ); bind_addvalue(b, "classic"); bind_addvalue(b, "modern"); add_menu_entry(m, "Floating score text visibility", do_nothing, b = bind_scale(CONFIG_SCORETEXT_ALPHA, 0, 1, 0.05) ); add_menu_separator(m); add_menu_entry(m, "SFX Volume", do_nothing, b = bind_scale(CONFIG_SFX_VOLUME, 0, 1, 0.05) ); b->dependence = audio_output_works; add_menu_entry(m, "BGM Volume", do_nothing, b = bind_scale(CONFIG_BGM_VOLUME, 0, 1, 0.05) ); b->dependence = audio_output_works; add_menu_entry(m, "Mute audio", do_nothing, b = bind_option(CONFIG_MUTE_AUDIO, bind_common_onoff_get, bind_common_onoff_set) ); bind_onoff(b); add_menu_separator(m); add_menu_entry(m, "Video options…", enter_options_menu_video, NULL); add_menu_entry(m, "Customize controls…", enter_options_menu_controls, NULL); add_menu_entry(m, "Gamepad & Joystick options…", enter_options_menu_gamepad, NULL); add_menu_separator(m); add_menu_entry(m, "Back", menu_action_close, NULL); return m; }
void panel_menu_items_append_lock_logout (GtkWidget *menu) { gboolean separator_inserted; GList *children; GList *last; GtkWidget *item; const char *translate; char *label; char *tooltip; separator_inserted = FALSE; children = gtk_container_get_children (GTK_CONTAINER (menu)); last = g_list_last (children); if (last != NULL) { separator_inserted = GTK_IS_SEPARATOR (GTK_WIDGET (last->data)); } g_list_free (children); if (panel_lock_screen_action_available("lock")) { item = panel_menu_items_create_action_item(PANEL_ACTION_LOCK); if (item != NULL) { if (!separator_inserted) { add_menu_separator(menu); separator_inserted = TRUE; } gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); } } if (panel_lockdown_get_disable_log_out ()) return; /* Below this, we only have log out/shutdown items */ /* Translators: translate "1" (msgctxt: "panel:showusername") to anything * but "1" if "Log Out %s" doesn't make any sense in your * language (where %s is a username). */ translate = C_("panel:showusername", "1"); if (strcmp (translate, "1") == 0) { const char *user_name; user_name = g_get_real_name (); if (!user_name || !user_name [0]) user_name = g_get_user_name (); /* keep those strings in sync with the ones in * panel-action-button.c */ /* Translators: this string is used ONLY if you translated * "1" (msgctxt: "panel:showusername") to "1" */ label = g_strdup_printf (_("Log Out %s..."), g_get_user_name ()); /* Translators: this string is used ONLY if you translated * "1" (msgctxt: "panel:showusername") to "1" */ tooltip = g_strdup_printf (_("Log out %s of this session to " "log in as a different user"), user_name); } else { label = NULL; tooltip = NULL; } item = panel_menu_items_create_action_item_full (PANEL_ACTION_LOGOUT, label, tooltip); g_free (label); g_free (tooltip); if (item != NULL) { if (!separator_inserted) { add_menu_separator (menu); separator_inserted = TRUE; } gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); } item = panel_menu_items_create_action_item (PANEL_ACTION_SHUTDOWN); if (item != NULL && !g_getenv("LTSP_CLIENT")) { if (!separator_inserted) add_menu_separator (menu); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); } }
static MenuData* create_options_menu_video(MenuData *parent) { MenuData *m = create_options_menu_base("Video Options"); OptionBinding *b; add_menu_entry(m, "Fullscreen", do_nothing, b = bind_option(CONFIG_FULLSCREEN, bind_common_onoff_get, bind_common_onoff_set) ); bind_onoff(b); b->dependence = bind_fullscreen_dependence; add_menu_entry(m, "Display", do_nothing, b = bind_video_display(CONFIG_VID_DISPLAY) ); add_menu_entry(m, "Window size", do_nothing, b = bind_resolution() ); b->setter = bind_resolution_set; b->dependence = bind_resolution_dependence; add_menu_entry(m, "Resizable window", do_nothing, b = bind_option(CONFIG_VID_RESIZABLE, bind_common_onoff_get, bind_common_onoff_set) ); bind_onoff(b); b->dependence = bind_resizable_dependence; add_menu_separator(m); add_menu_entry(m, "Pause the game when not focused", do_nothing, b = bind_option(CONFIG_FOCUS_LOSS_PAUSE, bind_common_onoff_get, bind_common_onoff_set) ); bind_onoff(b); add_menu_entry(m, "Vertical synchronization", do_nothing, b = bind_option(CONFIG_VSYNC, bind_common_onoffplus_get, bind_common_onoffplus_set) ); bind_addvalue(b, "on"); bind_addvalue(b, "off"); if(video_query_capability(VIDEO_CAP_VSYNC_ADAPTIVE) != VIDEO_NEVER_AVAILABLE) { bind_addvalue(b, "adaptive"); } add_menu_entry(m, "Skip frames", do_nothing, b = bind_option(CONFIG_VID_FRAMESKIP, bind_common_intplus1_get, bind_common_intplus1_set) ); bind_addvalue(b, "0"); bind_addvalue(b, "½"); bind_addvalue(b, "⅔"); add_menu_separator(m); add_menu_entry(m, "Overall rendering quality", do_nothing, b = bind_scale(CONFIG_FG_QUALITY, 0.1, 1.0, 0.05) ); add_menu_entry(m, "Draw background", do_nothing, b = bind_option(CONFIG_NO_STAGEBG, bind_common_onoff_inverted_get, bind_common_onoff_inverted_set) ); bind_onoff(b); add_menu_entry(m, "Background rendering quality", do_nothing, b = bind_scale(CONFIG_BG_QUALITY, 0.1, 1.0, 0.05) ); b->dependence = bind_bgquality_dependence; b->pad++; add_menu_separator(m); add_menu_entry(m, "Anti-aliasing", do_nothing, b = bind_option(CONFIG_FXAA, bind_common_int_get, bind_common_int_set) ); bind_addvalue(b, "none"); bind_addvalue(b, "fxaa"); add_menu_entry(m, "Particle effects", do_nothing, b = bind_option(CONFIG_PARTICLES, bind_common_int_get, bind_common_int_set) ); bind_addvalue(b, "minimal"); bind_addvalue(b, "full"); add_menu_entry(m, "Postprocessing effects", do_nothing, b = bind_option(CONFIG_POSTPROCESS, bind_common_int_get, bind_common_int_set) ); bind_addvalue(b, "minimal"); bind_addvalue(b, "fast"); bind_addvalue(b, "full"); add_menu_separator(m); add_menu_entry(m, "Back", menu_action_close, NULL); return m; }
static GtkWidget * panel_place_menu_item_create_menu (PanelPlaceMenuItem *place_item) { GtkWidget *places_menu; GtkWidget *item; char *gsettings_name = NULL; char *name; char *uri; GFile *file; places_menu = panel_create_menu (); file = g_file_new_for_path (g_get_home_dir ()); uri = g_file_get_uri (file); name = panel_util_get_label_for_uri (uri); g_object_unref (file); panel_menu_items_append_place_item (PANEL_ICON_HOME, NULL, name, _("Open your personal folder"), places_menu, G_CALLBACK (activate_home_uri), uri); g_free (name); g_free (uri); if (!place_item->priv->caja_prefs_settings || !g_settings_get_boolean (place_item->priv->caja_prefs_settings, CAJA_PREFS_DESKTOP_IS_HOME_DIR_KEY)) { file = g_file_new_for_path (g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP)); uri = g_file_get_uri (file); g_object_unref (file); panel_menu_items_append_place_item ( PANEL_ICON_DESKTOP, NULL, /* Translators: Desktop is used here as in * "Desktop Folder" (this is not the Desktop * environment). */ C_("Desktop Folder", "Desktop"), _("Open the contents of your desktop in a folder"), places_menu, G_CALLBACK (activate_desktop_uri), /* FIXME: if the dir changes, we'd need to update the drag data since the uri is not the same */ uri); g_free (uri); } panel_place_menu_item_append_gtk_bookmarks (places_menu, g_settings_get_uint (place_item->priv->menubar_settings, PANEL_MENU_BAR_MAX_ITEMS_OR_SUBMENU)); add_menu_separator (places_menu); if (place_item->priv->caja_desktop_settings != NULL) gsettings_name = g_settings_get_string (place_item->priv->caja_desktop_settings, CAJA_DESKTOP_COMPUTER_ICON_NAME_KEY); if (PANEL_GLIB_STR_EMPTY (gsettings_name)) gsettings_name = g_strdup (_("Computer")); panel_menu_items_append_place_item ( PANEL_ICON_COMPUTER, NULL, gsettings_name, _("Browse all local and remote disks and folders accessible from this computer"), places_menu, G_CALLBACK (activate_uri), "computer://"); if (gsettings_name) g_free (gsettings_name); panel_place_menu_item_append_local_gio (place_item, places_menu); add_menu_separator (places_menu); panel_menu_items_append_place_item ( PANEL_ICON_NETWORK, NULL, _("Network"), _("Browse bookmarked and local network locations"), places_menu, G_CALLBACK (activate_uri), "network://"); panel_place_menu_item_append_remote_gio (place_item, places_menu); if (panel_is_program_in_path ("caja-connect-server") || panel_is_program_in_path ("nautilus-connect-server") || panel_is_program_in_path ("nemo-connect-server")) { item = panel_menu_items_create_action_item (PANEL_ACTION_CONNECT_SERVER); if (item != NULL) gtk_menu_shell_append (GTK_MENU_SHELL (places_menu), item); } add_menu_separator (places_menu); if (panel_is_program_in_path ("mate-search-tool")) panel_menu_items_append_from_desktop (places_menu, "mate-search-tool.desktop", NULL, FALSE); else panel_menu_items_append_from_desktop (places_menu, "gnome-search-tool.desktop", NULL, FALSE); panel_recent_append_documents_menu (places_menu, place_item->priv->recent_manager); /* Fix any failures of compiz/other wm's to communicate with gtk for transparency */ GtkWidget *toplevel = gtk_widget_get_toplevel (places_menu); GdkScreen *screen = gtk_widget_get_screen(GTK_WIDGET(toplevel)); GdkVisual *visual = gdk_screen_get_rgba_visual(screen); gtk_widget_set_visual(GTK_WIDGET(toplevel), visual); return places_menu; }
void panel_menu_items_append_lock_logout (GtkWidget *menu) { GList *children; GList *last; GtkWidget *item; children = gtk_container_get_children (GTK_CONTAINER (menu)); last = g_list_last (children); if (last != NULL && GTK_IS_SEPARATOR (last->data)) item = GTK_WIDGET (last->data); else item = add_menu_separator (menu); g_list_free (children); panel_lockdown_on_notify (panel_lockdown_get (), NULL, G_OBJECT (item), panel_menu_items_lock_logout_separator_notified, item); panel_menu_items_lock_logout_separator_notified (panel_lockdown_get (), item); item = panel_menu_items_create_action_item_full (PANEL_ACTION_LOCK, NULL, NULL, TRUE); if (item != NULL) { gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); g_object_bind_property (panel_lockdown_get (), "disable-lock-screen", item, "visible", G_BINDING_SYNC_CREATE|G_BINDING_INVERT_BOOLEAN); } item = panel_menu_items_create_switch_user (FALSE); if (item != NULL) { gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); g_object_bind_property (panel_lockdown_get (), "disable-switch-user", item, "visible", G_BINDING_SYNC_CREATE|G_BINDING_INVERT_BOOLEAN); } item = panel_menu_items_create_action_item_full (PANEL_ACTION_LOGOUT, NULL, NULL, TRUE); if (item != NULL) { gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); g_object_bind_property (panel_lockdown_get (), "disable-log-out", item, "visible", G_BINDING_SYNC_CREATE|G_BINDING_INVERT_BOOLEAN); } /* FIXME: should be dynamic */ if (panel_session_manager_is_shutdown_available (panel_session_manager_get ())) { item = panel_menu_items_create_action_item_full (PANEL_ACTION_SHUTDOWN, NULL, NULL, TRUE); if (item != NULL) { GtkWidget *sep; sep = add_menu_separator (menu); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); g_object_bind_property (panel_lockdown_get (), "disable-log-out", sep, "visible", G_BINDING_SYNC_CREATE|G_BINDING_INVERT_BOOLEAN); g_object_bind_property (panel_lockdown_get (), "disable-log-out", item, "visible", G_BINDING_SYNC_CREATE|G_BINDING_INVERT_BOOLEAN); } } }
static GtkWidget * panel_place_menu_item_create_menu (PanelPlaceMenuItem *place_item) { GtkWidget *places_menu; GtkWidget *item; char *gconf_name; char *name; char *uri; GFile *file; places_menu = panel_create_menu (); file = g_file_new_for_path (g_get_home_dir ()); uri = g_file_get_uri (file); name = panel_util_get_label_for_uri (uri); g_object_unref (file); item = panel_menu_item_uri_new (uri, PANEL_ICON_HOME, NULL, name, _("Open your personal folder"), G_CALLBACK (activate_home_uri)); gtk_menu_shell_append (GTK_MENU_SHELL (places_menu), item); g_free (name); g_free (uri); if (!gconf_client_get_bool (panel_gconf_get_client (), DESKTOP_IS_HOME_DIR_KEY, NULL)) { file = g_file_new_for_path (g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP)); uri = g_file_get_uri (file); g_object_unref (file); item = panel_menu_item_uri_new ( /* FIXME: if the dir changes, we'd need to update the drag data since the uri is not the same */ uri, PANEL_ICON_DESKTOP, NULL, /* Translators: Desktop is used here as in * "Desktop Folder" (this is not the Desktop * environment). */ C_("Desktop Folder", "Desktop"), _("Open the contents of your desktop in a folder"), G_CALLBACK (activate_desktop_uri)); gtk_menu_shell_append (GTK_MENU_SHELL (places_menu), item); g_free (uri); } panel_place_menu_item_append_gtk_bookmarks (places_menu); add_menu_separator (places_menu); gconf_name = gconf_client_get_string (panel_gconf_get_client (), COMPUTER_NAME_KEY, NULL); if (gconf_name == NULL) { gconf_name = g_strdup (_("Computer")); } item = panel_menu_item_uri_new ("computer://", PANEL_ICON_COMPUTER, NULL, gconf_name, _("Browse all local and remote disks and folders accessible from this computer"), G_CALLBACK (activate_uri)); gtk_menu_shell_append (GTK_MENU_SHELL (places_menu), item); g_free (gconf_name); panel_place_menu_item_append_local_gio (place_item, places_menu); add_menu_separator (places_menu); item = panel_menu_item_uri_new ("network://", PANEL_ICON_NETWORK, NULL, _("Network"), _("Browse bookmarked and local network locations"), G_CALLBACK (activate_uri)); gtk_menu_shell_append (GTK_MENU_SHELL (places_menu), item); panel_place_menu_item_append_remote_gio (place_item, places_menu); if (panel_is_program_in_path ("nautilus-connect-server")) { item = panel_menu_items_create_action_item (PANEL_ACTION_CONNECT_SERVER); if (item != NULL) gtk_menu_shell_append (GTK_MENU_SHELL (places_menu), item); } add_menu_separator (places_menu); item = panel_menu_item_desktop_new ("gnome-search-tool.desktop", NULL, FALSE); if (item) gtk_menu_shell_append (GTK_MENU_SHELL (places_menu), item); panel_recent_append_documents_menu (places_menu, place_item->priv->recent_manager); return places_menu; }
static GtkWidget * populate_menu_from_directory (GtkWidget *menu, GMenuTreeDirectory *directory) { GList *children; gboolean add_separator; GMenuTreeIter *iter; GMenuTreeItemType next_type; children = gtk_container_get_children (GTK_CONTAINER (menu)); add_separator = (children != NULL); g_list_free (children); iter = gmenu_tree_directory_iter (directory); while ((next_type = gmenu_tree_iter_next (iter)) != GMENU_TREE_ITEM_INVALID) { gpointer item = NULL; if (add_separator || next_type == GMENU_TREE_ITEM_SEPARATOR) { add_menu_separator (menu); add_separator = FALSE; } switch (next_type) { case GMENU_TREE_ITEM_DIRECTORY: item = gmenu_tree_iter_get_directory (iter); create_submenu (menu, item, NULL); break; case GMENU_TREE_ITEM_ENTRY: item = gmenu_tree_iter_get_entry (iter); create_menuitem (menu, item, NULL); break; case GMENU_TREE_ITEM_SEPARATOR : /* already added */ break; case GMENU_TREE_ITEM_ALIAS: item = gmenu_tree_iter_get_alias (iter); create_menuitem_from_alias (menu, item); break; case GMENU_TREE_ITEM_HEADER: item = gmenu_tree_iter_get_header (iter); create_header (menu, item); break; default: break; } if (item) gmenu_tree_item_unref (item); } gmenu_tree_iter_unref (iter); return menu; }
void create_options_menu(MenuData *m) { OptionBinding *b; create_menu(m); m->type = MT_Transient; m->ondestroy = destroy_options_menu; m->context = NULL; #define bind_onoff(b) bind_addvalue(b, "on"); bind_addvalue(b, "off") add_menu_entry(m, "Player Name", do_nothing, NULL); b = bind_stroption(m, "playername", PLAYERNAME); add_menu_separator(m); allocate_binding(m); add_menu_entry(m, "Video Mode", do_nothing, NULL); b = bind_resolution(m); add_menu_entry(m, "Fullscreen", do_nothing, NULL); b = bind_option(m, "fullscreen", FULLSCREEN, bind_common_onoffget, bind_fullscreen_set); bind_onoff(b); add_menu_entry(m, "Audio", do_nothing, NULL); b = bind_option(m, "disable_audio", NO_AUDIO, bind_common_onoffget_inverted, bind_noaudio_set); bind_onoff(b); add_menu_entry(m, "Shaders", do_nothing, NULL); b = bind_option(m, "disable_shader", NO_SHADER, bind_common_onoffget_inverted, bind_noshader_set); bind_onoff(b); add_menu_entry(m, "Stage Background", do_nothing, NULL); b = bind_option(m, "disable_stagebg", NO_STAGEBG, bind_common_intget, bind_common_intset); bind_addvalue(b, "on"); bind_addvalue(b, "off"); bind_addvalue(b, "auto"); add_menu_entry(m, "Minimum FPS", do_nothing, NULL); b = bind_option(m, "disable_stagebg_auto_fpslimit", NO_STAGEBG_FPSLIMIT, bind_common_intget, bind_common_intset); bind_setvaluerange(b, 20, 60); bind_setdependence(b, bind_stagebg_fpslimit_dependence); add_menu_entry(m, "Save Replays", do_nothing, NULL); b = bind_option(m, "save_rpy", SAVE_RPY, bind_saverpy_get, bind_saverpy_set); bind_addvalue(b, "on"); bind_addvalue(b, "off"); bind_addvalue(b, "ask"); add_menu_separator(m); allocate_binding(m); add_menu_entry(m, "Move up", do_nothing, NULL); bind_keybinding(m, "key_up", KEY_UP); add_menu_entry(m, "Move down", do_nothing, NULL); bind_keybinding(m, "key_down", KEY_DOWN); add_menu_entry(m, "Move left", do_nothing, NULL); bind_keybinding(m, "key_left", KEY_LEFT); add_menu_entry(m, "Move right", do_nothing, NULL); bind_keybinding(m, "key_right", KEY_RIGHT); add_menu_separator(m); allocate_binding(m); add_menu_entry(m, "Fire", do_nothing, NULL); bind_keybinding(m, "key_shot", KEY_SHOT); add_menu_entry(m, "Focus", do_nothing, NULL); bind_keybinding(m, "key_focus", KEY_FOCUS); add_menu_entry(m, "Bomb", do_nothing, NULL); bind_keybinding(m, "key_bomb", KEY_BOMB); add_menu_separator(m); allocate_binding(m); add_menu_entry(m, "Toggle fullscreen", do_nothing, NULL); bind_keybinding(m, "key_fullscreen", KEY_FULLSCREEN); add_menu_entry(m, "Take a screenshot", do_nothing, NULL); bind_keybinding(m, "key_screenshot", KEY_SCREENSHOT); add_menu_entry(m, "Skip dialog", do_nothing, NULL); bind_keybinding(m, "key_skip", KEY_SKIP); add_menu_separator(m); allocate_binding(m); add_menu_entry(m, "Return to the main menu", backtomain, m); allocate_binding(m); }