3 * GtkClipboard is used for clipboard handling. This demo shows how to
4 * copy and paste text to and from the clipboard.
11 static GtkWidget *window = NULL;
14 copy_button_clicked (GtkWidget *button,
18 GtkClipboard *clipboard;
20 entry = GTK_WIDGET (user_data);
22 /* Get the clipboard object */
23 clipboard = gtk_widget_get_clipboard (entry,
24 GDK_SELECTION_CLIPBOARD);
26 /* Set clipboard text */
27 gtk_clipboard_set_text (clipboard, gtk_entry_get_text (GTK_ENTRY (entry)), -1);
31 paste_received (GtkClipboard *clipboard,
37 entry = GTK_WIDGET (user_data);
39 /* Set the entry text */
40 gtk_entry_set_text (GTK_ENTRY (entry), text);
44 paste_button_clicked (GtkWidget *button,
48 GtkClipboard *clipboard;
50 entry = GTK_WIDGET (user_data);
52 /* Get the clipboard object */
53 clipboard = gtk_widget_get_clipboard (entry,
54 GDK_SELECTION_CLIPBOARD);
56 /* Request the contents of the clipboard, contents_received will be
57 called when we do get the contents.
59 gtk_clipboard_request_text (clipboard,
60 paste_received, entry);
64 do_clipboard (GtkWidget *do_widget)
68 GtkWidget *vbox, *hbox;
70 GtkWidget *entry, *button;
72 window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
73 vbox = gtk_vbox_new (FALSE, 0);
74 gtk_container_set_border_width (GTK_CONTAINER (vbox), 8);
76 gtk_container_add (GTK_CONTAINER (window), vbox);
78 label = gtk_label_new ("\"Copy\" will copy the text\nin the entry to the clipboard");
80 gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
82 hbox = gtk_hbox_new (FALSE, 4);
83 gtk_container_set_border_width (GTK_CONTAINER (hbox), 8);
84 gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
86 /* Create the first entry */
87 entry = gtk_entry_new ();
88 gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0);
90 /* Create the button */
91 button = gtk_button_new_from_stock (GTK_STOCK_COPY);
92 gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
93 g_signal_connect (button, "clicked",
94 G_CALLBACK (copy_button_clicked), entry);
96 label = gtk_label_new ("\"Paste\" will paste the text from the clipboard to the entry");
97 gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
99 hbox = gtk_hbox_new (FALSE, 4);
100 gtk_container_set_border_width (GTK_CONTAINER (hbox), 8);
101 gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
103 /* Create the second entry */
104 entry = gtk_entry_new ();
105 gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0);
107 /* Create the button */
108 button = gtk_button_new_from_stock (GTK_STOCK_PASTE);
109 gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
110 g_signal_connect (button, "clicked",
111 G_CALLBACK (paste_button_clicked), entry);
115 if (!GTK_WIDGET_VISIBLE (window))
116 gtk_widget_show_all (window);
119 gtk_widget_destroy (window);