/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */
#ifndef __com_sun_star_presentation_XTransitionFactory_idl__
#define __com_sun_star_presentation_XTransitionFactory_idl__

#include <com/sun/star/presentation/XTransition.idl>
#include <com/sun/star/geometry/RealPoint2D.idl>


module com {  module sun {  module star {

module rendering { interface XBitmap; };

module presentation {

interface XTransition;
interface XSlideShowView;

/** TransitionFactory interface to request optional custom Transition instances for slide show transitions.<p>

    This interface provides the necessary methods to query and create optional transition effects for a SlideShow<p>

    @since OOo 2.4
 */
interface XTransitionFactory : ::com::sun::star::uno::XInterface
{
    /** Checks whether this instance provides an implementation for given transition id.<p>
     */
    boolean hasTransition( [in] short transitionType, [in] short transitionSubType );

    /** Actually create a transition for the given transition id

        @param transitionType
        Main type of transition (@see ::com::sun::star::animations::TransitionType)

        @param transitionSubType
        Subtype for the transition (@see ::com::sun::star::animations::TransitionSubType)

        @param view
        Slide show view to display on

        @param leavingBitmap
        Bitmap of the slide that's going to leave the screen

        @param enteringBitmap
        Bitmap of the slide that's going to enter the screen
     */
    XTransition createTransition( [in] short                                 transitionType,
                                  [in] short                                 transitionSubType,
                                  [in] XSlideShowView                        view,
                                  [in] com::sun::star::rendering::XBitmap    leavingBitmap,
                                  [in] com::sun::star::rendering::XBitmap    enteringBitmap );
};

}; }; }; };

#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
