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

#include <rtl/ustring.hxx>

namespace xmloff { namespace EnhancedCustomShapeToken {

	enum EnhancedCustomShapeTokenEnum
	{
		EAS_type,
		EAS_name,
		EAS_mirror_horizontal,
		EAS_mirror_vertical,
		EAS_viewBox,
		EAS_text_rotate_angle,
		EAS_extrusion_allowed,
		EAS_text_path_allowed,
		EAS_concentric_gradient_fill_allowed,
		EAS_extrusion,
		EAS_extrusion_brightness,
		EAS_extrusion_depth,
		EAS_extrusion_diffusion,
		EAS_extrusion_number_of_line_segments,
		EAS_extrusion_light_face,
		EAS_extrusion_first_light_harsh,
		EAS_extrusion_second_light_harsh,
		EAS_extrusion_first_light_level,
		EAS_extrusion_second_light_level,
		EAS_extrusion_first_light_direction,
		EAS_extrusion_second_light_direction,
		EAS_extrusion_metal,
		EAS_shade_mode,
		EAS_extrusion_rotation_angle,
		EAS_extrusion_rotation_center,
		EAS_extrusion_shininess,
		EAS_extrusion_skew,
		EAS_extrusion_specularity,
		EAS_projection,
		EAS_extrusion_viewpoint,
		EAS_extrusion_origin,
		EAS_extrusion_color,
		EAS_enhanced_path,
		EAS_path_stretchpoint_x,
		EAS_path_stretchpoint_y,
		EAS_text_areas,
		EAS_glue_points,
		EAS_glue_point_type,
		EAS_glue_point_leaving_directions,
		EAS_text_path,
		EAS_text_path_mode,
		EAS_text_path_scale,
		EAS_text_path_same_letter_heights,
		EAS_modifiers,
		EAS_equation,
		EAS_formula,
		EAS_handle,
		EAS_handle_mirror_horizontal,
		EAS_handle_mirror_vertical,
		EAS_handle_switched,
		EAS_handle_position,
		EAS_handle_range_x_minimum,
		EAS_handle_range_x_maximum,
		EAS_handle_range_y_minimum,
		EAS_handle_range_y_maximum,
		EAS_handle_polar,
		EAS_handle_radius_range_minimum,
		EAS_handle_radius_range_maximum,

		EAS_CustomShapeEngine,
		EAS_CustomShapeData,
		EAS_Type,
		EAS_MirroredX,
		EAS_MirroredY,
		EAS_ViewBox,
		EAS_TextRotateAngle,
		EAS_ExtrusionAllowed,
		EAS_ConcentricGradientFillAllowed,
		EAS_TextPathAllowed,
		EAS_Extrusion,
		EAS_Equations,
		EAS_Equation,
		EAS_Path,
		EAS_TextPath,
		EAS_Handles,
		EAS_Handle,
		EAS_Brightness,
		EAS_Depth,
		EAS_Diffusion,
		EAS_NumberOfLineSegments,
		EAS_LightFace,
		EAS_FirstLightHarsh,
		EAS_SecondLightHarsh,
		EAS_FirstLightLevel,
		EAS_SecondLightLevel,
		EAS_FirstLightDirection,
		EAS_SecondLightDirection,
		EAS_Metal,
		EAS_ShadeMode,
		EAS_RotateAngle,
		EAS_RotationCenter,
		EAS_Shininess,
		EAS_Skew,
		EAS_Specularity,
		EAS_ProjectionMode,
		EAS_ViewPoint,
		EAS_Origin,
		EAS_Color,
		EAS_Switched,
		EAS_Polar,
		EAS_RangeXMinimum,
		EAS_RangeXMaximum,
		EAS_RangeYMinimum,
		EAS_RangeYMaximum,
		EAS_RadiusRangeMinimum,
		EAS_RadiusRangeMaximum,
		EAS_Coordinates,
		EAS_Segments,
		EAS_StretchX,
		EAS_StretchY,
		EAS_TextFrames,
		EAS_GluePoints,
		EAS_GluePointLeavingDirections,
		EAS_GluePointType,
		EAS_TextPathMode,
		EAS_ScaleX,
		EAS_SameLetterHeights,
		EAS_Position,
		EAS_AdjustmentValues,

		EAS_Last,
		EAS_NotFound
	};

	EnhancedCustomShapeTokenEnum EASGet( const rtl::OUString& );
	rtl::OUString EASGet( const EnhancedCustomShapeTokenEnum );
}
}

#endif
