summaryrefslogtreecommitdiff
path: root/libview/ev-view.h
blob: ce455a53598f1fdf5850884d33c38251235d9716 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/* this file is part of atril, a mate document viewer
 *
 *  Copyright (C) 2004 Red Hat, Inc
 *
 * Atril is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * Atril is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 */

#if !defined (__EV_ATRIL_VIEW_H_INSIDE__) && !defined (ATRIL_COMPILATION)
#error "Only <atril-view.h> can be included directly."
#endif

#ifndef __EV_VIEW_H__
#define __EV_VIEW_H__

#include <gtk/gtk.h>

#include <atril-document.h>

#include "ev-document-model.h"
#include "ev-jobs.h"

G_BEGIN_DECLS

#define EV_TYPE_VIEW            (ev_view_get_type ())
#define EV_VIEW(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), EV_TYPE_VIEW, EvView))
#define EV_IS_VIEW(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EV_TYPE_VIEW))

typedef struct _EvView       EvView;
typedef struct _EvViewClass  EvViewClass;

GType		ev_view_get_type	    (void) G_GNUC_CONST;

GtkWidget*	ev_view_new		    (void);
void		ev_view_set_model	    (EvView          *view,
					     EvDocumentModel *model);
EV_DEPRECATED
void 		ev_view_set_loading         (EvView 	     *view,
					     gboolean         loading);
gboolean        ev_view_is_loading          (EvView          *view);
void            ev_view_reload              (EvView          *view);
void            ev_view_set_page_cache_size (EvView          *view,
					     gsize            cache_size);

/* Clipboard */
void		ev_view_copy		  (EvView         *view);
void            ev_view_copy_link_address (EvView         *view,
					   EvLinkAction   *action);
void		ev_view_select_all	  (EvView         *view);
gboolean        ev_view_get_has_selection (EvView         *view);

/* Page size */
gboolean	ev_view_can_zoom_in       (EvView         *view);
void		ev_view_zoom_in		  (EvView         *view);
gboolean        ev_view_can_zoom_out      (EvView         *view);
void		ev_view_zoom_out	  (EvView         *view);
void		ev_view_zoom_reset	  (EvView         *view);
void		ev_view_zoom		  (EvView         *view,
		                           gdouble       factor);

/* Find */
void            ev_view_find_next                 (EvView         *view);
void            ev_view_find_previous             (EvView         *view);
void            ev_view_find_set_result           (EvView         *view,
						   gint            page,
						   gint            result);
void            ev_view_find_search_changed       (EvView         *view);
void     	ev_view_find_set_highlight_search (EvView         *view,
						   gboolean        value);
void            ev_view_find_changed              (EvView         *view,
						   GList         **results,
						   gint            page);
void            ev_view_find_cancel               (EvView         *view);

/* Synctex */
void            ev_view_highlight_forward_search (EvView       *view,
						  EvSourceLink *link);

/* Cursor */
void           ev_view_hide_cursor        (EvView         *view);
void           ev_view_show_cursor        (EvView         *view);

/* Navigation */
EV_DEPRECATED_FOR(g_signal_emit_by_name)
void	       ev_view_scroll             (EvView         *view,
	                                   GtkScrollType   scroll,
					   gboolean        horizontal);
void	       ev_view_handle_link        (EvView         *view,
					   EvLink         *link);
gboolean       ev_view_next_page	  (EvView         *view);
gboolean       ev_view_previous_page	  (EvView         *view);

void	       ev_view_autoscroll_start   (EvView *view);
void           ev_view_autoscroll_stop    (EvView *view);

gboolean       ev_view_get_page_extents   (EvView       *view,
                                           gint          page,
                                           GdkRectangle *page_area,
                                           GtkBorder    *border);
/* Annotations */
void           ev_view_focus_annotation      (EvView          *view,
					      EvMapping       *annot_mapping);
void           ev_view_begin_add_annotation  (EvView          *view,
					      EvAnnotationType annot_type);
void           ev_view_cancel_add_annotation (EvView          *view);
void           ev_view_remove_annotation     (EvView          *view,
                                              EvAnnotation    *annot);

/*For epub*/
void           ev_view_disconnect_handlers   (EvView          *view);

/* Caret navigation */
gboolean       ev_view_supports_caret_navigation    (EvView  *view);
gboolean       ev_view_is_caret_navigation_enabled  (EvView  *view);
void           ev_view_set_caret_navigation_enabled (EvView  *view,
                                                     gboolean enabled);
void           ev_view_set_caret_cursor_position    (EvView  *view,
                                                     guint    page,
                                                     guint    offset);
G_END_DECLS

#endif /* __EV_VIEW_H__ */