[PATCH 3/3] glib: add copy button to selections demo
Adrian Johnson
ajohnson at redneon.com
Tue Feb 28 03:08:19 PST 2012
---
glib/demo/selections.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/glib/demo/selections.c b/glib/demo/selections.c
index 881733e..3ad7487 100644
--- a/glib/demo/selections.c
+++ b/glib/demo/selections.c
@@ -34,6 +34,7 @@ typedef struct {
GtkWidget *darea;
GtkWidget *fg_color_button;
GtkWidget *bg_color_button;
+ GtkWidget *copy_button;
PopplerPage *page;
cairo_surface_t *surface;
@@ -76,6 +77,7 @@ pgd_selections_clear_selections (PgdSelectionsDemo *demo)
cairo_region_destroy (demo->selected_region);
demo->selected_region = NULL;
}
+ gtk_widget_set_sensitive(demo->copy_button, FALSE);
}
static void
@@ -146,6 +148,7 @@ pgd_selections_update_seleted_text (PgdSelectionsDemo *demo)
if (text) {
demo->selected_text = g_utf8_normalize (text, -1, G_NORMALIZE_NFKC);
g_free (text);
+ gtk_widget_set_sensitive(demo->copy_button, TRUE);
}
}
@@ -430,6 +433,17 @@ pgd_selections_render (GtkButton *button,
}
static void
+pgd_selections_copy (GtkButton *button,
+ PgdSelectionsDemo *demo)
+{
+ if (demo->selected_text) {
+ GtkClipboard *clipboard = gtk_clipboard_get_for_display(gdk_display_get_default(),
+ GDK_SELECTION_CLIPBOARD);
+ gtk_clipboard_set_text (clipboard, demo->selected_text, -1);
+ }
+}
+
+static void
pgd_selections_page_selector_value_changed (GtkSpinButton *spinbutton,
PgdSelectionsDemo *demo)
{
@@ -599,6 +613,14 @@ pgd_selections_properties_selector_create (PgdSelectionsDemo *demo)
gtk_box_pack_start (GTK_BOX (hbox), color_hbox, FALSE, TRUE, 0);
gtk_widget_show (color_hbox);
+ demo->copy_button = gtk_button_new_with_label ("Copy");
+ g_signal_connect (G_OBJECT (demo->copy_button), "clicked",
+ G_CALLBACK (pgd_selections_copy),
+ (gpointer)demo);
+ gtk_box_pack_end (GTK_BOX (hbox), demo->copy_button, FALSE, TRUE, 0);
+ gtk_widget_set_sensitive(demo->copy_button, FALSE);
+ gtk_widget_show (demo->copy_button);
+
button = gtk_button_new_with_label ("Render");
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (pgd_selections_render),
--
1.7.5.4
--------------010703010206000408000202--
More information about the poppler
mailing list