X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Fdevel-api%2Fcontrols%2Frenderer-factory%2Fcontrol-renderer.h;h=e95d906a20d6ffd96ff3c410c635e4813249a5f7;hb=da9ae921ecd0ba30e7acb49fcb81a1864b61f404;hp=57626d43e957dfec0ee5027705dfebd3b3138122;hpb=c560f95435d40fd3980cd5f92da65c9f28f440e7;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/devel-api/controls/renderer-factory/control-renderer.h b/dali-toolkit/devel-api/controls/renderer-factory/control-renderer.h index 57626d4..e95d906 100644 --- a/dali-toolkit/devel-api/controls/renderer-factory/control-renderer.h +++ b/dali-toolkit/devel-api/controls/renderer-factory/control-renderer.h @@ -33,7 +33,8 @@ class ControlRenderer; } /** - * ControlRenderer provides renderer for rendering the controls. A control may have multiple ControlRenders. + * @brief ControlRenderer provides renderer for rendering the controls. A control may have multiple ControlRenders. + * * ControlRenderers reuses geometry, shader etc. across controls and manages the renderer and material to exist only when control is on-stage. * It also responds to actor size and color change, and provides the clipping at the renderer level. * Note: The control renderer responds to the the Actor::COLOR by blending it with the 'Multiply' operator. @@ -42,34 +43,59 @@ class DALI_IMPORT_API ControlRenderer : public BaseHandle { public: + /** + * @brief Create an empty ControlRenderer Handle + */ ControlRenderer(); - ControlRenderer(Internal::ControlRenderer *impl); + + /** + * @brief Destructor + * + * This is non-virtual since derived Handle types must not contain data or virtual methods. + */ ~ControlRenderer(); /** - * Set the size of the painting area. + * @brief This copy constructor is required for (smart) pointer semantics. + * + * @param[in] handle A reference to the copied handle. + */ + ControlRenderer( const ControlRenderer& 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. + */ + ControlRenderer& operator=( const ControlRenderer& handle ); + + /** + * @brief Set the size of the painting area. * * @param[in] size The size of the painting area. */ void SetSize( const Vector2& size ); /** - * Set the clip rectangular of this renderer. - * The contents of the renderer will not be visible outside this rectangular. + * @brief Get the size of the painting area. * - * @param [in] clipRect The clipping rectangular. + * @return The size of the renderer's painting area. */ - void SetClipRect( const Rect& clipRect ); + const Vector2& GetSize() const; /** - * Reposition this renderer with a 2D offset. + * @brief Return the natural size of the renderer. * - * @param[in] offset The offset to reposition the renderer. + * Deriving classes stipulate the natural size and by default a renderer has a ZERO natural size. + * + * @param[out] naturalSize The renderer's natural size */ - void SetOffset( const Vector2& offset ); + void GetNaturalSize( Vector2& naturalSize ) const; /** - * Set the depth index of this renderer. + * @brief Set the depth index of this renderer. + * * Depth-index controls draw-order for overlapping renderers. * Renderer with higher depth indices are rendered in front of other renderer with smaller values * @@ -78,21 +104,51 @@ public: void SetDepthIndex( float index ); /** - * Renderer only exists when control is on stage. + * @brief Get the depth index of this renderer + * + * @return The depth index of this renderer. + */ + float GetDepthIndex() const; + + /** + * @brief Renderer only exists when control is on stage. + * * This function should be called when the control put on stage. * * @param[in] actor The actor applying this renderer. + * @post SetOffStage should be called with the same actor when the control is put off stage otherwise memory will be leaked */ void SetOnStage( Actor& actor ); /** - * Renderer is destroyed when control is off stage. + * @brief Renderer is destroyed when control is off stage. + * * This function should be called when the control removes from stage * * @param[in] actor The actor applying this renderer. */ void SetOffStage( Actor& actor ); + /** + * @brief Remove the renderer from actor and reset the control renderer self. + * + * This function can be called with an empty handle. If the control renderer is empty, do nothing. + * + * @param[in] actor The actor to be set off stage. + */ + void RemoveAndReset( Actor& actor ); + + /** + * @brief Create the property map representing this renderer. + * + * @param[out] map The renderer property map. + */ + void CreatePropertyMap( Property::Map& map ) const; + +public: // Not intended for application developers + + explicit DALI_INTERNAL ControlRenderer(Internal::ControlRenderer *impl); + }; } // namespace Toolkit