#ifndef DALI_TOOLKIT_VISUAL_BASE_H
#define DALI_TOOLKIT_VISUAL_BASE_H
/*
- * Copyright (c) 2017 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.
*/
// EXTERNAL INCLUDES
-#include <dali/public-api/object/base-handle.h>
#include <dali/public-api/actors/actor.h>
+#include <dali/public-api/object/base-handle.h>
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/dali-toolkit-common.h>
+#include <dali-toolkit/public-api/visuals/visual-properties.h>
namespace Dali
{
-
namespace Toolkit
{
-
namespace Internal DALI_INTERNAL
{
namespace Visual
{
class Base;
}
-}
+} // namespace DALI_INTERNAL
namespace Visual
{
-
-enum class ResourceStatus
-{
- PREPARING,
- READY,
- FAILED
-};
-
/**
* @brief A Visual provides a renderer for drawing a control component. A control may have multiple visuals.
*
* 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:
-
/**
* @brief Create an empty Visual Handle
*/
*
* @param[in] handle A reference to the copied handle.
*/
- Base( const Base& handle );
+ Base(const Base& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
* @param [in] handle A reference to the copied handle.
* @return A reference to this.
*/
- Base& operator=( const Base& handle );
+ Base& operator=(const Base& handle);
/**
* @brief Set the name of the visual
* Used by the styling system to animate properties
* @param[in] name The name to give the visual
*/
- void SetName( const std::string& name );
+ void SetName(const std::string& name);
/**
* @brief Get the name of the visual
* 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
* @param[in] transform A property map describing the transform
* @param[in] controlSize The size of the parent control for visuals that need to scale internally.
*/
- void SetTransformAndSize( const Dali::Property::Map& transform, Size controlSize );
+ void SetTransformAndSize(const Dali::Property::Map& transform, Size controlSize);
/**
* @brief Returns the height for a given width.
*
* @return The height based on the width.
*/
- float GetHeightForWidth( float width );
+ float GetHeightForWidth(float width);
/**
* @brief Returns the width for a given height.
*
* @return The width based on the height.
*/
- float GetWidthForHeight( float height );
+ float GetWidthForHeight(float height);
/**
* @brief Return the natural size of the visual.
*
* @param[out] naturalSize The visual's natural size
*/
- void GetNaturalSize( Vector2& naturalSize );
+ void GetNaturalSize(Vector2& naturalSize);
/**
* @brief Set the depth index of this visual.
*
* @param[in] index The depth index of this visual.
*/
- void SetDepthIndex( int index );
+ void SetDepthIndex(int index);
/**
* @brief Get the depth index of this visual
*
* @param[out] map The visual property map.
*/
- void CreatePropertyMap( Dali::Property::Map& map ) const;
-
-public: // Not intended for application developers
+ void CreatePropertyMap(Dali::Property::Map& map) const;
- explicit DALI_INTERNAL Base(Internal::Visual::Base *impl);
+ /**
+ * @brief Get the type of this visual.
+ *
+ * @return The the type of this visual.
+ */
+ Visual::Type GetType() const;
+public: // Not intended for application developers
+ explicit DALI_INTERNAL Base(Internal::Visual::Base* impl);
};
} // namespace Visual