X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fvisual-base-data-impl.h;h=718b5e482a4217b9a9a476188daf5c6d087f6908;hp=098ad1eab3c276695f25208aa322a8ff2fe34630;hb=16912baf519a33ab99788619118df99c854076de;hpb=675f5551ef3c7ca20ec45c36b865a5092883af43 diff --git a/dali-toolkit/internal/visuals/visual-base-data-impl.h b/dali-toolkit/internal/visuals/visual-base-data-impl.h index 098ad1e..718b5e4 100644 --- a/dali-toolkit/internal/visuals/visual-base-data-impl.h +++ b/dali-toolkit/internal/visuals/visual-base-data-impl.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_INTERNAL_VISUAL_BASE_DATA_IMPL_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. @@ -24,7 +24,10 @@ // INTERNAL INCLUDES #include -#include +#include +#include +#include +#include namespace Dali { @@ -42,8 +45,10 @@ struct Base::Impl { /** * Constructor + * @param [in] fittingMode that the derived class prefers + * @param [in] type The type of the this visual */ - Impl(); + Impl( FittingMode fittingMode, Toolkit::Visual::Type type ); /** * Destructor @@ -52,11 +57,10 @@ struct Base::Impl enum Flags { - IS_ON_STAGE = 1, - IS_FROM_CACHE = 1 << 1, - IS_ATLASING_APPLIED = 1<<2, - IS_PREMULTIPLIED_ALPHA = 1 << 3, - IS_SYNCHRONOUS_RESOURCE_LOADING = 1 << 4 + IS_ON_SCENE = 1, + IS_ATLASING_APPLIED = 1<<1, + IS_PREMULTIPLIED_ALPHA = 1 << 2, + IS_SYNCHRONOUS_RESOURCE_LOADING = 1 << 3 }; struct CustomShader @@ -73,26 +77,66 @@ struct Base::Impl struct Transform { + /** + * Default constructor ensures the visual fills the control + */ Transform(); + + /** + * Use the property map to set zero or more of the transform + * attributes, and sets the remaining attributes to their default + * values. + */ void SetPropertyMap( const Property::Map& map ); + + /** + * Add the transform attributes to the map (using integer keys) + */ void GetPropertyMap( Property::Map& map ) const; + + /** + * Update zero or more attributes from the property map. + */ + void UpdatePropertyMap( const Property::Map& map ); + + /** + * Register or set the uniform properties onto the renderer + */ void RegisterUniforms( Renderer renderer, Toolkit::Direction::Type direction ); + + /** + * Convert the control size and the transform attributes into the actual + * size of the visual. + */ Vector2 GetVisualSize( const Vector2& controlSize ); Vector2 mOffset; Vector2 mSize; + Vector2 mExtraSize; Vector4 mOffsetSizeMode; Toolkit::Align::Type mOrigin; Toolkit::Align::Type mAnchorPoint; + Property::Index mOffsetIndex; + Property::Index mSizeIndex; }; - Renderer mRenderer; - CustomShader* mCustomShader; - std::string mName; - Transform mTransform; - Size mControlSize; - float mDepthIndex; - int mFlags; + Renderer mRenderer; + CustomShader* mCustomShader; + EventObserver* mEventObserver; ///< Allows controls to observe when the visual has events to notify + std::string mName; + Transform mTransform; + Vector4 mMixColor; + Size mControlSize; + float mCornerRadius; + float mCornerRadiusPolicy; + int mDepthIndex; + Property::Index mMixColorIndex; + Property::Index mCornerRadiusIndex; + FittingMode mFittingMode; //< How the contents should fit the view + int mFlags; + Toolkit::Visual::ResourceStatus mResourceStatus; + const Toolkit::Visual::Type mType; + bool mNeedCornerRadius; }; } // namespace Visual