Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pdf
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@gnome.org>2005-01-05 15:10:04 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-01-05 15:10:04 (GMT)
commit9c1e6ba4d99cb7f937b2b3998814a7486b88c4ce (patch)
tree8ffa6e82aa7437c6c777a75bdc950b199b28cb27 /pdf
parentc65e82ff717a6abb0474ab13e282a3ed6dafc5f7 (diff)
Beginnings of clipboard support. Incomplete but primary sort of work.
2005-01-05 Marco Pesenti Gritti <marco@gnome.org> * backend/ev-document.c: (ev_document_get_text): * backend/ev-document.h: * pdf/xpdf/pdf-document.cc: * shell/ev-view.c: (ev_view_realize), (expose_bin_window), (ev_view_primary_get_cb), (ev_view_primary_clear_cb), (ev_view_update_primary_selection), (ev_view_button_press_event), (ev_view_motion_notify_event), (ev_view_button_release_event): Beginnings of clipboard support. Incomplete but primary sort of work.
Diffstat (limited to 'pdf')
-rw-r--r--pdf/xpdf/pdf-document.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/pdf/xpdf/pdf-document.cc b/pdf/xpdf/pdf-document.cc
index ed3b505..2293841 100644
--- a/pdf/xpdf/pdf-document.cc
+++ b/pdf/xpdf/pdf-document.cc
@@ -959,6 +959,25 @@ pdf_document_get_title (PdfDocument *pdf_document)
return title;
}
+static char *
+pdf_document_get_text (EvDocument *document, GdkRectangle *rect)
+{
+ PdfDocument *pdf_document = PDF_DOCUMENT (document);
+ GString *sel_text = new GString;
+ const char *text;
+ int x1, y1, x2, y2;
+
+ x1 = rect->x;
+ y1 = rect->y;
+ x2 = x1 + rect->width;
+ y2 = y1 + rect->height;
+
+ sel_text = pdf_document->out->getText (x1, y1, x2, y2);
+ text = sel_text->getCString ();
+
+ return text ? g_strdup (text) : NULL;
+}
+
static void
pdf_document_get_property (GObject *object,
guint prop_id,
@@ -995,6 +1014,7 @@ pdf_document_document_iface_init (EvDocumentIface *iface)
{
iface->load = pdf_document_load;
iface->save = pdf_document_save;
+ iface->get_text = pdf_document_get_text;
iface->get_n_pages = pdf_document_get_n_pages;
iface->set_page = pdf_document_set_page;
iface->get_page = pdf_document_get_page;