1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_SLIDESHOW_SOURCE_INC_TRANSITIONFACTORY_HXX
21 #define INCLUDED_SLIDESHOW_SOURCE_INC_TRANSITIONFACTORY_HXX
23 #include <com/sun/star/animations/XTransitionFilter.hpp>
24 #include <com/sun/star/presentation/XTransitionFactory.hpp>
26 #include "rgbcolor.hxx"
28 #include "screenupdater.hxx"
29 #include "animationactivity.hxx"
30 #include "activitiesfactory.hxx"
31 #include "numberanimation.hxx"
32 #include "soundplayer.hxx"
33 #include "shapemanager.hxx"
35 namespace slideshow::internal
37 /* Definition of Transitionfactory class */
38 namespace TransitionFactory
40 /** Create a transition effect for shapes.
42 This method creates an AnimationActivity, which, when
43 run, performs the requested transition effect on the
47 Collection of activity parameters, see ActivitiesFactory
53 ShapeManager, to manage shape animation
58 @return the created activity, or NULL for no
61 AnimationActivitySharedPtr
createShapeTransition(
62 const ActivitiesFactory::CommonParameters
& rParms
,
63 const AnimatableShapeSharedPtr
& rShape
,
64 const ShapeManagerSharedPtr
& rShapeManager
,
65 const ::basegfx::B2DVector
& rSlideSize
,
66 css::uno::Reference
< css::animations::XTransitionFilter
> const& xTransition
);
69 /** Create a transition effect for slides.
71 This method creates a NumberAnimation, which,
72 when run, performs the requested transition effect
73 with the slide bitmaps.
75 @param rEnteringBitmap
76 Bitmap of the slide which 'enters' the screen.
79 Bitmap of the slide which 'leaves' the screen.
81 @param nTransitionType
82 Type of the transition (see XTransitionFilter)
84 @param nTransitionSubType
85 Subtype of the transition (see XTransitionFilter)
87 @param bTransitionDirection
88 Direction of the transition (see XTransitionFilter)
90 @param rTransitionFadeColor
91 Optional fade color for the transition
93 @return the created animation, or NULL for no
96 NumberAnimationSharedPtr
createSlideTransition(
97 const SlideSharedPtr
& rLeavingSlide
,
98 const SlideSharedPtr
& rEnteringSlide
,
99 const UnoViewContainer
& rViewContainer
,
100 ScreenUpdater
& rScreenUpdater
,
101 EventMultiplexer
& rEventMultiplexer
,
102 const css::uno::Reference
< css::presentation::XTransitionFactory
>&
104 sal_Int16 nTransitionType
,
105 sal_Int16 nTransitionSubType
,
106 bool bTransitionDirection
,
107 const RGBColor
& rTransitionFadeColor
,
108 const SoundPlayerSharedPtr
& rSoundPlayer
);
113 #endif // INCLUDED_SLIDESHOW_SOURCE_INC_TRANSITIONFACTORY_HXX
115 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */