Evince
Evince is a document viewer capable of displaying multiple and single page document formats like PDF and Postscript.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ev-selection.h
Go to the documentation of this file.
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */
2 /*
3  * Copyright (C) 2000-2003 Marco Pesenti Gritti
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2, or (at your option)
8  * any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18  *
19  */
20 
21 #if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION)
22 #error "Only <evince-document.h> can be included directly."
23 #endif
24 
25 #ifndef EV_SELECTION_H
26 #define EV_SELECTION_H
27 
28 #include <glib-object.h>
29 #include <glib.h>
30 #include <gdk/gdk.h>
31 #include "ev-document.h"
32 
33 G_BEGIN_DECLS
34 
35 #define EV_TYPE_SELECTION (ev_selection_get_type ())
36 #define EV_SELECTION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_SELECTION, EvSelection))
37 #define EV_SELECTION_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_SELECTION, EvSelectionInterface))
38 #define EV_IS_SELECTION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_SELECTION))
39 #define EV_IS_SELECTION_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_SELECTION))
40 #define EV_SELECTION_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_SELECTION, EvSelectionInterface))
41 
42 typedef enum {
47 
48 typedef struct _EvSelection EvSelection;
50 
52 {
53  GTypeInterface base_iface;
54 
55  void (* render_selection) (EvSelection *selection,
56  EvRenderContext *rc,
57  cairo_surface_t **surface,
58  EvRectangle *points,
59  EvRectangle *old_points,
60  EvSelectionStyle style,
61  GdkColor *text,
62  GdkColor *base);
63  gchar * (* get_selected_text) (EvSelection *selection,
64  EvPage *page,
65  EvSelectionStyle style,
66  EvRectangle *points);
67  cairo_region_t * (* get_selection_region) (EvSelection *selection,
68  EvRenderContext *rc,
69  EvSelectionStyle style,
70  EvRectangle *points);
71 };
72 
73 GType ev_selection_get_type (void) G_GNUC_CONST;
75  EvRenderContext *rc,
76  cairo_surface_t **surface,
77  EvRectangle *points,
78  EvRectangle *old_points,
79  EvSelectionStyle style,
80  GdkColor *text,
81  GdkColor *base);
83  EvPage *page,
84  EvSelectionStyle style,
85  EvRectangle *points);
86 cairo_region_t *ev_selection_get_selection_region (EvSelection *selection,
87  EvRenderContext *rc,
88  EvSelectionStyle style,
89  EvRectangle *points);
90 
91 G_END_DECLS
92 
93 #endif