]> www.fi.muni.cz Git - evince.git/blob - libdocument/ev-document-transition.c
[dualscreen] fix crash on ctrl+w and fix control window closing
[evince.git] / libdocument / ev-document-transition.c
1 /* ev-document-transition.c
2  *  this file is part of evince, a gnome document viewer
3  * 
4  * Copyright (C) 2006 Carlos Garcia Campos <carlosgc@gnome.org>
5  *
6  * Evince is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * Evince is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19  */
20
21 #include <config.h>
22 #include "ev-document-transition.h"
23
24 G_DEFINE_INTERFACE (EvDocumentTransition, ev_document_transition, 0)
25
26 static void
27 ev_document_transition_default_init (EvDocumentTransitionInterface *klass)
28 {
29 }
30
31 gdouble
32 ev_document_transition_get_page_duration (EvDocumentTransition *document_trans,
33                                           gint                  page)
34 {
35         EvDocumentTransitionInterface *iface = EV_DOCUMENT_TRANSITION_GET_IFACE (document_trans);
36
37         if (iface->get_page_duration)
38                 return iface->get_page_duration (document_trans, page);
39
40         return -1;
41 }
42
43 EvTransitionEffect *
44 ev_document_transition_get_effect (EvDocumentTransition *document_trans,
45                                    gint                  page)
46 {
47         EvDocumentTransitionInterface *iface = EV_DOCUMENT_TRANSITION_GET_IFACE (document_trans);
48         EvTransitionEffect *effect = NULL;
49
50         if (iface->get_effect)
51                 effect = iface->get_effect (document_trans, page);
52
53         if (!effect)
54                 return ev_transition_effect_new (EV_TRANSITION_EFFECT_REPLACE, NULL);
55
56         return effect;
57 }