X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=libdocument%2Fev-document-transition.c;h=e5d8050b1de663f794f7954c83af3e22d4a3d491;hb=e769474337c9a6ffdaed2327056e8de2f7ca9ee4;hp=a5a5b244493e0542c1d6e3f7543889e12f8f74de;hpb=1af6600934d1f723e5b492b8322e52a1144fb0af;p=evince.git diff --git a/libdocument/ev-document-transition.c b/libdocument/ev-document-transition.c index a5a5b244..e5d8050b 100644 --- a/libdocument/ev-document-transition.c +++ b/libdocument/ev-document-transition.c @@ -15,37 +15,24 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include "ev-document-transition.h" -GType -ev_document_transition_get_type (void) -{ - static GType type = 0; - - if (G_UNLIKELY (type == 0)) { - const GTypeInfo our_info = { - sizeof (EvDocumentTransitionIface), - NULL, - NULL, - }; +G_DEFINE_INTERFACE (EvDocumentTransition, ev_document_transition, 0) - type = g_type_register_static (G_TYPE_INTERFACE, - "EvDocumentTransition", - &our_info, (GTypeFlags)0); - } - - return type; +static void +ev_document_transition_default_init (EvDocumentTransitionInterface *klass) +{ } gdouble ev_document_transition_get_page_duration (EvDocumentTransition *document_trans, gint page) { - EvDocumentTransitionIface *iface = EV_DOCUMENT_TRANSITION_GET_IFACE (document_trans); + EvDocumentTransitionInterface *iface = EV_DOCUMENT_TRANSITION_GET_IFACE (document_trans); if (iface->get_page_duration) return iface->get_page_duration (document_trans, page); @@ -53,4 +40,18 @@ ev_document_transition_get_page_duration (EvDocumentTransition *document_trans, return -1; } +EvTransitionEffect * +ev_document_transition_get_effect (EvDocumentTransition *document_trans, + gint page) +{ + EvDocumentTransitionInterface *iface = EV_DOCUMENT_TRANSITION_GET_IFACE (document_trans); + EvTransitionEffect *effect = NULL; + + if (iface->get_effect) + effect = iface->get_effect (document_trans, page); + if (!effect) + return ev_transition_effect_new (EV_TRANSITION_EFFECT_REPLACE, NULL); + + return effect; +}