#ifndef DALI_TOOLKIT_VISUAL_BASE_H
#define DALI_TOOLKIT_VISUAL_BASE_H
/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 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.
#include <dali/public-api/object/base-handle.h>
#include <dali/public-api/actors/actor.h>
+// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/dali-toolkit-common.h>
+
namespace Dali
{
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.
* Absolute means that the component describes world units (equivalent to pixels)
*
*/
-class DALI_IMPORT_API Base : public BaseHandle
+class DALI_TOOLKIT_API Base : public BaseHandle
{
public:
* Used by the styling system to animate properties
* @return The name of the visual
*/
- const std::string& GetName();
+ const std::string& GetName() const;
/**
* @brief Sets the transform and the control size
*
* @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.