X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fimage-view%2Fimage-view-impl.h;h=8c69678e7f811f515beee0c3f910f4fbba34c498;hp=fcc0c632ccb5c9c157ac247f1ccb52030203fbd4;hb=b1e8521ad77e7b4e62b59613b2edef64429130e9;hpb=d2cc1da3aea2842d9de3e2f5288d768be711fa5b diff --git a/dali-toolkit/internal/controls/image-view/image-view-impl.h b/dali-toolkit/internal/controls/image-view/image-view-impl.h index fcc0c63..8c69678 100644 --- a/dali-toolkit/internal/controls/image-view/image-view-impl.h +++ b/dali-toolkit/internal/controls/image-view/image-view-impl.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TOOLKIT_INTERNAL_IMAGE_VIEW_H__ -#define __DALI_TOOLKIT_INTERNAL_IMAGE_VIEW_H__ +#ifndef DALI_TOOLKIT_INTERNAL_IMAGE_VIEW_H +#define DALI_TOOLKIT_INTERNAL_IMAGE_VIEW_H /* - * Copyright (c) 2014 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. @@ -22,7 +22,7 @@ #include // INTERNAL INCLUDES -#include +#include #include #include @@ -58,17 +58,12 @@ public: static Toolkit::ImageView New(); /** - * @copydoc Dali::Toolkit::SetImage - */ - void SetImage( Image image ); - - /** * @brief Sets this ImageView from an Dali::Property::Map * * If the handle is empty, ImageView will display nothing * @param[in] map The Dali::Property::Map to use for to display. */ - void SetImage( Dali::Property::Map map ); + void SetImage( const Dali::Property::Map& map ); /** * @copydoc Dali::Toolkit::SetImage @@ -76,11 +71,6 @@ public: void SetImage( const std::string& imageUrl, ImageDimensions size ); /** - * @copydoc Dali::Toolkit::GetImage - */ - Image GetImage() const; - - /** * @brief Set whether the Pre-multiplied Alpha Blending is required * * @param[in] preMultipled whether alpha is pre-multiplied. @@ -90,7 +80,7 @@ public: /** * @brief Query whether alpha is pre-multiplied. * - * @return True is alpha is pre-multiplied, false otherwise. + * @return True if alpha is pre-multiplied, false otherwise. */ bool IsPreMultipliedAlphaEnabled() const; @@ -114,7 +104,7 @@ public: /** * @brief Set the depth index of this image renderer * - * Renderer with higher depth indices are rendered in front of other renderers with smaller values + * Renderer with higher depth indices are rendered in front of other visuals with smaller values * * @param[in] depthIndex The depth index of this renderer */ @@ -123,19 +113,9 @@ public: private: // From Control /** - * @copydoc Toolkit::Control::OnStageConnect() + * @copydoc Toolkit::Control::OnInitialize */ - virtual void OnStageConnection( int depth ); - - /** - * @copydoc Toolkit::Control::OnStageDisconnection() - */ - virtual void OnStageDisconnection(); - - /** - * @copydoc Toolkit::Control::OnSizeSet() - */ - virtual void OnSizeSet( const Vector3& targetSize ); + void OnInitialize(); /** * @copydoc Toolkit::Control::GetNaturalSize @@ -152,18 +132,54 @@ private: // From Control */ virtual float GetWidthForHeight( float height ); + /** + * @copydoc Toolkit::Control::OnRelayout() + */ + virtual void OnRelayout( const Vector2& size, RelayoutContainer& container ); + +private: + + /** + * @brief Callback for ResourceReadySignal + * param[in] control signal prototype + */ + void OnResourceReady( Toolkit::Control control ); + + /** + * @brief Set TransformMap for fittingMode + * param[in] finalSize The size for fittingMode + * param[in] textureSize The size of texture + * param[in] offset The offset for fittingMode + * param[in] fittingMode The mode for fitting image + * param[in] transformMap The map for fitting image + */ + void SetTransformMapForFittingMode ( Vector2 finalSize, Vector2 textureSize, Vector2 offset, Visual::FittingMode fittingMode, Property::Map& transformMap ); + + /** + * @brief Apply fittingMode + * param[in] finalSize The size for fittingMode + * param[in] textureSize The size of texture + * param[in] offset The offset for fittingMode + * param[in] zeroPadding whether padding is zero + * param[in] transformMap The map for fitting image + */ + void ApplyFittingMode( Vector2 finalSize, Vector2 textureSize, Vector2 offset, bool zeroPadding , Property::Map& transformMap); + private: // Undefined ImageView( const ImageView& ); ImageView& operator=( const ImageView& ); private: - Toolkit::ControlRenderer mRenderer; - ImageDimensions mImageSize; + Toolkit::Visual::Base mVisual; std::string mUrl; ///< the url for the image if the image came from a URL, empty otherwise - Image mImage; ///< the Image if the image came from a Image, null otherwise Property::Map mPropertyMap; ///< the Property::Map if the image came from a Property::Map, empty otherwise + Property::Map mShaderMap; ///< the Property::Map if the custom shader is set, empty otherwise + ImageDimensions mImageSize; ///< the image size + + bool mImageVisualPaddingSetByTransform :1; //< Flag to indicate Padding was set using a transform. + bool mImageViewPixelAreaSetByFittingMode:1; //< Flag to indicate pixel area was set by fitting Mode }; } // namespace Internal @@ -187,4 +203,4 @@ inline const Toolkit::Internal::ImageView& GetImpl( const Toolkit::ImageView& ob } // namespace Dali -#endif // __DALI_TOOLKIT_INTERNAL_IMAGE_VIEW_H__ +#endif // DALI_TOOLKIT_INTERNAL_IMAGE_VIEW_H