/**************************************************************
 *
 * 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 _SD_CUSTOMANIMATION_HRC
#define _SD_CUSTOMANIMATION_HRC

#include "glob.hrc"

// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// attention, we have 200 ids free after RID_CUSTOMANIMATION_START
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

#define DLG_CUSTOMANIMATIONPANE							RID_CUSTOMANIMATION_START+0
#define DLG_CUSTOMANIMATION								RID_CUSTOMANIMATION_START+1
#define DLG_CUSTOMANIMATION_CREATE						RID_CUSTOMANIMATION_START+2
#define DLG_SLIDE_TRANSITION_PANE						RID_CUSTOMANIMATION_START+3
#define DLG_CUSTOMANIMATION_SCHEMES_PANE				RID_CUSTOMANIMATION_START+4
#define DLG_ANIMATION_SCHEMES_PANE						RID_CUSTOMANIMATION_START+5

#define RID_EFFECT_CONTEXTMENU							RID_CUSTOMANIMATION_START+0
#define RID_TP_CUSTOMANIMATION_EFFECT					RID_CUSTOMANIMATION_START+1
#define RID_TP_CUSTOMANIMATION_DURATION					RID_CUSTOMANIMATION_START+2
#define RID_TP_CUSTOMANIMATION_TEXT						RID_CUSTOMANIMATION_START+3
#define RID_TP_CUSTOMANIMATION_ENTRANCE					RID_CUSTOMANIMATION_START+4
#define RID_TP_CUSTOMANIMATION_EMPHASIS					RID_CUSTOMANIMATION_START+5
#define RID_TP_CUSTOMANIMATION_EXIT						RID_CUSTOMANIMATION_START+6
#define RID_TP_CUSTOMANIMATION_MOTIONPATH				RID_CUSTOMANIMATION_START+7
#define RID_TP_CUSTOMANIMATION_MISCEFFECTS				RID_CUSTOMANIMATION_START+8
#define RID_CUSTOMANIMATION_ROTATION_POPUP				RID_CUSTOMANIMATION_START+9
#define RID_CUSTOMANIMATION_FONTSIZE_POPUP				RID_CUSTOMANIMATION_START+10
#define RID_CUSTOMANIMATION_SCALE_POPUP					RID_CUSTOMANIMATION_START+11
#define RID_CUSTOMANIMATION_FONTSTYLE_POPUP				RID_CUSTOMANIMATION_START+12

#define IMG_CUSTOMANIMATION_ON_CLICK					RID_CUSTOMANIMATION_START+0
#define IMG_CUSTOMANIMATION_ON_CLICK_H					RID_CUSTOMANIMATION_START+1
#define IMG_CUSTOMANIMATION_AFTER_PREVIOUS				RID_CUSTOMANIMATION_START+2
#define IMG_CUSTOMANIMATION_AFTER_PREVIOUS_H			RID_CUSTOMANIMATION_START+3
#define IMG_CUSTOMANIMATION_ENTRANCE_EFFECT				RID_CUSTOMANIMATION_START+4
#define IMG_CUSTOMANIMATION_ENTRANCE_EFFECT_H			RID_CUSTOMANIMATION_START+5
#define IMG_CUSTOMANIMATION_EMPHASIS_EFFECT				RID_CUSTOMANIMATION_START+6
#define IMG_CUSTOMANIMATION_EMPHASIS_EFFECT_H			RID_CUSTOMANIMATION_START+7
#define IMG_CUSTOMANIMATION_EXIT_EFFECT					RID_CUSTOMANIMATION_START+8
#define IMG_CUSTOMANIMATION_EXIT_EFFECT_H				RID_CUSTOMANIMATION_START+9
#define IMG_CUSTOMANIMATION_MOTION_PATH					RID_CUSTOMANIMATION_START+10
#define IMG_CUSTOMANIMATION_MOTION_PATH_H				RID_CUSTOMANIMATION_START+11
#define IMG_CUSTOMANIMATION_OLE							RID_CUSTOMANIMATION_START+12
#define IMG_CUSTOMANIMATION_OLE_H						RID_CUSTOMANIMATION_START+13
#define IMG_CUSTOMANIMATION_MEDIA_PLAY					RID_CUSTOMANIMATION_START+14
#define IMG_CUSTOMANIMATION_MEDIA_PLAY_H				RID_CUSTOMANIMATION_START+15
#define IMG_CUSTOMANIMATION_MEDIA_PAUSE					RID_CUSTOMANIMATION_START+16
#define IMG_CUSTOMANIMATION_MEDIA_PAUSE_H				RID_CUSTOMANIMATION_START+17
#define IMG_CUSTOMANIMATION_MEDIA_STOP					RID_CUSTOMANIMATION_START+18
#define IMG_CUSTOMANIMATION_MEDIA_STOP_H				RID_CUSTOMANIMATION_START+19

#define STR_CUSTOMANIMATION_DURATION_VERY_SLOW			RID_CUSTOMANIMATION_START+0
#define STR_CUSTOMANIMATION_DURATION_SLOW				RID_CUSTOMANIMATION_START+1
#define STR_CUSTOMANIMATION_DURATION_NORMAL				RID_CUSTOMANIMATION_START+2
#define STR_CUSTOMANIMATION_DURATION_FAST				RID_CUSTOMANIMATION_START+3
#define STR_CUSTOMANIMATION_DURATION_VERY_FAST			RID_CUSTOMANIMATION_START+4
#define STR_CUSTOMANIMATION_REPEAT_NONE					RID_CUSTOMANIMATION_START+5
#define STR_CUSTOMANIMATION_REPEAT_UNTIL_NEXT_CLICK		RID_CUSTOMANIMATION_START+6
#define STR_CUSTOMANIMATION_REPEAT_UNTIL_END_OF_SLIDE	RID_CUSTOMANIMATION_START+7
#define STR_CUSTOMANIMATION_DIRECTION_PROPERTY			RID_CUSTOMANIMATION_START+8
#define STR_CUSTOMANIMATION_ZOOM_PROPERTY				RID_CUSTOMANIMATION_START+9
#define STR_CUSTOMANIMATION_SPOKES_PROPERTY				RID_CUSTOMANIMATION_START+10
#define STR_CUSTOMANIMATION_FIRST_COLOR_PROPERTY		RID_CUSTOMANIMATION_START+11
#define STR_CUSTOMANIMATION_SECOND_COLOR_PROPERTY		RID_CUSTOMANIMATION_START+12
#define STR_CUSTOMANIMATION_FILL_COLOR_PROPERTY			RID_CUSTOMANIMATION_START+13
#define STR_CUSTOMANIMATION_STYLE_PROPERTY				RID_CUSTOMANIMATION_START+14
#define STR_CUSTOMANIMATION_FONT_PROPERTY				RID_CUSTOMANIMATION_START+15
#define STR_CUSTOMANIMATION_FONT_COLOR_PROPERTY			RID_CUSTOMANIMATION_START+16
#define STR_CUSTOMANIMATION_FONT_SIZE_STYLE_PROPERTY	RID_CUSTOMANIMATION_START+17
#define STR_CUSTOMANIMATION_FONT_STYLE_PROPERTY			RID_CUSTOMANIMATION_START+18
#define STR_CUSTOMANIMATION_LINE_COLOR_PROPERTY			RID_CUSTOMANIMATION_START+19
#define STR_CUSTOMANIMATION_SIZE_PROPERTY				RID_CUSTOMANIMATION_START+20
#define STR_CUSTOMANIMATION_AMOUNT_PROPERTY				RID_CUSTOMANIMATION_START+21
#define STR_CUSTOMANIMATION_COLOR_PROPERTY				RID_CUSTOMANIMATION_START+22
#define STR_CUSTOMANIMATION_NO_SOUND					RID_CUSTOMANIMATION_START+23
#define STR_CUSTOMANIMATION_STOP_PREVIOUS_SOUND			RID_CUSTOMANIMATION_START+24
#define	STR_CUSTOMANIMATION_SCALE_PROPERTY				RID_CUSTOMANIMATION_START+25
#define STR_CUSTOMANIMATION_SAMPLE						RID_CUSTOMANIMATION_START+26
#define STR_CUSTOMANIMATION_BROWSE_SOUND				RID_CUSTOMANIMATION_START+27
#define STR_CUSTOMANIMATION_1_SPOKES					RID_CUSTOMANIMATION_START+28
#define STR_CUSTOMANIMATION_2_SPOKES					RID_CUSTOMANIMATION_START+29
#define STR_CUSTOMANIMATION_3_SPOKES					RID_CUSTOMANIMATION_START+30
#define STR_CUSTOMANIMATION_4_SPOKES					RID_CUSTOMANIMATION_START+31
#define STR_CUSTOMANIMATION_8_SPOKES					RID_CUSTOMANIMATION_START+32
#define STR_CUSTOMANIMATION_INSTANT						RID_CUSTOMANIMATION_START+33
#define STR_CUSTOMANIMATION_GRADUAL						RID_CUSTOMANIMATION_START+34
#define STR_CUSTOMANIMATION_TRIGGER						RID_CUSTOMANIMATION_START+35
#define STR_CUSTOMANIMATION_LIST_HELPTEXT				RID_CUSTOMANIMATION_START+36

#define CM_WITH_CLICK				1
#define CM_WITH_PREVIOUS			2
#define CM_AFTER_PREVIOUS			3
#define CM_OPTIONS					4
#define CM_DURATION					5
#define CM_REMOVE					6
#define CM_CREATE					7

#define CM_QUARTER_SPIN				1
#define CM_HALF_SPIN				2
#define CM_FULL_SPIN				3
#define CM_TWO_SPINS				4
#define CM_CLOCKWISE				5
#define CM_COUNTERCLOCKWISE			6

#define CM_SIZE_25					25
#define CM_SIZE_50					50
#define CM_SIZE_150					150
#define CM_SIZE_400					400
#define CM_HORIZONTAL				1
#define CM_VERTICAL					2
#define CM_BOTH						3

#define CM_BOLD						1
#define CM_ITALIC					2
#define CM_UNDERLINED				3

#endif // _SD_CUSTOMANIMATION_HRC
