diff options
author | Marco 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) |
commit | 9c1e6ba4d99cb7f937b2b3998814a7486b88c4ce (patch) | |
tree | 8ffa6e82aa7437c6c777a75bdc950b199b28cb27 /pdf | |
parent | c65e82ff717a6abb0474ab13e282a3ed6dafc5f7 (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.cc | 20 |
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; |