void liferea_htmlview_prepare_context_menu (LifereaHtmlView *htmlview, GtkMenu *menu, const gchar *linkUri, const gchar *imageUri) { GList *item, *items; gboolean link = (linkUri != NULL); gboolean image = (imageUri != NULL); /* first drop all menu items that are provided by the browser widget (necessary for WebKit) */ item = items = gtk_container_get_children (GTK_CONTAINER (menu)); while (item) { gtk_widget_destroy (GTK_WIDGET (item->data)); item = g_list_next (item); } g_list_free (items); /* do not expose internal links */ if (linkUri && liferea_htmlview_is_special_url (linkUri) && !g_str_has_prefix (linkUri, "javascript:") && !g_str_has_prefix (linkUri, "data:")) link = FALSE; /* and now add all we want to see */ if (link) { gchar *path; menu_add_option (menu, _("Open Link In _Tab"), NULL, G_CALLBACK (on_popup_open_link_in_tab_activate), (gpointer)linkUri); menu_add_option (menu, _("_Open Link In Browser"), NULL, G_CALLBACK (on_popup_launch_link_activate), (gpointer)linkUri); menu_add_option (menu, _("_Open Link In External Browser"), NULL, G_CALLBACK (on_popup_launch_link_external_activate), (gpointer)linkUri); menu_add_separator (menu); path = g_strdup_printf (_("_Bookmark Link at %s"), social_get_bookmark_site ()); menu_add_option (menu, path, NULL, on_popup_social_bm_link_activate, (gpointer)linkUri); g_free (path); menu_add_option (menu, _("_Copy Link Location"), "gtk-copy", G_CALLBACK (on_popup_copy_url_activate), (gpointer)linkUri); } if (image) menu_add_option (menu, _("_Copy Image Location"), "gtk-copy", G_CALLBACK (on_popup_copy_url_activate), (gpointer)imageUri); if (link) menu_add_option (menu, _("S_ave Link As"), "gtk-save", G_CALLBACK (on_popup_save_url_activate), (gpointer)linkUri); if (image) menu_add_option (menu, _("S_ave Image As"), "gtk-save", G_CALLBACK (on_popup_save_url_activate), (gpointer)imageUri); if (link) { menu_add_separator (menu); menu_add_option (menu, _("_Subscribe..."), "gtk-add", G_CALLBACK (on_popup_subscribe_url_activate), (gpointer)linkUri); } if(!link && !image) { GtkWidget *item; item = menu_add_option (menu, NULL, GTK_STOCK_COPY, G_CALLBACK (on_popup_copy_activate), htmlview); if (!(RENDERER (htmlview)->hasSelection) (htmlview->priv->renderWidget)) gtk_widget_set_sensitive (item, FALSE); menu_add_separator (menu); menu_add_option (menu, _("_Increase Text Size"), "gtk-zoom-in", G_CALLBACK (on_popup_zoomin_activate), htmlview); menu_add_option (menu, _("_Decrease Text Size"), "gtk-zoom-out", G_CALLBACK (on_popup_zoomout_activate), htmlview); } }
void enkf_tui_ranking_menu(void * arg) { enkf_main_type * enkf_main = enkf_main_safe_cast( arg ); { menu_type * menu = menu_alloc("Ranking of results" , "Back" , "bB"); menu_item_type * obs_item; { arg_pack_type * arg_pack = arg_pack_alloc(); arg_pack_append_ptr( arg_pack , enkf_main ); menu_add_item(menu , "Create/update misfit table" , "cC" , enkf_tui_ranking_make_misfit_ensemble , arg_pack , arg_pack_free__); menu_add_separator( menu ); obs_item = menu_add_item(menu , "New observation based ranking" , "nN" , enkf_tui_ranking_create_obs , enkf_main , NULL); arg_pack_append_ptr( arg_pack , obs_item ); } menu_add_item(menu , "New data based ranking (Sort: increasing)" , "iI" , enkf_tui_ranking_create_data_increasing , enkf_main , NULL); menu_add_item(menu , "New data based ranking (Sort: decreasing)" , "dD" , enkf_tui_ranking_create_data_decreasing , enkf_main , NULL); menu_add_item(menu , "Show ranking" , "sS" , enkf_tui_ranking_display , enkf_main , NULL); { enkf_fs_type * fs = enkf_main_get_fs( enkf_main ); misfit_ensemble_type * misfit_ensemble = enkf_fs_get_misfit_ensemble( fs ); if (!misfit_ensemble_initialized( misfit_ensemble )) menu_item_disable( obs_item ); } menu_add_item(menu , "Help" , "hH" , enkf_tui_help_menu_rank , enkf_main , NULL); menu_run(menu); menu_free(menu); } }
void enkf_tui_analysis_menu(void * arg) { enkf_main_type * enkf_main = enkf_main_safe_cast( arg ); menu_type * menu = menu_alloc( "Analysis menu" , "Back" , "bB"); arg_pack_type * arg_pack = arg_pack_alloc(); arg_pack_append_ptr( arg_pack , enkf_main ); arg_pack_append_ptr( arg_pack , menu ); { enkf_tui_analysis_update_title(enkf_main, menu); if (enkf_main_have_obs(enkf_main)) { menu_add_item(menu, "Global scaling of uncertainty", "gG", enkf_tui_analysis_scale_observation_std__, enkf_main, NULL); menu_add_separator(menu); } menu_add_item(menu, "Select analysis module", "sS", enkf_tui_analysis_select_module__, arg_pack, NULL); menu_add_item(menu, "List available modules", "lL", enkf_tui_analysis_list_modules__, enkf_main, NULL); menu_add_item(menu, "Modify analysis module parameters", "mM", enkf_tui_analysis_update_module__, enkf_main, NULL); menu_add_item(menu, "Reload current module (external only)", "rR", enkf_tui_analysis_reload_module__, enkf_main, NULL); } menu_run(menu); menu_free(menu); arg_pack_free(arg_pack); }
void enkf_tui_export_menu(void * arg) { enkf_main_type * enkf_main = enkf_main_safe_cast(arg); menu_type * menu = menu_alloc("Export data to other formats" , "Back" , "bB"); menu_add_item(menu , "Export scalar value to CSV file" , "xX" , enkf_tui_export_scalar2csv , enkf_main , NULL); menu_add_separator(menu); menu_add_item(menu , "Export fields to RMS Roff format" , "rR" , enkf_tui_export_roff , enkf_main , NULL); menu_add_item(menu , "Export fields to ECLIPSE grdecl format" , "gG" , enkf_tui_export_grdecl , enkf_main , NULL); menu_add_item(menu , "Export fields to ECLIPSE restart format (active cells)" , "aA" , enkf_tui_export_restart_active , enkf_main , NULL); menu_add_item(menu , "Export fields to ECLIPSE restart format (all cells)" , "lL" , enkf_tui_export_restart_all , enkf_main , NULL); menu_add_separator(menu); menu_add_item(menu , "Export P( a =< x < b )" , "sS" , enkf_tui_export_fieldP , enkf_main , NULL); menu_add_separator(menu); menu_add_item(menu , "Export GEN_DATA/GEN_PARAM to file" , "dD" , enkf_tui_export_gen_data , enkf_main , NULL); menu_add_separator( menu ); menu_add_item(menu , "Help" , "hH" , enkf_tui_help_menu_export , enkf_main , NULL ); menu_run(menu); menu_free(menu); }
static gboolean desk_menu_update(ObMenuFrame *frame, gpointer data) { ObMenu *menu = frame->menu; DesktopData *d = data; GList *it; gboolean empty = TRUE; gboolean onlyiconic = TRUE; menu_clear_entries(menu); for (it = focus_order; it; it = g_list_next(it)) { ObClient *c = it->data; if (focus_valid_target(c, d->desktop, TRUE, TRUE, FALSE, TRUE, FALSE, FALSE, FALSE)) { ObMenuEntry *e; empty = FALSE; if (c->iconic) { gchar *title = g_strdup_printf("(%s)", c->icon_title); e = menu_add_normal(menu, d->desktop, title, NULL, FALSE); g_free(title); } else { onlyiconic = FALSE; e = menu_add_normal(menu, d->desktop, c->title, NULL, FALSE); } if (config_menu_show_icons) { e->data.normal.icon = client_icon(c); RrImageRef(e->data.normal.icon); e->data.normal.icon_alpha = c->iconic ? OB_ICONIC_ALPHA : 0xff; } e->data.normal.data = c; } } if (empty || onlyiconic) { ObMenuEntry *e; /* no entries or only iconified windows, so add a * way to go to this desktop without uniconifying a window */ if (!empty) menu_add_separator(menu, SEPARATOR, NULL); e = menu_add_normal(menu, d->desktop, _("Go there..."), NULL, TRUE); if (d->desktop == screen_desktop) e->data.normal.enabled = FALSE; } return TRUE; /* always show */ }
static void parse_menu_separator(xmlNodePtr node, gpointer data) { ObMenuParseState *state = data; if (state->parent) { gchar *label; if (!obt_xml_attr_string(node, "label", &label)) label = NULL; menu_add_separator(state->parent, -1, label); g_free(label); } }
void enkf_tui_fs_menu(void * arg) { enkf_main_type * enkf_main = enkf_main_safe_cast( arg ); const char * menu_title = util_alloc_sprintf("Manage cases - current: %s", enkf_main_get_current_fs( enkf_main )); menu_type * menu = menu_alloc(menu_title , "Back" , "bB"); menu_add_item(menu , "List available cases" , "lL" , enkf_tui_fs_ls_case , enkf_main , NULL); { arg_pack_type * arg_pack = arg_pack_alloc(); arg_pack_append_ptr(arg_pack , enkf_main); arg_pack_append_ptr(arg_pack , menu); menu_add_item(menu , "Create and select new case" , "cC" , enkf_tui_fs_create_case, arg_pack , arg_pack_free__); } { arg_pack_type * arg_pack = arg_pack_alloc(); arg_pack_append_ptr(arg_pack , enkf_main); arg_pack_append_ptr(arg_pack , menu); menu_add_item(menu , "Select case" , "sS" , enkf_tui_fs_select_case, arg_pack , arg_pack_free__); } menu_add_separator(menu); menu_add_item(menu, "Initialize case from scratch" , "iI" , enkf_tui_init_menu , enkf_main , NULL); menu_add_item(menu, "Initialize case from existing case" , "aA" , enkf_tui_fs_initialize_case_from_copy , enkf_main , NULL); menu_add_item(menu, "Initialize case FOR PREDICTIONS from existing case", "pP" , enkf_tui_fs_initialize_case_for_predictions , enkf_main , NULL); menu_add_separator(menu); /* Are these two in use??? */ menu_add_item(menu, "Copy full ensemble to another case", "eE", enkf_tui_fs_copy_ensemble, enkf_main, NULL); menu_add_item(menu, "Copy ensemble of parameters to another case", "oO", enkf_tui_fs_copy_ensemble_of_parameters, enkf_main, NULL); menu_add_item(menu , "Help" , "hH" , enkf_tui_help_menu_cases , enkf_main , NULL); menu_run(menu); menu_free(menu); }
void enkf_tui_simple_menu(void * arg) { enkf_main_type * enkf_main = enkf_main_safe_cast(arg); menu_type * menu = menu_alloc("Simple menu" , "Quit" , "qQ"); menu_add_item(menu , "Sensitivity run: No data conditioning" , "sS" , enkf_tui_run_exp , enkf_main , NULL); const model_config_type * model_config = enkf_main_get_model_config( enkf_main ); menu_item_type * ES_item = menu_add_item(menu , "Assimilation run: Smoother update" , "aA" , enkf_tui_run_smoother , enkf_main , NULL); menu_item_type * it_ES_item = menu_add_item(menu , "Assimilation run: Iterated smoother [RML-EnKF]" , "iI" , enkf_tui_run_iterated_ES , enkf_main , NULL); if (!model_config_has_history( model_config )) { menu_item_disable( it_ES_item ); menu_item_disable( ES_item ); } menu_add_separator( menu ); menu_add_item(menu , "Help" , "hH" , enkf_tui_help_menu_simple , enkf_main , NULL); menu_add_item(menu , "Advanced menu" , "dD" , enkf_tui_main_menu , enkf_main , NULL); menu_run(menu); menu_free(menu); }
static gboolean self_update(ObMenuFrame *frame, gpointer data) { ObMenu *menu = frame->menu; guint i; menu_clear_entries(menu); while (desktop_menus) { menu_free(desktop_menus->data); desktop_menus = g_slist_delete_link(desktop_menus, desktop_menus); } for (i = 0; i < screen_num_desktops; ++i) { ObMenu *submenu; gchar *name = g_strdup_printf("%s-%u", MENU_NAME, i); DesktopData *ddata = g_slice_new(DesktopData); ddata->desktop = i; submenu = menu_new(name, screen_desktop_names[i], FALSE, ddata); menu_set_update_func(submenu, desk_menu_update); menu_set_execute_func(submenu, desk_menu_execute); menu_set_destroy_func(submenu, desk_menu_destroy); menu_add_submenu(menu, i, name); g_free(name); desktop_menus = g_slist_append(desktop_menus, submenu); } if (config_menu_manage_desktops) { menu_add_separator(menu, SEPARATOR, NULL); menu_add_normal(menu, ADD_DESKTOP, _("_Add new desktop"), NULL, TRUE); menu_add_normal(menu, REMOVE_DESKTOP, _("_Remove last desktop"), NULL, TRUE); } return TRUE; /* always show */ }
static GtkWidget *create_menubar(GFunc *quit_proc) { GtkWidget *menubar; GtkWidget *menu,*menu_item; GtkWidget *menu_entry_play, *menu_entry_pause, *menu_entry_conn, *menu_entry_disconn; /* GtkActionGroup *group; GtkUIManager *ui_manager; */ menubar = gtk_menu_bar_new(); /* action group whatever * group = gtk_action_group_new("MainActionGroup"); gtk_action_group_add_actions(group,entries,NUM_ENTRIES,NULL); * UI Manager * ui_manager = gtk_ui_manager_new(); gtk_ui_manager_insert_action_group(ui_manager, group, 0); * adjust path !!! * gtk_ui_manager_add_ui_from_file(ui_manager, "menu.ui", NULL); menubar = gtk_ui_manager_get_widget(ui_manager, "/MenuBar"); */ /* item: Playlist */ menu_item = gtk_menu_item_new_with_mnemonic ("_Playlist"); gtk_container_add(GTK_CONTAINER(menubar), menu_item); /* create menubox for the item */ menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), menu); /* action: add url */ menu_add_entry(GTK_CONTAINER(menu), "_Add Media Resource Locator", G_CALLBACK(gui_add_mrl_win), NULL); /* action: delete */ menu_add_entry(GTK_CONTAINER(menu), "_Delete Songs", G_CALLBACK(pl_del_songs), NULL); /* action: get current song lyrics */ // menu_add_entry(GTK_CONTAINER(menu), "_Get lyrics", G_CALLBACK(pl_get_current_song_lyrics), NULL); /* menu_entry = gtk_menu_item_new_with_mnemonic("Media _Browser"); gtk_container_add(GTK_CONTAINER(menu), menu_entry); g_signal_connect(G_OBJECT(menu_entry), "activate", G_CALLBACK(media_browser_window_show), NULL); g_signal_connect(G_OBJECT(menu_entry), "activate", G_CALLBACK(media_database_read), NULL); */ /* action: separator */ menu_add_separator(GTK_CONTAINER(menu)); /* action: reload playlist */ menu_add_entry(GTK_CONTAINER(menu), "_Reload playlist", G_CALLBACK(playlist_update_tree_cb), NULL); /* action reload media browser */ menu_add_entry(GTK_CONTAINER(menu), "Reload _Media Browser", G_CALLBACK(mb_reread_cb), NULL); /* action: separator */ menu_add_separator(GTK_CONTAINER(menu)); /* action: properties dialog */ menu_add_entry(GTK_CONTAINER(menu), "_Properties", G_CALLBACK(mpd_new_properties_window_cb), (gpointer)MpdWin.win); /* action: quit */ #ifdef CLOSE menu_add_entry(GTK_CONTAINER(menu), "_Close", G_CALLBACK(quit_proc), MpdWin.win); #else menu_add_entry(GTK_CONTAINER(menu), "_Quit", G_CALLBACK(quit_proc), MpdWin.win); #endif /* item: MPD */ menu_item = gtk_menu_item_new_with_mnemonic ("_MPD"); gtk_container_add(GTK_CONTAINER(menubar), menu_item); /* create menubox for the item */ menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), menu); /* action: connect/disconnect */ menu_entry_disconn = menu_add_entry_stock_icon(GTK_CONTAINER(menu), "_Disconnect", GTK_STOCK_DISCONNECT, G_CALLBACK(mpd_disconnect_cb), NULL); menu_entry_conn = menu_add_entry_stock_icon(GTK_CONTAINER(menu), "_Connect", GTK_STOCK_CONNECT, G_CALLBACK(mpd_connect_cb), NULL); /* separator */ menu_add_separator(GTK_CONTAINER(menu)); /* action: Previous */ menu_add_entry_stock_icon(GTK_CONTAINER(menu), "P_revious", GTK_STOCK_MEDIA_PREVIOUS, G_CALLBACK(action), ACTION_TYPE_TO_GPOINTER(ACTION_PREVIOUS)); /* action: Play */ menu_entry_play = menu_add_entry_stock_icon(GTK_CONTAINER(menu), "_Play", GTK_STOCK_MEDIA_PLAY, G_CALLBACK(action), ACTION_TYPE_TO_GPOINTER(ACTION_PLAY_PAUSE)); /* action: Pause */ menu_entry_pause = menu_add_entry_stock_icon(GTK_CONTAINER(menu), "_Pause", GTK_STOCK_MEDIA_PAUSE, G_CALLBACK(action), ACTION_TYPE_TO_GPOINTER(ACTION_PLAY_PAUSE)); /* action: Stop */ menu_add_entry_stock_icon(GTK_CONTAINER(menu), "_Stop", GTK_STOCK_MEDIA_STOP, G_CALLBACK(action), ACTION_TYPE_TO_GPOINTER(ACTION_STOP)); /* action: Next */ menu_add_entry_stock_icon(GTK_CONTAINER(menu), "_Next", GTK_STOCK_MEDIA_NEXT, G_CALLBACK(action), ACTION_TYPE_TO_GPOINTER(ACTION_NEXT)); /* action: separator */ menu_add_separator(GTK_CONTAINER(menu)); /* action: Update DB */ menu_add_entry(GTK_CONTAINER(menu), "_Update DB", G_CALLBACK(action), ACTION_TYPE_TO_GPOINTER(ACTION_UPDATE_DB)); /* action: Shuffle Playlist */ menu_add_entry(GTK_CONTAINER(menu), "R_andom", G_CALLBACK(action), ACTION_TYPE_TO_GPOINTER(ACTION_RANDOM)); /* action: Repeat */ menu_add_entry(GTK_CONTAINER(menu), "R_epeat", G_CALLBACK(action), ACTION_TYPE_TO_GPOINTER(ACTION_REPEAT)); /* action: Xfade */ menu_add_entry(GTK_CONTAINER(menu), "_Xfade", G_CALLBACK(action), ACTION_TYPE_TO_GPOINTER(ACTION_XFADE)); /* item: Help */ menu_item = gtk_menu_item_new_with_mnemonic ("_Help"); gtk_container_add(GTK_CONTAINER(menubar), menu_item); /* create menubox for the item */ menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), menu); /* action: log window */ // menu_add_entry(GTK_CONTAINER(menu), "_Log window", G_CALLBACK(open_log_window), NULL); /* action: separator */ menu_add_separator(GTK_CONTAINER(menu)); /* action: About */ menu_add_entry(GTK_CONTAINER(menu), "_About", G_CALLBACK(open_about_dialog), NULL); gtk_widget_show_all(menubar); menu_entries = NULL; menu_entries = g_list_append(menu_entries, menu_entry_play); menu_entries = g_list_append(menu_entries, menu_entry_pause); menu_entries = g_list_append(menu_entries, menu_entry_conn); menu_entries = g_list_append(menu_entries, menu_entry_disconn); return menubar; }
static gboolean self_update(ObMenuFrame *frame, gpointer data) { ObMenu *menu = frame->menu; ObMenuEntry *e; GList *it; guint desktop; menu_clear_entries(menu); for (desktop = 0; desktop < screen_num_desktops; desktop++) { gboolean empty = TRUE; gboolean onlyiconic = TRUE; menu_add_separator(menu, SEPARATOR, screen_desktop_names[desktop]); for (it = client_list; it; it = g_list_next(it)) { ObClient *c = it->data; if (focus_valid_target(c, desktop, TRUE, TRUE, FALSE, TRUE, FALSE, FALSE, FALSE)) { empty = FALSE; if (c->iconic) { gchar *title = g_strdup_printf("(%s)", c->icon_title); e = menu_add_normal(menu, desktop, title, NULL, FALSE); g_free(title); } else { onlyiconic = FALSE; e = menu_add_normal(menu, desktop, c->title, NULL, FALSE); e->data.normal.indent = get_order(c, desktop); } if (config_menu_show_icons) { e->data.normal.icon = client_icon(c); RrImageRef(e->data.normal.icon); e->data.normal.icon_alpha = c->iconic ? OB_ICONIC_ALPHA : 0xff; } e->data.normal.data = c; } } if (empty || onlyiconic) { /* no entries or only iconified windows, so add a * way to go to this desktop without uniconifying a window */ if (!empty) menu_add_separator(menu, SEPARATOR, NULL); e = menu_add_normal(menu, desktop, _("Go there..."), NULL, TRUE); if (desktop == screen_desktop) e->data.normal.enabled = FALSE; } } if (config_menu_manage_desktops) { menu_add_separator(menu, SEPARATOR, _("Manage desktops")); menu_add_normal(menu, ADD_DESKTOP, _("_Add new desktop"), NULL, TRUE); menu_add_normal(menu, REMOVE_DESKTOP, _("_Remove last desktop"), NULL, TRUE); } return TRUE; /* always show the menu */ }
void enkf_tui_run_menu(void * arg) { enkf_main_type * enkf_main = enkf_main_safe_cast( arg ); model_config_type * model_config = enkf_main_get_model_config( enkf_main ); path_fmt_type * runpath_fmt = model_config_get_runpath_fmt( model_config ); menu_type * menu; { char * title = util_alloc_sprintf("Run menu [case:%s Runpath:%s]" , enkf_main_get_current_fs( enkf_main ) , path_fmt_get_fmt ( runpath_fmt )); menu = menu_alloc(title , "Back" , "bB"); free(title); } menu_add_item(menu , "Ensemble run: history" , "xX" , enkf_tui_run_exp , enkf_main , NULL); menu_add_separator( menu ); { const ecl_config_type * ecl_config = enkf_main_get_ecl_config( enkf_main ); const model_config_type * model_config = enkf_main_get_model_config( enkf_main ); const analysis_config_type * analysis_config = enkf_main_get_analysis_config(enkf_main); menu_item_type * enkf_item = menu_add_item(menu , "Start EnKF run from beginning" , "sS" , enkf_tui_run_start , enkf_main , NULL); menu_item_type * restart_enkf_item = menu_add_item(menu , "Restart EnKF run from arbitrary state" , "rR" , enkf_tui_run_restart__ , enkf_main , NULL); menu_item_type * ES_item = menu_add_item(menu , "Integrated smoother update" , "iI" , enkf_tui_run_smoother , enkf_main , NULL); menu_item_type * it_ES_item = menu_add_item(menu , "Iterated smoother [RML-EnKF]" , "tT" , enkf_tui_run_iterated_ES , enkf_main , NULL); menu_item_type * one_more_item = menu_add_item(menu , "One more iteration (disabled)" , "mM" , enkf_tui_run_one_more_iteration , enkf_main , NULL); if (!ecl_config_has_schedule( ecl_config )) { menu_item_disable( enkf_item ); menu_item_disable( restart_enkf_item ); } if (!ecl_config_has_init_section( ecl_config )) menu_item_disable( enkf_item ); menu_item_disable( one_more_item ); if (!analysis_config_get_module_option(analysis_config , ANALYSIS_ITERABLE)) { menu_item_disable( it_ES_item ); menu_item_disable( one_more_item ); } else { menu_item_disable( enkf_item ); menu_item_disable( restart_enkf_item ); menu_item_disable( ES_item ); } if (!model_config_has_history( model_config )) { menu_item_disable( it_ES_item ); menu_item_disable( ES_item ); menu_item_disable( one_more_item ); } } menu_add_separator(menu); menu_add_item(menu , "Create runpath directories - NO simulation" , "cC" , enkf_tui_run_create_runpath__ , enkf_main , NULL ); menu_add_item(menu , "Load results manually" , "lL" , enkf_tui_run_manual_load__ , enkf_main , NULL); menu_add_separator(menu); { menu_item_type * analysis_item = menu_add_item(menu , "Analysis menu" , "aA" , enkf_tui_analysis_menu , enkf_main , NULL); if (!enkf_main_have_obs( enkf_main )) menu_item_disable( analysis_item ); } /* Option to set runpath runtime - currently dismantled. menu_add_separator(menu); { model_config_type * model_config = enkf_main_get_model_config( enkf_main ); path_fmt_type * runpath_fmt = model_config_get_runpath_fmt( model_config ); arg_pack_type * arg_pack = arg_pack_alloc(); char * runpath_label = util_alloc_sprintf("Set new value for RUNPATH:%s" , path_fmt_get_fmt ( runpath_fmt )); arg_pack_append_ptr(arg_pack , model_config); arg_pack_append_ptr(arg_pack , menu_add_item(menu , runpath_label , "dD" , enkf_tui_run_set_runpath , arg_pack , arg_pack_free__)); free(runpath_label); } */ menu_add_item(menu , "Help" , "hH" , enkf_tui_help_menu_run , enkf_main , NULL); menu_run(menu); menu_free(menu); }