/**************************************************************
 * 
 * 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
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/


#ifndef __com_sun_star_presentation_XTransitionFactory_idl__
#define __com_sun_star_presentation_XTransitionFactory_idl__

#ifndef __com_sun_star_presentation_XTransition_idl__ 
#include <com/sun/star/presentation/XTransition.idl> 
#endif 
#ifndef __com_sun_star_geometry_RealPoint2D_idl__ 
#include <com/sun/star/geometry/RealPoint2D.idl> 
#endif 


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 slideshow 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::animation::TransitionType)

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

        @param view
        Slideshow 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

        @param slideOffset
        Offset in pixel from the top, left edge of the view, such that the
        slide displays similar to normal slideshow
     */
    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 );
};

service TransitionFactory : XTransitionFactory;

}; }; }; };

#endif

