menu_t get_menu() { menu_t menu; menu[QUIT] = menu_item("quit", "quit grid client"); menu[APPLY_TASK] = menu_item("apply", "apply <file with grid task definition>"); menu[REMOVE_TASK] = menu_item("remove", "remove <taskname>"); menu[REFRESH_STATUS] = menu_item("refresh", "refresh <taskname> - asynchronous refreshing task status"); menu[GET_RESULT] = menu_item("result", "result <taskname> - download output files of <taskname> from node"); menu[STATUS] = menu_item("status", "status <taskname> - displays current <taskname> status. It's useful to refresh it sometimes"); menu[TASKS] = menu_item("tasks", "displays all known tasks"); return menu; }
AbstractLauncherIcon::MenuItemsVector TrashLauncherIcon::GetMenus() { MenuItemsVector result; /* Empty Trash */ glib::Object<DbusmenuMenuitem> menu_item(dbusmenu_menuitem_new()); dbusmenu_menuitem_property_set(menu_item, DBUSMENU_MENUITEM_PROP_LABEL, _("Empty Trash…")); dbusmenu_menuitem_property_set_bool(menu_item, DBUSMENU_MENUITEM_PROP_ENABLED, !empty_); dbusmenu_menuitem_property_set_bool(menu_item, DBUSMENU_MENUITEM_PROP_VISIBLE, true); empty_activated_signal_.Connect(menu_item, DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, [this] (DbusmenuMenuitem*, unsigned timestamp) { file_manager_->EmptyTrash(timestamp); }); result.push_back(menu_item); return result; }
struct menu * gui_gtk_menu_new(struct container *co, GtkWidget **widget) { struct menu *this=g_new0(struct menu, 1); this->gui=g_new0(struct menu_gui,1); this->gui->co=co; GtkWidget *menu,*item,*menu2,*item2,*menu3,*clock; menu=gtk_menu_bar_new(); item=gtk_menu_item_new_with_label("Goto"); gtk_menu_bar_append(GTK_MENU_BAR(menu), item); { menu2=gtk_menu_new(); item2=gtk_menu_item_new_with_label("Abensberg"); gtk_menu_append (GTK_MENU(menu2), item2); gtk_signal_connect_object(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (menu_goto_abensberg), this); item2=gtk_menu_item_new_with_label("Regensburg"); gtk_menu_append (GTK_MENU(menu2), item2); gtk_signal_connect_object(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (menu_goto_regensburg), this); item2=gtk_menu_item_new_with_label("Problem"); gtk_menu_append (GTK_MENU(menu2), item2); gtk_signal_connect_object(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (menu_goto_problem), this); } gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), menu2); item=gtk_menu_item_new_with_label("Window"); gtk_menu_bar_append(GTK_MENU_BAR(menu), item); { menu2=gtk_menu_new(); item2=gtk_menu_item_new_with_label("Clone"); gtk_menu_append (GTK_MENU(menu2), item2); gtk_signal_connect_object(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (menu_window_clone), this); item2=gtk_menu_item_new_with_label("Command"); gtk_menu_append (GTK_MENU(menu2), item2); gtk_signal_connect_object(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (menu_window_command), this); item2=gtk_menu_item_new_with_label("Visible Blocks"); gtk_menu_append (GTK_MENU(menu2), item2); gtk_signal_connect_object(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (menu_window_visible_blocks), co); item2=gtk_menu_item_new_with_label("Visible Towns"); gtk_menu_append (GTK_MENU(menu2), item2); gtk_signal_connect_object(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (menu_window_visible_towns), co); item2=gtk_menu_item_new_with_label("Visible Polys"); gtk_menu_append (GTK_MENU(menu2), item2); gtk_signal_connect_object(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (menu_window_visible_polys), co); item2=gtk_menu_item_new_with_label("Visible Streets"); gtk_menu_append (GTK_MENU(menu2), item2); gtk_signal_connect_object(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (menu_window_visible_streets), co); menu_item(this, menu2, "Visible Points", menu_window_visible_points); item2=gtk_menu_item_new_with_label("Exit"); gtk_menu_append (GTK_MENU(menu2), item2); gtk_signal_connect_object(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (exit), this); } gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), menu2); item=gtk_menu_item_new_with_label("Map"); gtk_menu_bar_append(GTK_MENU_BAR(menu), item); { menu2=gtk_menu_new(); item2=gtk_menu_item_new_with_label("Compare"); gtk_menu_append (GTK_MENU(menu2), item2); gtk_signal_connect_object(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (menu_map_compare), this); item2=gtk_menu_item_new_with_label("Distances"); gtk_menu_append (GTK_MENU(menu2), item2); gtk_signal_connect_object(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (menu_map_distances), this); } gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), menu2); item=gtk_menu_item_new_with_label("Route"); gtk_menu_bar_append(GTK_MENU_BAR(menu), item); { menu2=gtk_menu_new(); item2=gtk_menu_item_new_with_label("Start"); gtk_menu_append (GTK_MENU(menu2), item2); gtk_signal_connect_object(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (route_start), co); item2=gtk_menu_item_new_with_label("Trace"); gtk_menu_append (GTK_MENU(menu2), item2); gtk_signal_connect_object(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (route_trace), co); item2=gtk_menu_item_new_with_label("Update"); gtk_menu_append (GTK_MENU(menu2), item2); gtk_signal_connect_object(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (menu_route_update), this); } gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), menu2); item=gtk_menu_item_new_with_label("Destinations"); gtk_menu_bar_append(GTK_MENU_BAR(menu), item); menu2=gtk_menu_new(); item2=gtk_menu_item_new_with_label("Last Destinations"); gtk_menu_append (GTK_MENU(menu2), item2); menu3=gtk_menu_new(); gtk_menu_item_set_submenu(GTK_MENU_ITEM(item2), menu3); item2=gtk_menu_item_new_with_label("Address"); gtk_menu_append (GTK_MENU(menu2), item2); { FILE *file; char buffer[8192]; double lat,lng,lat_deg,lng_deg; char lat_c,lng_c; struct destination *dest; int pos,len; char *utf8,*text,*tok,*label; GList *list; file=fopen("locations.txt","r"); while (fgets(buffer,8192,file)) { dest=malloc(sizeof(*dest)); dest->co=co; len=strlen(buffer)-1; while (len >= 0 && buffer[len] == '\n') { buffer[len]='\0'; } sscanf(buffer,"%lf %c %lf %c %n",&lat, &lat_c, &lng, &lng_c, &pos); lat_deg=floor(lat/100); lat-=lat_deg*100; lat_deg+=lat/60; lng_deg=floor(lng/100); lng-=lng_deg*100; lng_deg+=lng/60; transform_mercator(&lng_deg, &lat_deg, &dest->pos); text=buffer+pos; dest->text=strdup(text); item2=NULL; menu3=menu2; while ((tok=strtok(text,"/"))) { list=NULL; if (item2) { menu3=gtk_menu_new(); gtk_menu_item_set_submenu(GTK_MENU_ITEM(item2), menu3); } list=gtk_container_get_children(GTK_CONTAINER(menu3)); while (list) { item2=GTK_WIDGET(list->data); gtk_label_get(GTK_LABEL(gtk_bin_get_child(GTK_BIN(item2))),&label); if (!strcmp(label, tok)) { menu3=gtk_menu_item_get_submenu(GTK_MENU_ITEM(item2)); break; } list=list->next; } item2=NULL; if (! list) { utf8=g_locale_to_utf8(tok,-1,NULL,NULL,NULL); item2=gtk_menu_item_new_with_label(utf8); gtk_menu_append (GTK_MENU(menu3), item2); g_free(utf8); } text=NULL; } gtk_signal_connect(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC (menu_destination_selected), dest); } } gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), menu2); item=gtk_menu_item_new(); clock=gtk_label_new(NULL); gtk_menu_item_right_justify(GTK_MENU_ITEM(item)); gtk_container_add(GTK_CONTAINER(item), clock); gtk_menu_bar_append(GTK_MENU_BAR(menu), item); menu_clock_update(clock); *widget=menu; return this; }