]> www.fi.muni.cz Git - evince.git/blob - shell/ev-window.h
Allow printing only odd/even pages. Fixes bug #367289.
[evince.git] / shell / ev-window.h
1 /* this file is part of evince, a gnome document viewer
2  *
3  *  Copyright (C) 2004 Martin Kretzschmar
4  *
5  *  Author:
6  *    Martin Kretzschmar <martink@gnome.org>
7  *
8  * Evince is free software; you can redistribute it and/or modify it
9  * under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * Evince is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
21  */
22
23 #ifndef EV_WINDOW_H
24 #define EV_WINDOW_H
25
26 #include <glib-object.h>
27 #include <gtk/gtkwindow.h>
28
29 #include "ev-link.h"
30 #include "ev-page-cache.h"
31
32 G_BEGIN_DECLS
33
34 typedef enum {
35         EV_WINDOW_MODE_NORMAL,
36         EV_WINDOW_MODE_FULLSCREEN,
37         EV_WINDOW_MODE_PRESENTATION,
38         EV_WINDOW_MODE_PREVIEW
39 } EvWindowRunMode;
40
41 typedef struct {
42         gint start;
43         gint end;
44 } EvPrintRange;
45
46 typedef enum {
47         EV_PRINT_PAGE_SET_ALL,
48         EV_PRINT_PAGE_SET_EVEN,
49         EV_PRINT_PAGE_SET_ODD
50 } EvPrintPageSet;
51
52 typedef struct _EvWindow EvWindow;
53 typedef struct _EvWindowClass EvWindowClass;
54 typedef struct _EvWindowPrivate EvWindowPrivate;
55
56 #define EV_TYPE_WINDOW                  (ev_window_get_type())
57 #define EV_WINDOW(object)               (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_WINDOW, EvWindow))
58 #define EV_WINDOW_CLASS(klass)          (G_TYPE_CHACK_CLASS_CAST((klass), EV_TYPE_WINDOW, EvWindowClass))
59 #define EV_IS_WINDOW(object)            (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_WINDOW))
60 #define EV_IS_WINDOW_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_WINDOW))
61 #define EV_WINDOW_GET_CLASS(object)     (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_WINDOW, EvWindowClass))
62
63
64 struct _EvWindow {
65         GtkWindow               base_instance;
66         EvWindowPrivate         *priv;
67 };
68
69 struct _EvWindowClass {
70         GtkWindowClass          base_class;
71 };
72
73 GType           ev_window_get_type        (void);
74 GtkWidget      *ev_window_new             (void);
75 const char     *ev_window_get_uri         (EvWindow       *ev_window);
76 void            ev_window_open_uri        (EvWindow       *ev_window,
77                                            const char     *uri,
78                                            EvLinkDest     *dest,
79                                            EvWindowRunMode mode);
80 void            ev_window_goto_dest       (EvWindow       *ev_window,
81                                            EvLinkDest     *dest);
82 gboolean        ev_window_is_empty        (const EvWindow *ev_window);
83 #ifdef WITH_PRINT
84 void            ev_window_print_range     (EvWindow       *ev_window,
85                                            int             first_page,
86                                            int             last_page);
87 #endif
88 G_END_DECLS
89
90 #endif /* !EV_WINDOW_H */
91