#define DALI_TOOLKIT_INTERNAL_VISUAL_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.
#include <dali-toolkit/devel-api/visual-factory/visual-base.h>
#include <dali-toolkit/internal/visuals/transition-data-impl.h>
#include <dali-toolkit/internal/visuals/visual-factory-cache.h>
+#include <dali-toolkit/devel-api/direction-enums.h>
namespace Dali
{
namespace Visual
{
+class ResourceObserver;
+
/**
* Base class for all Control rendering logic. A control may have multiple visuals.
*
/**
* @copydoc Toolkit::Visual::Base::SetDepthIndex
*/
- void SetDepthIndex( float index );
+ void SetDepthIndex( int index );
/**
* @copydoc Toolkit::Visual::Base::GetDepthIndex
*/
- float GetDepthIndex() const;
+ int GetDepthIndex() const;
/**
* @copydoc Toolkit::Visual::Base::SetOnStage
void CreatePropertyMap( Property::Map& map ) const;
/**
+ * @brief Create a property map containing per-instance visual properties.
+ *
+ * This will enable creation of new visuals on control state change with
+ * any alternative style properties and the relevant instance properties
+ * (e.g. for image visual, the desired size, and for text visual, the actual text).
+ * @param[in] map The property map into which to write
+ */
+ void CreateInstancePropertyMap( Property::Map& map ) const;
+
+ /**
* @brief Set whether the Pre-multiplied Alpha Blending is required
*
* @param[in] preMultipled whether alpha is pre-multiplied.
void AnimateProperty( Dali::Animation& transition,
Internal::TransitionData::Animator& animator );
+ /**
+ * @brief Add an observer to watch for when the Visuals resources are loaded.
+ * Currently only supports a single observer
+ *
+ */
+ void AddResourceObserver( Visual::ResourceObserver& observer );
+
+ /**
+ * @brief Remove an observer
+ */
+ void RemoveResourceObserver( Visual::ResourceObserver& observer );
+
+ /**
+ * @brief Called when the visuals resources are loaded / ready
+ */
+ void ResourceReady();
+
+ /**
+ * @brief Called when the visuals resources are loaded / ready
+ * @return true if ready, false otherwise
+ */
+ bool IsResourceReady() const;
+
protected:
/**
virtual void DoCreatePropertyMap( Property::Map& map ) const = 0;
/**
+ * @brief Called by CreateInstancePropertyMap() allowing derived
+ * classes to store instanced data (separate to styled data) that
+ * needs copying between visuals on state change.
+ *
+ * @param[out] map The visual property map
+ */
+ virtual void DoCreateInstancePropertyMap( Property::Map& map ) const = 0;
+
+ /**
* @brief Called by SetProperties() allowing sub classes to set their properties
*
* @param[in] propertyMap The properties for the requested Visual object.
*/
bool IsOnStage() const;
- /**
- * @brief Gets whether the Dali::Renderer is from a shared cache (and therefore any modifications will affect other users of that renderer)
- *
- * @return Returns true if the renderer is from shared cache, false otherwise
- */
- bool IsFromCache() const;
-
private:
/**