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_SD_SOURCE_FILTER_PPT_PPTANIMATIONS_HXX
21 #define INCLUDED_SD_SOURCE_FILTER_PPT_PPTANIMATIONS_HXX
23 #include <com/sun/star/uno/Any.h>
26 #include <sal/types.h>
33 // old transition types
34 #define PPT_TRANSITION_TYPE_NONE 0
35 #define PPT_TRANSITION_TYPE_RANDOM 1
36 #define PPT_TRANSITION_TYPE_BLINDS 2
37 #define PPT_TRANSITION_TYPE_CHECKER 3
38 #define PPT_TRANSITION_TYPE_COVER 4
39 #define PPT_TRANSITION_TYPE_DISSOLVE 5
40 #define PPT_TRANSITION_TYPE_FADE 6
41 #define PPT_TRANSITION_TYPE_PULL 7 // Uncover in MS-PPT Specs
42 #define PPT_TRANSITION_TYPE_RANDOM_BARS 8
43 #define PPT_TRANSITION_TYPE_STRIPS 9
44 #define PPT_TRANSITION_TYPE_WIPE 10
45 #define PPT_TRANSITION_TYPE_ZOOM 11 // Box In/Out in MS-PPT Specs
46 #define PPT_TRANSITION_TYPE_SPLIT 13
49 #define PPT_TRANSITION_TYPE_DIAMOND 17
50 #define PPT_TRANSITION_TYPE_PLUS 18
51 #define PPT_TRANSITION_TYPE_WEDGE 19
52 #define PPT_TRANSITION_TYPE_PUSH 20
53 #define PPT_TRANSITION_TYPE_COMB 21
54 #define PPT_TRANSITION_TYPE_NEWSFLASH 22
55 #define PPT_TRANSITION_TYPE_SMOOTHFADE 23 // Alpha Fade in MS-PPT Specs
56 #define PPT_TRANSITION_TYPE_WHEEL 26
57 #define PPT_TRANSITION_TYPE_CIRCLE 27
60 #define DFF_msofbtAnimEvent 0xf125
61 #define DFF_msofbtAnimNode 0xf127
62 #define DFF_msofbtAnimTrigger 0xf128
63 #define DFF_msofbtAnimValue 0xf129
64 #define DFF_msofbtAnimateTarget 0xf12a
65 #define DFF_msofbtAnimate 0xf12b
66 #define DFF_msofbtAnimateColor 0xf12c
67 #define DFF_msofbtAnimateFilter 0xf12d
68 #define DFF_msofbtAnimateMotion 0xf12e
69 #define DFF_msofbtAnimateRotation 0xf12f
70 #define DFF_msofbtAnimateScale 0xf130
71 #define DFF_msofbtAnimateSet 0xf131
72 #define DFF_msofbtAnimCommand 0xf132
73 #define DFF_msofbtAnimateTargetSettings 0xf133
74 #define DFF_msofbtAnimateData 0xf134
75 #define DFF_msofbtAnimateColorData 0xf135
76 #define DFF_msofbtAnimateFilterData 0xf136
77 #define DFF_msofbtAnimateMotionData 0xf137
78 #define DFF_msofbtAnimateScaleData 0xf139
79 #define DFF_msofbtAnimateSetData 0xf13a
80 #define DFF_msofbtCommandData 0xf13b
81 #define DFF_msofbtAnimateTargetElement 0xf13c
82 #define DFF_msofbtAnimPropertySet 0xf13d
83 #define DFF_msofbtAnimateAttributeNames 0xf13e
84 #define DFF_msofbtAnimKeyPoints 0xf13f
85 #define DFF_msofbtAnimIteration 0xf140
86 #define DFF_msofbtAnimAction 0xf141 // correct name??
87 #define DFF_msofbtAnimAttributeValue 0xf142
88 #define DFF_msofbtAnimKeyTime 0xf143
89 #define DFF_msofbtAnimGroup 0xf144
90 #define DFF_msofbtAnimSubGoup 0xf145
91 #define DFF_msofbtAnimateRotationData 0xf138
92 #define DFF_msofbtAnimReference 0x2afb
96 #define DFF_ANIM_RUNTIMECONTEXT 2
97 #define DFF_ANIM_PATH_EDIT_MODE 3
98 #define DFF_ANIM_COLORSPACE 4
99 #define DFF_ANIM_DIRECTION 5 // TODO: Conflict?
100 #define DFF_ANIM_MASTERREL 5 // TODO: Conflict?
101 #define DFF_ANIM_OVERRIDE 6
102 #define DFF_ANIM_PRESET_ID 9
103 #define DFF_ANIM_PRESET_SUB_TYPE 10
104 #define DFF_ANIM_PRESET_CLASS 11
105 #define DFF_ANIM_AFTEREFFECT 13
106 #define DFF_ANIM_ENDAFTERSLIDE 15
107 #define DFF_ANIM_TIMEFILTER 16
108 #define DFF_ANIM_EVENT_FILTER 17
109 #define DFF_ANIM_GROUP_ID 19
110 #define DFF_ANIM_NODE_TYPE 20
111 #define DFF_ANIM_VOLUME 22
112 #define DFF_ANIM_PROPERTY_ID_COUNT (DFF_ANIM_VOLUME + 1)
115 #define DFF_ANIM_PROP_TYPE_BYTE 0
116 #define DFF_ANIM_PROP_TYPE_INT32 1
117 #define DFF_ANIM_PROP_TYPE_FLOAT 2
118 #define DFF_ANIM_PROP_TYPE_UNISTRING 3
120 #define DFF_ANIM_PRESS_CLASS_USER_DEFINED 0
121 #define DFF_ANIM_PRESS_CLASS_ENTRANCE 1
122 #define DFF_ANIM_PRESS_CLASS_EXIT 2
123 #define DFF_ANIM_PRESS_CLASS_EMPHASIS 3
124 #define DFF_ANIM_PRESS_CLASS_MOTIONPATH 4
125 #define DFF_ANIM_PRESS_CLASS_OLE_ACTION 5
126 #define DFF_ANIM_PRESS_CLASS_MEDIACALL 6
129 #define DFF_ANIM_NODE_TYPE_ON_CLICK 1
130 #define DFF_ANIM_NODE_TYPE_WITH_PREVIOUS 2
131 #define DFF_ANIM_NODE_TYPE_AFTER_PREVIOUS 3
132 #define DFF_ANIM_NODE_TYPE_MAIN_SEQUENCE 4
133 #define DFF_ANIM_NODE_TYPE_INTERACTIVE_SEQ 5
134 #define DFF_ANIM_NODE_TYPE_CLICK_PARALLEL 6
135 #define DFF_ANIM_NODE_TYPE_WITH_GROUP 7
136 #define DFF_ANIM_NODE_TYPE_AFTER_GROUP 8
137 #define DFF_ANIM_NODE_TYPE_TIMING_ROOT 9
139 /* constants for fill entry in AnimationNode */
140 const sal_Int32 mso_Anim_GroupType_PAR
= 0;
141 const sal_Int32 mso_Anim_GroupType_SEQ
= 1;
142 const sal_Int32 mso_Anim_GroupType_NODE
= 3;
143 const sal_Int32 mso_Anim_GroupType_MEDIA
= 4;
145 /* constants for fill entry in AnimationNode */
146 const sal_Int32 mso_Anim_Fill_ALWAYS
= 1;
147 const sal_Int32 mso_Anim_Fill_WHENOFF
= 2;
148 const sal_Int32 mso_Anim_Fill_NEVER
= 3;
150 /* constants for fill entry in AnimationNode */
151 const sal_Int32 mso_Anim_Fill_REMOVE
= 1;
152 const sal_Int32 mso_Anim_Fill_FREEZE
= 2;
153 const sal_Int32 mso_Anim_Fill_HOLD
= 3;
155 /* constants for behaviour entry in PPtAnimationNode */
156 const sal_Int32 mso_Anim_Behaviour_FILTER
= 24;
157 const sal_Int32 mso_Anim_Behaviour_ANIMATION
= 25;
159 typedef ::std::map
< sal_Int32
, css::uno::Any
> PropertySetMap_t
;
164 PropertySetMap_t maProperties
;
166 bool hasProperty( sal_Int32 nProperty
) const;
167 css::uno::Any
getProperty( sal_Int32 nProperty
) const;
170 /** this atom is the first entry in each animation group */
174 /** see mso_Anim_GroupType_? */
175 sal_Int32 mnGroupType
;
177 /** see mso_Anim_Restart_? */
180 /** see mso_Anim_Fill_? */
183 /** see mso_Anim_Behaviour_? */
184 sal_Int32 mnNodeType
;
186 /** duration of this group in 1000th seconds */
187 sal_Int32 mnDuration
;
189 sal_Int32 mnU1
, mnU3
, mnU4
;
197 , mnU1(0), mnU3(0), mnU4(0)
202 friend SvStream
& WriteAnimationNode(SvStream
& rOut
, AnimationNode
const & rAtom
);
209 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */