X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Fdevel-api%2Fvisuals%2Fvisual-properties-devel.h;h=6a5f51d75b99130c85de6bab20c467fc5c4a0476;hp=9c268dbaeca9cc1e7dad1385a54bd0500bfdd0bc;hb=798ef5fa1591aa78851e9e3d08fe37411192176a;hpb=9217ec0c1d483607ed6c8f08a1d9c238657ba5d6 diff --git a/dali-toolkit/devel-api/visuals/visual-properties-devel.h b/dali-toolkit/devel-api/visuals/visual-properties-devel.h index 9c268db..6a5f51d 100644 --- a/dali-toolkit/devel-api/visuals/visual-properties-devel.h +++ b/dali-toolkit/devel-api/visuals/visual-properties-devel.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_DEVEL_API_VISUALS_VISUAL_PROPERTIES_DEVEL_H /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,95 +23,119 @@ namespace Dali { - namespace Toolkit { - namespace DevelVisual { - /** * @brief All the visual types. */ enum Type { - BORDER = Dali::Toolkit::Visual::BORDER, - COLOR = Dali::Toolkit::Visual::COLOR, - GRADIENT = Dali::Toolkit::Visual::GRADIENT, - IMAGE = Dali::Toolkit::Visual::IMAGE, - MESH = Dali::Toolkit::Visual::MESH, - PRIMITIVE = Dali::Toolkit::Visual::PRIMITIVE, - WIREFRAME = Dali::Toolkit::Visual::WIREFRAME, - - TEXT = WIREFRAME + 1, ///< Renders text. + BORDER = Dali::Toolkit::Visual::BORDER, + COLOR = Dali::Toolkit::Visual::COLOR, + GRADIENT = Dali::Toolkit::Visual::GRADIENT, + IMAGE = Dali::Toolkit::Visual::IMAGE, + MESH = Dali::Toolkit::Visual::MESH, + PRIMITIVE = Dali::Toolkit::Visual::PRIMITIVE, + WIREFRAME = Dali::Toolkit::Visual::WIREFRAME, + TEXT = Dali::Toolkit::Visual::TEXT, + N_PATCH = Dali::Toolkit::Visual::N_PATCH, + SVG = Dali::Toolkit::Visual::SVG, + ANIMATED_IMAGE = Dali::Toolkit::Visual::ANIMATED_IMAGE, + + ANIMATED_GRADIENT = ANIMATED_IMAGE + 1, ///< Renders an animated gradient. + ANIMATED_VECTOR_IMAGE = ANIMATED_IMAGE + 2, ///< Renders an animated vector image. + ARC = ANIMATED_IMAGE + 3, ///< Renders an arc. }; +/** + * @brief Visual Properties + */ namespace Property { - enum Type { - TYPE = Dali::Toolkit::Visual::Property::TYPE, - SHADER = Dali::Toolkit::Visual::Property::SHADER, + TYPE = Dali::Toolkit::Visual::Property::TYPE, + SHADER = Dali::Toolkit::Visual::Property::SHADER, + TRANSFORM = Dali::Toolkit::Visual::Property::TRANSFORM, + PREMULTIPLIED_ALPHA = Dali::Toolkit::Visual::Property::PREMULTIPLIED_ALPHA, + MIX_COLOR = Dali::Toolkit::Visual::Property::MIX_COLOR, + OPACITY = Dali::Toolkit::Visual::Property::OPACITY, /** - * @brief The transform used by the visual. - * @details Name "transform", type Property::Map. + * @brief The fitting mode of the visual + * @details Name "fittingMode", type FittingMode (Property::INTEGER) or Property::STRING. + * @see DevelVisual::FittingMode + * @note The default is defined by the type of visual (if it's suitable to be stretched or not). + */ + VISUAL_FITTING_MODE = OPACITY + 1, + /** + * @brief The radius for the rounded corners of the visual + * @details Name "cornerRadius", type Property::FLOAT, animatable * @note Optional. - * @see DevelVisual::Transform::Property */ - TRANSFORM = SHADER+1//Dali::Toolkit::Visual::Property::SHADER+1 + CORNER_RADIUS = OPACITY + 2, + + /** + * @brief Whether the corner radius value is relative (percentage [0.0f to 1.0f] of the visual size) or absolute (in world units). + * @details Name "cornerRadiusPolicy", type Property::INTEGER. + * @see Policy::Type + * @note By default, it is ABSOLUTE to the visual's size. + * If it it RELATIVE, the corner radius value is relative to the smaller of the visual width and visual height. + */ + CORNER_RADIUS_POLICY = OPACITY + 3, }; -} //namespace Property +} // namespace Property -namespace Transform +/** + * @brief The values of this enum determine how the visual should be fit to the view + */ +enum FittingMode { + FIT_KEEP_ASPECT_RATIO, ///< The visual should be scaled to fit, preserving aspect ratio + FILL, ///< The visual should be stretched to fill, not preserving aspect ratio + OVER_FIT_KEEP_ASPECT_RATIO, ///< The visual should be scaled to fit, preserving aspect ratio. The visual will be filled without empty area, and outside is cropped away. + CENTER, ///< The visual should keep original size of image. It is not scaled and not strecthed. + FIT_HEIGHT, ///< The visual should be scaled to fit, preserving aspect ratio. Height is scaled proportionately to maintain aspect ratio. It will be deprecated. + FIT_WIDTH ///< The visual should be scaled to fit, preserving aspect ratio. Width is scaled proportionately to maintain aspect ratio. It will be deprecated. +}; +/** + * @brief Devel Visual Transform for the offset or size. + */ +namespace Transform +{ +/** + * @brief Visual Transform Property. + */ namespace Property { - +/** + * @brief Enumeration for the type of Transform Property. + */ enum Type { - /** - * @brief Offset of the visual. It can be either relative (percentage of the parent) - * or absolute (in world units). - * @details Name "offset", type Property::VECTOR2 - */ - OFFSET, - - /** - * @brief Size of the visual. It can be either relative (percentage of the parent) - * or absolute (in world units). - * @details Name "size", type Property::VECTOR2 - */ - SIZE, - - /** - * @brief The origin of the visual within its control area. - * @details Name "origin", type Align::Type (Property::INTEGER) or Property::STRING. - * @see Toolkit::Align - */ - ORIGIN, - - /** - * @brief The anchor-point of the visual - * @details Name "anchorPoint", type Align::Type (Property::INTEGER) or Property::STRING. - * @see Toolkit::Align - */ - ANCHOR_POINT, + SIZE_POLICY = Dali::Toolkit::Visual::Transform::Property::SIZE_POLICY, /** - * @brief Indicates which components of the offset and size are relative - * (percentage of the parent) or absolute (in world units). - * 0 indicates the component is relative, and 1 absolute. - * @details Name "offsetSizeMode", type Property::VECTOR4 + * @brief Extra size value that will be added to the computed visual size. + * @details Name "extraSize", type Vector2. + * + * @note It is an absolute value. + * The property can be used when a user want to set a visual size as a combined value of `relative` and `absolute`. + * For example, when a user want to set a visual size to (ControlSize * 2 + 10), + * The transform map will be, + * transformMap.Add( Transform::Property::SIZE, Vector2( 2.0f, 2.0f ) ) + * .Add( Transform::Property::SIZE_POLICY, Vector2( Transform::Policy::Relative, Transform::Policy::Relative ) ) + * .Add( Transform::Property::EXTRA_SIZE, Vector2( 10.0f, 10.0f ) ); */ - OFFSET_SIZE_MODE + EXTRA_SIZE = SIZE_POLICY + 1, }; -} //namespace Property +} // namespace Property } // namespace Transform