1 sd/source/filter/pptin.cxx | 6 +
2 .../engine/transitions/slidetransitionfactory.cxx | 115 +++++++++++++++++++++--
3 .../engine/transitions/transitionfactorytab.cxx | 14 +++
4 3 files changed, 124 insertions(+), 11 deletions(-)
6 diff --git a/sd/source/filter/pptin.cxx b/sd/source/filter/pptin.cxx
7 index 479299a..bb73ddc 100644
8 --- sd/source/filter/pptin.cxx
9 +++ sd/source/filter/pptin.cxx
10 @@ -1638,7 +1638,11 @@ void ImplSdPPTImport::ImportPageEffect( SdPage* pPage, const sal_Bool bNewAnimat
11 if ( nDirection == 0 )
12 pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_NONE ); // Direkt
13 else if ( nDirection == 1 )
14 - pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_NONE ); // Direkt ueber Schwarz
16 + pPage->setTransitionType( animations::TransitionType::BARWIPE );
17 + pPage->setTransitionSubtype( animations::TransitionSubType::FADEOVERCOLOR );
18 + pPage->setTransitionFadeColor( 0 );
22 pPage->setTransitionType( 0 );
23 diff --git a/slideshow/source/engine/transitions/slidetransitionfactory.cxx b/slideshow/source/engine/transitions/slidetransitionfactory.cxx
24 index 854467b..ec23e29 100644
25 --- slideshow/source/engine/transitions/slidetransitionfactory.cxx
26 +++ slideshow/source/engine/transitions/slidetransitionfactory.cxx
27 @@ -349,6 +349,89 @@ void FadingSlideChange::performOut(
31 +class CutSlideChange : public SlideChangeBase
34 + /** Create a new SlideChanger, for the given leaving and
35 + entering slides, which applies a cut effect.
38 + boost::optional<SlideSharedPtr> const & leavingSlide,
39 + const SlideSharedPtr& pEnteringSlide,
40 + const RGBColor& rFadeColor,
41 + const SoundPlayerSharedPtr& pSoundPlayer,
42 + const UnoViewContainer& rViewContainer,
43 + ScreenUpdater& rScreenUpdater,
44 + EventMultiplexer& rEventMultiplexer )
45 + : SlideChangeBase( leavingSlide,
50 + rEventMultiplexer ),
51 + maFadeColor( rFadeColor ),
55 + virtual void performIn(
56 + const ::cppcanvas::CustomSpriteSharedPtr& rSprite,
57 + const ViewEntry& rViewEntry,
58 + const ::cppcanvas::CanvasSharedPtr& rDestinationCanvas,
61 + virtual void performOut(
62 + const ::cppcanvas::CustomSpriteSharedPtr& rSprite,
63 + const ViewEntry& rViewEntry,
64 + const ::cppcanvas::CanvasSharedPtr& rDestinationCanvas,
68 + RGBColor maFadeColor;
72 +void CutSlideChange::performIn(
73 + const ::cppcanvas::CustomSpriteSharedPtr& rSprite,
74 + const ViewEntry& /*rViewEntry*/,
75 + const ::cppcanvas::CanvasSharedPtr& /*rDestinationCanvas*/,
80 + "CutSlideChange::performIn(): Invalid sprite" );
82 + // After 2/3rd of the active time, display new slide
83 + rSprite->setAlpha( t > 2/3.0 ? 1.0 : 0.0 );
86 +void CutSlideChange::performOut(
87 + const ::cppcanvas::CustomSpriteSharedPtr& rSprite,
88 + const ViewEntry& rViewEntry,
89 + const ::cppcanvas::CanvasSharedPtr& rDestinationCanvas,
94 + "CutSlideChange::performOut(): Invalid sprite" );
97 + "FadingSlideChange::performOut(): Invalid dest canvas" );
101 + mbFirstTurn = false;
103 + // clear page to given fade color. 'Leaving' slide is
104 + // painted atop of that
105 + fillPage( rDestinationCanvas,
106 + getEnteringSlideSizePixel( rViewEntry.mpView ),
110 + // Until 1/3rd of the active time, display old slide.
111 + rSprite->setAlpha( t > 1/3.0 ? 0.0 : 1.0 );
114 class MovingSlideChange : public SlideChangeBase
116 /// Direction vector for leaving slide,
117 @@ -883,6 +966,7 @@ NumberAnimationSharedPtr TransitionFactory::createSlideTransition(
121 + case animations::TransitionType::BARWIPE:
122 case animations::TransitionType::FADE:
125 @@ -914,16 +998,27 @@ NumberAnimationSharedPtr TransitionFactory::createSlideTransition(
126 "SlideTransitionFactory::createSlideTransition(): Unknown FADE subtype" );
129 - return NumberAnimationSharedPtr(
130 - new FadingSlideChange(
133 - comphelper::make_optional(
134 - rTransitionFadeColor),
138 - rEventMultiplexer ));
139 + if( nTransitionType == animations::TransitionType::FADE )
140 + return NumberAnimationSharedPtr(
141 + new FadingSlideChange(
144 + comphelper::make_optional(
145 + rTransitionFadeColor),
149 + rEventMultiplexer ));
151 + return NumberAnimationSharedPtr(
152 + new CutSlideChange(
155 + rTransitionFadeColor,
159 + rEventMultiplexer ));
163 diff --git a/slideshow/source/engine/transitions/transitionfactorytab.cxx b/slideshow/source/engine/transitions/transitionfactorytab.cxx
164 index d5be3d2..ed3f7dd 100644
165 --- slideshow/source/engine/transitions/transitionfactorytab.cxx
166 +++ slideshow/source/engine/transitions/transitionfactorytab.cxx
167 @@ -2018,6 +2018,20 @@ static const TransitionInfo lcl_transitionInfo[] =
168 true, // 'out' by parameter sweep inversion
169 false // scale isotrophically to target size
171 + // this is the cut through black fade (does not fade, but does a
174 + animations::TransitionType::BARWIPE,
175 + animations::TransitionSubType::FADEOVERCOLOR,
176 + TransitionInfo::TRANSITION_SPECIAL,
177 + // TODO(F2): Setup parameters
178 + 0.0, // no rotation
181 + TransitionInfo::REVERSEMETHOD_IGNORE,
182 + true, // 'out' by parameter sweep inversion
183 + false // scale isotrophically to target size
187 // mapped to RandomWipe:
189 --- sd/xml/transitions.orig 2008-08-18 15:59:32.000000000 +0200
190 +++ sd/xml/transitions.xml 2008-08-18 16:23:48.000000000 +0200
192 <anim:par pres:preset-id="fade-through-black">
193 <anim:transitionFilter smil:type="fade" smil:subtype="fadeOverColor" smil:fadeColor="#000000"/>
195 + <anim:par pres:preset-id="cut-through-black">
196 + <anim:transitionFilter smil:type="barWipe" smil:subtype="fadeOverColor" smil:fadeColor="#000000"/>
198 <anim:par pres:preset-id="cover-down">
199 <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromTop"/>