xref: /AOO41X/main/sd/source/filter/ppt/pptanimations.hxx (revision 1776ad396d100a46b9f68f725413ce2ae561dd84)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef _SD_PPT_ANIMATIONS_HXX
25 #define _SD_PPT_ANIMATIONS_HXX
26 
27 #include <com/sun/star/uno/Any.h>
28 #include <com/sun/star/animations/TransitionType.hpp>
29 #include <com/sun/star/animations/TransitionSubType.hpp>
30 #include <com/sun/star/presentation/EffectPresetClass.hpp>
31 
32 #include <map>
33 #include <sal/types.h>
34 
35 class SvStream;
36 
37 namespace ppt
38 {
39 
40 // old transition types
41 #define PPT_TRANSITION_TYPE_NONE            0
42 #define PPT_TRANSITION_TYPE_RANDOM          1
43 #define PPT_TRANSITION_TYPE_BLINDS          2
44 #define PPT_TRANSITION_TYPE_CHECKER         3
45 #define PPT_TRANSITION_TYPE_COVER           4
46 #define PPT_TRANSITION_TYPE_DISSOLVE        5
47 #define PPT_TRANSITION_TYPE_FADE            6
48 #define PPT_TRANSITION_TYPE_PULL            7
49 #define PPT_TRANSITION_TYPE_RANDOM_BARS     8
50 #define PPT_TRANSITION_TYPE_STRIPS          9
51 #define PPT_TRANSITION_TYPE_WIPE           10
52 #define PPT_TRANSITION_TYPE_ZOOM           11
53 #define PPT_TRANSITION_TYPE_SPLIT          13
54 
55 // effects, new in xp
56 #define PPT_TRANSITION_TYPE_DIAMOND         17
57 #define PPT_TRANSITION_TYPE_PLUS            18
58 #define PPT_TRANSITION_TYPE_WEDGE           19
59 #define PPT_TRANSITION_TYPE_PUSH            20
60 #define PPT_TRANSITION_TYPE_COMB            21
61 #define PPT_TRANSITION_TYPE_NEWSFLASH       22
62 #define PPT_TRANSITION_TYPE_SMOOTHFADE      23
63 #define PPT_TRANSITION_TYPE_WHEEL           26
64 #define PPT_TRANSITION_TYPE_CIRCLE          27
65 
66 
67 
68 // atoms
69 #define DFF_msofbtAnimEvent                         0xf125
70 #define DFF_msofbtAnimNode                          0xf127
71 #define DFF_msofbtAnimTrigger                       0xf128
72 #define DFF_msofbtAnimValue                         0xf129
73 #define DFF_msofbtAnimateTarget                     0xf12a
74 #define DFF_msofbtAnimate                           0xf12b
75 #define DFF_msofbtAnimateColor                      0xf12c
76 #define DFF_msofbtAnimateFilter                     0xf12d
77 #define DFF_msofbtAnimateMotion                     0xf12e
78 #define DFF_msofbtAnimateRotation                   0xf12f
79 #define DFF_msofbtAnimateScale                      0xf130
80 #define DFF_msofbtAnimateSet                        0xf131
81 #define DFF_msofbtAnimCommand                       0xf132
82 #define DFF_msofbtAnimateTargetSettings             0xf133
83 #define DFF_msofbtAnimateData                       0xf134
84 #define DFF_msofbtAnimateColorData                  0xf135
85 #define DFF_msofbtAnimateFilterData                 0xf136
86 #define DFF_msofbtAnimateMotionData                 0xf137
87 #define DFF_msofbtAnimateScaleData                  0xf139
88 #define DFF_msofbtAnimateSetData                    0xf13a
89 #define DFF_msofbtCommandData                       0xf13b
90 #define DFF_msofbtAnimateTargetElement              0xf13c
91 #define DFF_msofbtAnimPropertySet                   0xf13d
92 #define DFF_msofbtAnimateAttributeNames             0xf13e
93 #define DFF_msofbtAnimKeyPoints                     0xf13f
94 #define DFF_msofbtAnimIteration                     0xf140
95 #define DFF_msofbtAnimAction                        0xf141          // correct name??
96 #define DFF_msofbtAnimAttributeValue                0xf142
97 #define DFF_msofbtAnimKeyTime                       0xf143
98 #define DFF_msofbtAnimGroup                         0xf144
99 #define DFF_msofbtAnimSubGoup                       0xf145
100 #define DFF_msofbtAnimateRotationData               0xf138
101 #define DFF_msofbtAnimReference                     0x2afb
102 
103 // property ids
104 #define DFF_ANIM_ID                         1
105 #define DFF_ANIM_RUNTIMECONTEXT             2
106 #define DFF_ANIM_PATH_EDIT_MODE             3
107 #define DFF_ANIM_COLORSPACE                 4
108 #define DFF_ANIM_DIRECTION                  5       // TODO: Conflict?
109 #define DFF_ANIM_MASTERREL                  5       // TODO: Conflict?
110 #define DFF_ANIM_OVERRIDE                   6
111 #define DFF_ANIM_PRESET_ID                  9
112 #define DFF_ANIM_PRESET_SUB_TYPE            10
113 #define DFF_ANIM_PRESET_CLASS               11
114 #define DFF_ANIM_AFTEREFFECT                13
115 #define DFF_ANIM_ENDAFTERSLIDE              15
116 #define DFF_ANIM_TIMEFILTER                 16
117 #define DFF_ANIM_EVENT_FILTER               17
118 #define DFF_ANIM_GROUP_ID                   19
119 #define DFF_ANIM_NODE_TYPE                  20
120 #define DFF_ANIM_VOLUME                     22
121 #define DFF_ANIM_PROPERTY_ID_COUNT          (DFF_ANIM_VOLUME + 1)
122 
123 
124 
125 // property types
126 #define DFF_ANIM_PROP_TYPE_BYTE             0
127 #define DFF_ANIM_PROP_TYPE_INT32            1
128 #define DFF_ANIM_PROP_TYPE_FLOAT            2
129 #define DFF_ANIM_PROP_TYPE_UNISTRING        3
130 
131 #define DFF_ANIM_PATH_EDIT_MODE_FIXED       0
132 #define DFF_ANIM_PATH_EDIT_MODE_RELATIVE    1
133 
134 #define DFF_ANIM_PRESS_CLASS_USER_DEFINED   0
135 #define DFF_ANIM_PRESS_CLASS_ENTRANCE       1
136 #define DFF_ANIM_PRESS_CLASS_EXIT           2
137 #define DFF_ANIM_PRESS_CLASS_EMPHASIS       3
138 #define DFF_ANIM_PRESS_CLASS_MOTIONPATH     4
139 #define DFF_ANIM_PRESS_CLASS_OLE_ACTION     5
140 #define DFF_ANIM_PRESS_CLASS_MEDIACALL      6
141 
142 #define DFF_ANIM_NODE_TYPE_ON_CLICK         1
143 #define DFF_ANIM_NODE_TYPE_WITH_PREVIOUS    2
144 #define DFF_ANIM_NODE_TYPE_AFTER_PREVIOUS   3
145 #define DFF_ANIM_NODE_TYPE_MAIN_SEQUENCE    4
146 #define DFF_ANIM_NODE_TYPE_INTERACTIVE_SEQ  5
147 #define DFF_ANIM_NODE_TYPE_TIMING_ROOT      9
148 
149 #define DFF_ANIM_PROPERTY_AFTEREFFECT       20
150 
151 /* constants for fill entry in AnimationNode */
152 const sal_Int32 mso_Anim_GroupType_PAR      = 0;
153 const sal_Int32 mso_Anim_GroupType_SEQ      = 1;
154 const sal_Int32 mso_Anim_GroupType_NODE     = 3;
155 const sal_Int32 mso_Anim_GroupType_MEDIA    = 4;
156 
157 /* constants for fill entry in AnimationNode */
158 const sal_Int32 mso_Anim_Fill_ALWAYS    = 1;
159 const sal_Int32 mso_Anim_Fill_WHENOFF   = 2;
160 const sal_Int32 mso_Anim_Fill_NEVER     = 3;
161 
162 /* constants for fill entry in AnimationNode */
163 const sal_Int32 mso_Anim_Fill_REMOVE    = 1;
164 const sal_Int32 mso_Anim_Fill_FREEZE    = 2;
165 const sal_Int32 mso_Anim_Fill_HOLD      = 3;
166 
167 /* constants for behaviour entry in PPtAnimationNode */
168 const sal_Int32 mso_Anim_Behaviour_FILTER   = 24;
169 const sal_Int32 mso_Anim_Behaviour_ANIMATION= 25;
170 
171 typedef ::std::map< sal_Int32, ::com::sun::star::uno::Any > PropertySetMap_t;
172 
173 class PropertySet
174 {
175 public:
176     PropertySetMap_t maProperties;
177 
178     bool hasProperty( sal_Int32 nProperty ) const;
179     ::com::sun::star::uno::Any getProperty( sal_Int32 nProperty ) const;
180 };
181 
182 
183 enum MS_AttributeNames
184 {
185     MS_PPT_X, MS_PPT_Y, MS_PPT_W, MS_PPT_H, MS_PPT_C, MS_R, MS_XSHEAR, MS_FILLCOLOR, MS_FILLTYPE,
186     MS_STROKECOLOR, MS_STROKEON, MS_STYLECOLOR, MS_STYLEROTATION, MS_FONTWEIGHT,
187     MS_STYLEUNDERLINE, MS_STYLEFONTFAMILY, MS_STYLEFONTSIZE, MS_STYLEFONTSTYLE,
188     MS_STYLEVISIBILITY, MS_STYLEOPACITY, MS_UNKNOWN
189 };
190 
191 struct ImplAttributeNameConversion
192 {
193     MS_AttributeNames   meAttribute;
194     const char* mpMSName;
195     const char* mpAPIName;
196 };
197 
198 /** this atom is the first entry in each animation group */
199 struct AnimationNode
200 {
201 public:
202     /** see mso_Anim_GroupType_? */
203     sal_Int32 mnGroupType;
204 
205     /** see mso_Anim_Restart_? */
206     sal_Int32 mnRestart;
207 
208     /** see mso_Anim_Fill_? */
209     sal_Int32 mnFill;
210 
211     /** see mso_Anim_Behaviour_? */
212     sal_Int32 mnNodeType;
213 
214     /** duration of this group in 1000th seconds */
215     sal_Int32 mnDuration;
216 
217     sal_Int32 mnU1, mnU3, mnU4;
218 
219 public:
220 
221     friend SvStream& operator>>(SvStream& rIn, AnimationNode& rAtom);
222     friend SvStream& operator<<(SvStream& rOut, AnimationNode& rAtom);
223 };
224 
225 static const ImplAttributeNameConversion gImplConversionList[] =
226 {
227     { MS_PPT_X,             "ppt_x",                        "X" },
228     { MS_PPT_Y,             "ppt_y",                        "Y" },
229     { MS_PPT_W,             "ppt_w",                        "Width" },
230     { MS_PPT_H,             "ppt_h",                        "Height" },
231     { MS_PPT_C,             "ppt_c",                        "DimColor" },
232     { MS_R,                 "r",                            "Rotate" },
233     { MS_XSHEAR,            "xshear",                       "SkewX" },
234     { MS_FILLCOLOR,         "fillColor",                    "FillColor" },
235     { MS_FILLCOLOR,         "fillcolor",                    "FillColor" },
236     { MS_FILLTYPE,          "fill.type",                    "FillStyle" },
237     { MS_STROKECOLOR,       "stroke.color",                 "LineColor" },
238     { MS_STROKEON,          "stroke.on",                    "LineStyle" },
239     { MS_STYLECOLOR,        "style.color",                  "CharColor" },
240     { MS_STYLEROTATION,     "style.rotation",               "Rotate" },
241     { MS_FONTWEIGHT,        "style.fontWeight",             "CharWeight" },
242     { MS_STYLEUNDERLINE,    "style.textDecorationUnderline","CharUnderline" },
243     { MS_STYLEFONTFAMILY,   "style.fontFamily",             "CharFontName" },
244     { MS_STYLEFONTSIZE,     "style.fontSize",               "CharHeight" },
245     { MS_STYLEFONTSTYLE,    "style.fontStyle",              "CharPosture" },
246     { MS_STYLEVISIBILITY,   "style.visibility",             "Visibility" },
247     { MS_STYLEOPACITY,      "style.opacity",                "Opacity" },
248     { MS_UNKNOWN, NULL, NULL }
249 };
250 
251 struct transition
252 {
253     const sal_Char* mpName;
254     sal_Int16 mnType;
255     sal_Int16 mnSubType;
256     sal_Bool mbDirection; // true: default geometric direction
257 
258     static const transition* find( const rtl::OUString& rName );
259     static const sal_Char* find( const sal_Int16 mnType, const sal_Int16 mnSubType, const sal_Bool bDirection );
260 };
261 static const transition gTransitions[] =
262 {
263 { "wipe(up)", ::com::sun::star::animations::TransitionType::BARWIPE, ::com::sun::star::animations::TransitionSubType::TOPTOBOTTOM, sal_True },
264 { "wipe(right)", ::com::sun::star::animations::TransitionType::BARWIPE, ::com::sun::star::animations::TransitionSubType::LEFTTORIGHT, sal_False },
265 { "wipe(left)", ::com::sun::star::animations::TransitionType::BARWIPE, ::com::sun::star::animations::TransitionSubType::LEFTTORIGHT, sal_True },
266 { "wipe(down)", ::com::sun::star::animations::TransitionType::BARWIPE, ::com::sun::star::animations::TransitionSubType::TOPTOBOTTOM, sal_False },
267 { "wheel(1)", ::com::sun::star::animations::TransitionType::PINWHEELWIPE, ::com::sun::star::animations::TransitionSubType::ONEBLADE, sal_True },
268 { "wheel(2)", ::com::sun::star::animations::TransitionType::PINWHEELWIPE, ::com::sun::star::animations::TransitionSubType::TWOBLADEVERTICAL, sal_True },
269 { "wheel(3)", ::com::sun::star::animations::TransitionType::PINWHEELWIPE, ::com::sun::star::animations::TransitionSubType::THREEBLADE, sal_True },
270 { "wheel(4)", ::com::sun::star::animations::TransitionType::PINWHEELWIPE, ::com::sun::star::animations::TransitionSubType::FOURBLADE, sal_True },
271 { "wheel(8)", ::com::sun::star::animations::TransitionType::PINWHEELWIPE, ::com::sun::star::animations::TransitionSubType::EIGHTBLADE, sal_True },
272 { "strips(downLeft)", ::com::sun::star::animations::TransitionType::WATERFALLWIPE, ::com::sun::star::animations::TransitionSubType::HORIZONTALRIGHT, sal_True },
273 { "strips(upLeft)", ::com::sun::star::animations::TransitionType::WATERFALLWIPE, ::com::sun::star::animations::TransitionSubType::HORIZONTALLEFT, sal_False },
274 { "strips(downRight)", ::com::sun::star::animations::TransitionType::WATERFALLWIPE, ::com::sun::star::animations::TransitionSubType::HORIZONTALLEFT, sal_True },
275 { "strips(upRight)", ::com::sun::star::animations::TransitionType::WATERFALLWIPE, ::com::sun::star::animations::TransitionSubType::HORIZONTALRIGHT, sal_False },
276 { "barn(inVertical)", ::com::sun::star::animations::TransitionType::BARNDOORWIPE, ::com::sun::star::animations::TransitionSubType::VERTICAL, sal_False },
277 { "barn(outVertical)", ::com::sun::star::animations::TransitionType::BARNDOORWIPE, ::com::sun::star::animations::TransitionSubType::VERTICAL, sal_True },
278 { "barn(inHorizontal)", ::com::sun::star::animations::TransitionType::BARNDOORWIPE, ::com::sun::star::animations::TransitionSubType::HORIZONTAL, sal_False },
279 { "barn(outHorizontal)", ::com::sun::star::animations::TransitionType::BARNDOORWIPE, ::com::sun::star::animations::TransitionSubType::HORIZONTAL, sal_True },
280 { "randombar(vertical)", ::com::sun::star::animations::TransitionType::RANDOMBARWIPE, ::com::sun::star::animations::TransitionSubType::VERTICAL, sal_True},
281 { "randombar(horizontal)", ::com::sun::star::animations::TransitionType::RANDOMBARWIPE, ::com::sun::star::animations::TransitionSubType::HORIZONTAL, sal_True },
282 { "checkerboard(down)", ::com::sun::star::animations::TransitionType::CHECKERBOARDWIPE, ::com::sun::star::animations::TransitionSubType::DOWN, sal_True},
283 { "checkerboard(across)", ::com::sun::star::animations::TransitionType::CHECKERBOARDWIPE, ::com::sun::star::animations::TransitionSubType::ACROSS, sal_True },
284 { "plus(out)", ::com::sun::star::animations::TransitionType::FOURBOXWIPE, ::com::sun::star::animations::TransitionSubType::CORNERSIN, sal_False },
285 { "plus(in)", ::com::sun::star::animations::TransitionType::FOURBOXWIPE, ::com::sun::star::animations::TransitionSubType::CORNERSIN, sal_True },
286 { "diamond(out)", ::com::sun::star::animations::TransitionType::IRISWIPE, ::com::sun::star::animations::TransitionSubType::DIAMOND, sal_True },
287 { "diamond(in)", ::com::sun::star::animations::TransitionType::IRISWIPE, ::com::sun::star::animations::TransitionSubType::DIAMOND, sal_False },
288 { "circle(out)", ::com::sun::star::animations::TransitionType::ELLIPSEWIPE, ::com::sun::star::animations::TransitionSubType::HORIZONTAL, sal_True },
289 { "circle(in)", ::com::sun::star::animations::TransitionType::ELLIPSEWIPE, ::com::sun::star::animations::TransitionSubType::HORIZONTAL, sal_False },
290 { "box(out)", ::com::sun::star::animations::TransitionType::IRISWIPE, ::com::sun::star::animations::TransitionSubType::RECTANGLE, sal_True },
291 { "box(in)", ::com::sun::star::animations::TransitionType::IRISWIPE, ::com::sun::star::animations::TransitionSubType::RECTANGLE, sal_False },
292 { "wedge", ::com::sun::star::animations::TransitionType::FANWIPE, ::com::sun::star::animations::TransitionSubType::CENTERTOP, sal_True },
293 { "blinds(vertical)", ::com::sun::star::animations::TransitionType::BLINDSWIPE, ::com::sun::star::animations::TransitionSubType::VERTICAL, sal_True },
294 { "blinds(horizontal)", ::com::sun::star::animations::TransitionType::BLINDSWIPE, ::com::sun::star::animations::TransitionSubType::HORIZONTAL, sal_True },
295 { "fade", ::com::sun::star::animations::TransitionType::FADE, ::com::sun::star::animations::TransitionSubType::CROSSFADE, sal_True },
296 { "slide(fromTop)", ::com::sun::star::animations::TransitionType::SLIDEWIPE, ::com::sun::star::animations::TransitionSubType::FROMTOP, sal_True },
297 { "slide(fromRight)", ::com::sun::star::animations::TransitionType::SLIDEWIPE, ::com::sun::star::animations::TransitionSubType::FROMRIGHT, sal_True },
298 { "slide(fromLeft)", ::com::sun::star::animations::TransitionType::SLIDEWIPE, ::com::sun::star::animations::TransitionSubType::FROMLEFT, sal_True },
299 { "slide(fromBottom)", ::com::sun::star::animations::TransitionType::SLIDEWIPE, ::com::sun::star::animations::TransitionSubType::FROMBOTTOM, sal_True },
300 { "dissolve", ::com::sun::star::animations::TransitionType::DISSOLVE, ::com::sun::star::animations::TransitionSubType::DEFAULT, sal_True },
301 { "image", ::com::sun::star::animations::TransitionType::DISSOLVE, ::com::sun::star::animations::TransitionSubType::DEFAULT, sal_True }, // TODO
302 { NULL, 0, 0, sal_False }
303 };
304 
305 struct convert_subtype
306 {
307     sal_Int32 mnID;
308     const sal_Char* mpStrSubType;
309 };
310 static const convert_subtype gConvertArray[] =
311 {
312     // fly in
313     {   1, "from-top" },
314     {   2, "from-right" },
315     {   3, "from-top-right" },
316     {   4, "from-bottom" },
317     {   5, "horizontal" },
318     {   6, "from-bottom-right" },
319     {   8, "from-left" },
320     {   9, "from-top-left" },
321     {  10, "vertical" },
322     {  12, "from-bottom-left" },
323     {  16, "in" },
324     {  21, "vertical-in" },
325     {  26, "horizontal-in" },
326     {  32, "out" },
327     {  36, "out-from-screen-center" },
328     {  37, "vertical-out" },
329     {  42, "horizontal-out" },
330     {  272, "in-slightly" },
331     {  288, "out-slightly" },
332     {  528, "in-from-screen-center" },
333     {  0, 0 }
334 };
335 
336 struct preset_maping
337 {
338     sal_Int32   mnPresetClass;
339     sal_Int32   mnPresetId;
340     const sal_Char* mpStrPresetId;
341 };
342 
343 static const preset_maping gPresetMaping[] =
344 {
345     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 1    ,"ooo-entrance-appear" },
346     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 2    ,"ooo-entrance-fly-in" },
347     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 3    ,"ooo-entrance-venetian-blinds" },
348     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 4    ,"ooo-entrance-box" },
349     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 5    ,"ooo-entrance-checkerboard" },
350     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 6    ,"ooo-entrance-circle" },
351     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 7    ,"ooo-entrance-fly-in-slow" },
352     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 8    ,"ooo-entrance-diamond" },
353     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 9    ,"ooo-entrance-dissolve-in" },
354     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 10   ,"ooo-entrance-fade-in" },
355     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 11   ,"ooo-entrance-flash-once" },
356     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 12   ,"ooo-entrance-peek-in" },
357     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 13   ,"ooo-entrance-plus" },
358     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 14   ,"ooo-entrance-random-bars" },
359     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 15   ,"ooo-entrance-spiral-in" },
360     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 16   ,"ooo-entrance-split" },
361     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 17   ,"ooo-entrance-stretchy" },
362     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 18   ,"ooo-entrance-diagonal-squares" },
363     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 19   ,"ooo-entrance-swivel" },
364     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 20   ,"ooo-entrance-wedge" },
365     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 21   ,"ooo-entrance-wheel" },
366     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 22   ,"ooo-entrance-wipe" },
367     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 23   ,"ooo-entrance-zoom" },
368     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 24   ,"ooo-entrance-random" },
369     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 25   ,"ooo-entrance-boomerang" },
370     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 26   ,"ooo-entrance-bounce" },
371     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 27   ,"ooo-entrance-colored-lettering" },
372     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 28   ,"ooo-entrance-movie-credits" },
373     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 29   ,"ooo-entrance-ease-in" },
374     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 30   ,"ooo-entrance-float" },
375     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 31   ,"ooo-entrance-turn-and-grow" },
376     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 34   ,"ooo-entrance-breaks" },
377     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 35   ,"ooo-entrance-pinwheel" },
378     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 37   ,"ooo-entrance-rise-up" },
379     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 38   ,"ooo-entrance-falling-in" },
380     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 39   ,"ooo-entrance-thread" },
381     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 40   ,"ooo-entrance-unfold" },
382     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 41   ,"ooo-entrance-whip" },
383     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 42   ,"ooo-entrance-ascend" },
384     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 43   ,"ooo-entrance-center-revolve" },
385     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 45   ,"ooo-entrance-fade-in-and-swivel" },
386     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 47   ,"ooo-entrance-descend" },
387     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 48   ,"ooo-entrance-sling" },
388     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 49   ,"ooo-entrance-spin-in" },
389     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 50   ,"ooo-entrance-compress" },
390     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 51   ,"ooo-entrance-magnify" },
391     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 52   ,"ooo-entrance-curve-up" },
392     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 53   ,"ooo-entrance-fade-in-and-zoom" },
393     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 54   ,"ooo-entrance-glide" },
394     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 55   ,"ooo-entrance-expand" },
395     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 56   ,"ooo-entrance-flip" },
396     { ::com::sun::star::presentation::EffectPresetClass::ENTRANCE, 58   ,"ooo-entrance-fold" },
397     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 1    ,"ooo-emphasis-fill-color" },
398     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 2    ,"ooo-emphasis-font" },
399     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 3    ,"ooo-emphasis-font-color" },
400     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 4    ,"ooo-emphasis-font-size" },
401     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 5    ,"ooo-emphasis-font-style" },
402     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 6    ,"ooo-emphasis-grow-and-shrink" },
403     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 7    ,"ooo-emphasis-line-color" },
404     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 8    ,"ooo-emphasis-spin" },
405     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 9    ,"ooo-emphasis-transparency" },
406     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 10   ,"ooo-emphasis-bold-flash" },
407     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 14   ,"ooo-emphasis-blast" },
408     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 15   ,"ooo-emphasis-bold-reveal" },
409     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 16   ,"ooo-emphasis-color-over-by-word" },
410     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 18   ,"ooo-emphasis-reveal-underline" },
411     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 19   ,"ooo-emphasis-color-blend" },
412     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 20   ,"ooo-emphasis-color-over-by-letter" },
413     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 21   ,"ooo-emphasis-complementary-color" },
414     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 22   ,"ooo-emphasis-complementary-color-2" },
415     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 23   ,"ooo-emphasis-contrasting-color" },
416     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 24   ,"ooo-emphasis-darken" },
417     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 25   ,"ooo-emphasis-desaturate" },
418     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 26   ,"ooo-emphasis-flash-bulb" },
419     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 27   ,"ooo-emphasis-flicker" },
420     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 28   ,"ooo-emphasis-grow-with-color" },
421     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 30   ,"ooo-emphasis-lighten" },
422     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 31   ,"ooo-emphasis-style-emphasis" },
423     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 32   ,"ooo-emphasis-teeter" },
424     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 33   ,"ooo-emphasis-vertical-highlight" },
425     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 34   ,"ooo-emphasis-wave" },
426     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 35   ,"ooo-emphasis-blink" },
427     { ::com::sun::star::presentation::EffectPresetClass::EMPHASIS, 36   ,"ooo-emphasis-shimmer" },
428     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 1        ,"ooo-exit-disappear" },
429     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 2        ,"ooo-exit-fly-out" },
430     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 3        ,"ooo-exit-venetian-blinds" },
431     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 4        ,"ooo-exit-box" },
432     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 5        ,"ooo-exit-checkerboard" },
433     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 6        ,"ooo-exit-circle" },
434     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 7        ,"ooo-exit-crawl-out" },
435     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 8        ,"ooo-exit-diamond" },
436     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 9        ,"ooo-exit-dissolve" },
437     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 10       ,"ooo-exit-fade-out" },
438     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 11       ,"ooo-exit-flash-once" },
439     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 12       ,"ooo-exit-peek-out" },
440     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 13       ,"ooo-exit-plus" },
441     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 14       ,"ooo-exit-random-bars" },
442     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 15       ,"ooo-exit-spiral-out" },
443     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 16       ,"ooo-exit-split" },
444     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 17       ,"ooo-exit-collapse" },
445     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 18       ,"ooo-exit-diagonal-squares" },
446     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 19       ,"ooo-exit-swivel" },
447     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 20       ,"ooo-exit-wedge" },
448     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 21       ,"ooo-exit-wheel" },
449     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 22       ,"ooo-exit-wipe" },
450     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 23       ,"ooo-exit-zoom" },
451     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 24       ,"ooo-exit-random" },
452     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 25       ,"ooo-exit-boomerang" },
453     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 26       ,"ooo-exit-bounce" },
454     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 27       ,"ooo-exit-colored-lettering" },
455     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 28       ,"ooo-exit-movie-credits" },
456     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 29       ,"ooo-exit-ease-out" },
457     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 30       ,"ooo-exit-float" },
458     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 31       ,"ooo-exit-turn-and-grow" },
459     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 34       ,"ooo-exit-breaks" },
460     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 35       ,"ooo-exit-pinwheel" },
461     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 37       ,"ooo-exit-sink-down" },
462     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 38       ,"ooo-exit-swish" },
463     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 39       ,"ooo-exit-thread" },
464     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 40       ,"ooo-exit-unfold" },
465     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 41       ,"ooo-exit-whip" },
466     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 42       ,"ooo-exit-descend" },
467     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 43       ,"ooo-exit-center-revolve" },
468     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 45       ,"ooo-exit-fade-out-and-swivel" },
469     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 47       ,"ooo-exit-ascend" },
470     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 48       ,"ooo-exit-sling" },
471     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 53       ,"ooo-exit-fade-out-and-zoom" },
472     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 55       ,"ooo-exit-contract" },
473     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 49       ,"ooo-exit-spin-out" },
474     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 50       ,"ooo-exit-stretchy" },
475     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 51       ,"ooo-exit-magnify" },
476     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 52       ,"ooo-exit-curve-down" },
477     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 54       ,"ooo-exit-glide" },
478     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 56       ,"ooo-exit-flip" },
479     { ::com::sun::star::presentation::EffectPresetClass::EXIT, 58       ,"ooo-exit-fold" },
480 
481 
482 
483 
484     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 16     ,"ooo-motionpath-4-point-star" },
485     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 5      ,"ooo-motionpath-5-point-star" },
486     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 11     ,"ooo-motionpath-6-point-star" },
487     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 17     ,"ooo-motionpath-8-point-star" },
488     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 1      ,"ooo-motionpath-circle" },
489     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 6      ,"ooo-motionpath-crescent-moon" },
490     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 3      ,"ooo-motionpath-diamond" },
491     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 13     ,"ooo-motionpath-equal-triangle" },
492     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 12     ,"ooo-motionpath-oval" },
493     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 9      ,"ooo-motionpath-heart" },
494     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 4      ,"ooo-motionpath-hexagon" },
495     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 10     ,"ooo-motionpath-octagon" },
496     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 14     ,"ooo-motionpath-parallelogram" },
497     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 15     ,"ooo-motionpath-pentagon" },
498     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 2      ,"ooo-motionpath-right-triangle" },
499     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 7      ,"ooo-motionpath-square" },
500     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 18     ,"ooo-motionpath-teardrop" },
501     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 8      ,"ooo-motionpath-trapezoid" },
502     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 37     ,"ooo-motionpath-arc-down" },
503     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 51     ,"ooo-motionpath-arc-left" },
504     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 58     ,"ooo-motionpath-arc-right" },
505     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 44     ,"ooo-motionpath-arc-up" },
506     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 41     ,"ooo-motionpath-bounce-left" },
507     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 54     ,"ooo-motionpath-bounce-right" },
508     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 48     ,"ooo-motionpath-curvy-left" },
509     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 61     ,"ooo-motionpath-curvy-right" },
510     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 60     ,"ooo-motionpath-decaying-wave" },
511     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 49     ,"ooo-motionpath-diagonal-down-right" },
512     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 56     ,"ooo-motionpath-diagonal-up-right" },
513     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 42     ,"ooo-motionpath-down" },
514     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 52     ,"ooo-motionpath-funnel" },
515     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 53     ,"ooo-motionpath-spring" },
516     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 62     ,"ooo-motionpath-stairs-down" },
517     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 50     ,"ooo-motionpath-turn-down" },
518     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 36     ,"ooo-motionpath-turn-down-right" },
519     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 43     ,"ooo-motionpath-turn-up" },
520     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 57     ,"ooo-motionpath-turn-up-right" },
521     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 64     ,"ooo-motionpath-up" },
522     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 47     ,"ooo-motionpath-wave" },
523     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 38     ,"ooo-motionpath-zigzag" },
524     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 31     ,"ooo-motionpath-bean" },
525     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 25     ,"ooo-motionpath-buzz-saw" },
526     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 20     ,"ooo-motionpath-curved-square" },
527     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 21     ,"ooo-motionpath-curved-x" },
528     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 23     ,"ooo-motionpath-curvy-star" },
529     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 28     ,"ooo-motionpath-figure-8-four" },
530     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 26     ,"ooo-motionpath-horizontal-figure-8" },
531     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 34     ,"ooo-motionpath-inverted-square" },
532     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 33     ,"ooo-motionpath-inverted-triangle" },
533     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 24     ,"ooo-motionpath-loop-de-loop" },
534     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 29     ,"ooo-motionpath-neutron" },
535     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 27     ,"ooo-motionpath-peanut" },
536     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 32     ,"ooo-motionpath-clover" },
537     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 19     ,"ooo-motionpath-pointy-star" },
538     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 30     ,"ooo-motionpath-swoosh" },
539     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 22     ,"ooo-motionpath-vertical-figure-8" },
540     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 35     ,"ooo-motionpath-left" },
541     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 63     ,"ooo-motionpath-right" },
542     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 55     ,"ooo-motionpath-spiral-left" },
543     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 46     ,"ooo-motionpath-spiral-right" },
544     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 40     ,"ooo-motionpath-sine-wave" },
545     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 59     ,"ooo-motionpath-s-curve-1" },
546     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 39     ,"ooo-motionpath-s-curve-2" },
547     { ::com::sun::star::presentation::EffectPresetClass::MOTIONPATH, 45     ,"ooo-motionpath-heartbeat" },
548 
549 
550     { 0,0,0 }
551 };
552 
553 } // namespace ppt
554 
555 #endif
556