#ifndef DALI_TOOLKIT_VISUAL_BASE_H
#define DALI_TOOLKIT_VISUAL_BASE_H
/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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.
namespace Visual
{
+
/**
* @brief A Visual provides a renderer for drawing a control component. A control may have multiple visuals.
*
* | transform | MAP |
*
* where \b customShader is a map with at least one of the following properties:
- * | %Property Name | Type | Required | Default | Description |
- * |-------------------------|------------------|----------|---------|-------------|
- * | vertexShader | STRING | No | "" | Vertex shader code|
- * | fragmentShader | STRING | No | "" | Fragment shader code|
- * | subdivideGridX | INTEGER | No | 1 | How to subdivide the grid along X |
- * | subdivideGridY | INTEGER | No | 1 | How to subdivide the grid along Y |
- * | shaderHints | INTEGER or ARRAY of STRING | No | NONE | Bitmask of hints @sa Dali::Shader::Hint |
+ * | %Property Name | Type | Required | Default | Description |
+ * |-------------------------|----------------------------|----------|---------|-----------------------------------------|
+ * | vertexShader | STRING | No | "" | Vertex shader code |
+ * | fragmentShader | STRING | No | "" | Fragment shader code |
+ * | subdivideGridX | INTEGER | No | 1 | How to subdivide the grid along X |
+ * | subdivideGridY | INTEGER | No | 1 | How to subdivide the grid along Y |
+ * | shaderHints | INTEGER or ARRAY of STRING | No | NONE | Bitmask of hints @sa Dali::Shader::Hint |
*
* and \b transform is a map with the following properties:
- * | %Property Name | Type | Required | Default |Description |
- * |-------------------------|------------------|----------|---------|------------|
- * | offset | VECTOR2 | No | (0,0) | Offset of visual from origin |
- * | size | VECTOR2 | No | (1,1) | size of visual |
- * | origin | INTEGER or STRING | No | CENTER | origin of the visual @sa Dali::Toolkit::Align |
- * | anchorPoint | INTEGER or STRING | No | CENTER | anchor point of the visual @sa Dali::Toolkit::Align |
- * | offsetSizeMode | VECTOR4 | No | (0,0,0,0) | See below |
- *
- *
- * offsetSizeMode describes whether the offset and the size are
- * relative or absolute by using 0 or 1 respectively in the corresponding
- * components (offsetSizeMode.xy for offset.xy; offsetSizeMode.zw for size.xy).
+ * | %Property Name | Type | Required | Default | Description |
+ * |-------------------------|-------------------|----------|------------------------|-----------------------------------------------------|
+ * | offset | VECTOR2 | No | (0,0) | Offset of visual from origin |
+ * | size | VECTOR2 | No | (1,1) | size of visual |
+ * | origin | INTEGER or STRING | No | CENTER | origin of the visual @sa Dali::Toolkit::Align |
+ * | anchorPoint | INTEGER or STRING | No | CENTER | anchor point of the visual @sa Dali::Toolkit::Align |
+ * | offsetPolicy | VECTOR2 | No | ( RELATIVE, RELATIVE ) | @sa Dali::Toolkit::Visual::Transform::Policy |
+ * | sizePolicy | VECTOR2 | No | ( RELATIVE, RELATIVE ) | @sa Dali::Toolkit::Visual::Transform::Policy |
*
* Relative means that the component describes a factor of the parent control size;
* size.x = 1 means full width; size.y = 0.5 means half height.
*
* @return The height based on the width.
*/
- float GetHeightForWidth( float width ) const;
+ float GetHeightForWidth( float width );
+
+ /**
+ * @brief Returns the width for a given height.
+ *
+ * @param[in] height Height to use.
+ *
+ * @return The width based on the height.
+ */
+ float GetWidthForHeight( float height );
/**
* @brief Return the natural size of the visual.
*
* @param[in] index The depth index of this visual.
*/
- void SetDepthIndex( float index );
+ void SetDepthIndex( int index );
/**
* @brief Get the depth index of this visual
*
* @return The depth index of this visual.
*/
- float GetDepthIndex() const;
+ int GetDepthIndex() const;
/**
* @brief Create the property map representing this visual.
*/
void CreatePropertyMap( Dali::Property::Map& map ) const;
- /**
- * @brief Sets the value of an existing property.
- *
- * @param [in] index The index of the property.
- * @param [in] propertyValue The new value of the property.
- */
- void SetProperty( Dali::Property::Index index, const Dali::Property::Value& propertyValue );
-
- /**
- * @brief Retrieves a property value.
- *
- * @param [in] index The index of the property.
- *
- * @return The property value.
- */
- Dali::Property::Value GetProperty( Dali::Property::Index index );
-
public: // Not intended for application developers
explicit DALI_INTERNAL Base(Internal::Visual::Base *impl);