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

#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 FL_EFFECT					 1
#define PB_ADD_EFFECT				 2
#define PB_CHANGE_EFFECT			 3
#define PB_REMOVE_EFFECT			 4
#define FL_MODIFY					 5
#define FT_START					 6
#define LB_START					 7
#define FT_PROPERTY					 8
#define LB_PROPERTY					 9
#define PB_PROPERTY_MORE			10
#define FT_SPEED					12
#define CB_SPEED					13
#define CT_CUSTOM_ANIMATION_LIST	14
#define FT_CHANGE_ORDER				15
#define PB_MOVE_UP					16
#define PB_MOVE_DOWN				17
#define FL_SEPERATOR1				18
#define PB_PLAY						19
#define PB_SLIDE_SHOW				20
#define FL_SEPERATOR2				21
#define CB_AUTOPREVIEW				22

#endif // _SD_CUSTOMANIMATIONPANE_HXX
