static void chanlist_copychannel (GtkWidget *item, server *serv) { char *chan = chanlist_get_selected (serv, FALSE); if (chan) { gtkutil_copy_to_clipboard (item, NULL, chan); g_free (chan); } }
static void chanlist_copytopic (GtkWidget *item, server *serv) { char *topic = chanlist_get_selected (serv, TRUE); if (topic) { gtkutil_copy_to_clipboard (item, NULL, topic); g_free (topic); } }
static void url_button_copy (GtkWidget *widget, gpointer data) { GtkTreeView *view = GTK_TREE_VIEW (data); GtkTreeIter iter; gchar *url = NULL; if (gtkutil_treeview_get_selected (view, &iter, URL_COLUMN, &url, -1)) { gtkutil_copy_to_clipboard (GTK_WIDGET (view), NULL, url); g_free (url); } }
static void banlist_copyentry (GtkWidget *menuitem, GtkTreeView *view) { GtkTreeModel *model; GtkTreeSelection *sel; GtkTreeIter iter; GValue mask; GValue from; GValue date; char *str; memset (&mask, 0, sizeof (mask)); memset (&from, 0, sizeof (from)); memset (&date, 0, sizeof (date)); /* get selection (which should have been set on click) * and temporarily switch to single mode to get selected iter */ sel = gtk_tree_view_get_selection (view); gtk_tree_selection_set_mode (sel, GTK_SELECTION_SINGLE); if (gtk_tree_selection_get_selected (sel, &model, &iter)) { gtk_tree_model_get_value (model, &iter, MASK_COLUMN, &mask); gtk_tree_model_get_value (model, &iter, FROM_COLUMN, &from); gtk_tree_model_get_value (model, &iter, DATE_COLUMN, &date); /* poor way to get which is selected but it works */ if (strcmp (_("Copy mask"), gtk_menu_item_get_label (GTK_MENU_ITEM(menuitem))) == 0) str = g_value_dup_string (&mask); else str = g_strdup_printf (_("%s on %s by %s"), g_value_get_string (&mask), g_value_get_string (&date), g_value_get_string (&from)); if (str[0] != 0) gtkutil_copy_to_clipboard (menuitem, NULL, str); g_value_unset (&mask); g_value_unset (&from); g_value_unset (&date); g_free (str); } gtk_tree_selection_set_mode (sel, GTK_SELECTION_MULTIPLE); }
static void copy_to_clipboard_cb (GtkWidget *item, char *url) { gtkutil_copy_to_clipboard (item, NULL, url); }