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=023930e9fa7c155a57eef86911d2f7e63d0aaca4;hp=d75509a8367e0e86c038b9fdd9e68be39bfaa832;hb=7e83d1dc2a864653968ad8a6e68c3afdf9f9918d;hpb=257a9991486e4e05335212b21ecc1f5a0aacbc63 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 d75509a..023930e 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) 2021 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. @@ -28,10 +28,8 @@ namespace Dali { - namespace Toolkit { - class ImageView; namespace Internal @@ -39,7 +37,6 @@ namespace Internal class ImageView : public Control { protected: - /** * Construct a new ImageView. */ @@ -58,39 +55,29 @@ 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 */ - void SetImage( const std::string& imageUrl, ImageDimensions size ); - - /** - * @copydoc Dali::Toolkit::GetImage - */ - Image GetImage() const; + void SetImage(const std::string& imageUrl, ImageDimensions size); /** * @brief Set whether the Pre-multiplied Alpha Blending is required * * @param[in] preMultipled whether alpha is pre-multiplied. */ - void EnablePreMultipliedAlpha( bool preMultipled ); + void EnablePreMultipliedAlpha(bool preMultipled); /** * @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; @@ -101,7 +88,7 @@ public: * @param[in] index The property index. * @param[in] value The new property value. */ - static void SetProperty( BaseObject* object, Property::Index index, const Property::Value& value ); + static void SetProperty(BaseObject* object, Property::Index index, const Property::Value& value); /** * Called to retrieve a property of an object of this type. @@ -109,7 +96,7 @@ public: * @param[in] index The property index. * @return The current value of the property. */ - static Property::Value GetProperty( BaseObject* object, Property::Index propertyIndex ); + static Property::Value GetProperty(BaseObject* object, Property::Index propertyIndex); /** * @brief Set the depth index of this image renderer @@ -118,66 +105,94 @@ public: * * @param[in] depthIndex The depth index of this renderer */ - void SetDepthIndex( int depthIndex ); + void SetDepthIndex(int depthIndex); private: // From Control + /** + * @copydoc Toolkit::Control::OnInitialize + */ + void OnInitialize(); + + /** + * @copydoc Toolkit::Control::GetNaturalSize + */ + Vector3 GetNaturalSize() override; /** - * @copydoc Toolkit::Control::OnStageConnect() + * @copydoc Toolkit::Control::GetHeightForWidth() */ - virtual void OnStageConnection( int depth ); + float GetHeightForWidth(float width) override; /** - * @copydoc Toolkit::Control::OnStageDisconnection() + * @copydoc Toolkit::Control::GetWidthForHeight() */ - virtual void OnStageDisconnection(); + float GetWidthForHeight(float height) override; /** - * @copydoc Toolkit::Control::OnSizeSet() + * @copydoc Toolkit::Control::OnRelayout() */ - virtual void OnSizeSet( const Vector3& targetSize ); + void OnRelayout(const Vector2& size, RelayoutContainer& container) override; /** - * @copydoc Toolkit::Control::GetNaturalSize + * @copydoc Toolkit::Control::OnCreateTransitions() */ - virtual Vector3 GetNaturalSize(); + virtual void OnCreateTransitions(Dali::Animation& animation, Dali::Toolkit::Control source, AlphaFunction alphaFunction, TimePeriod timePeriod) override; +private: /** - * @copydoc Toolkit::Control::GetHeightForWidth() + * @brief Callback for ResourceReadySignal + * param[in] control signal prototype */ - virtual float GetHeightForWidth( float width ); + void OnResourceReady(Toolkit::Control control); /** - * @copydoc Toolkit::Control::GetWidthForHeight() + * @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 */ - virtual float GetWidthForHeight( float height ); + void ApplyFittingMode(Vector2 finalSize, Vector2 textureSize, Vector2 offset, bool zeroPadding, Property::Map& transformMap); private: // Undefined - ImageView( const ImageView& ); - ImageView& operator=( const ImageView& ); + ImageView(const ImageView&); + ImageView& operator=(const ImageView&); private: - Toolkit::Visual mRenderer; - ImageDimensions mImageSize; - Vector2 mSizeSet; + Toolkit::Visual::Base mVisual; + + std::string mUrl; ///< the url for the image if the image came from a URL, empty 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 - 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 + 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 // Helpers for public-api forwarding methods -inline Toolkit::Internal::ImageView& GetImpl( Toolkit::ImageView& obj ) +inline Toolkit::Internal::ImageView& GetImpl(Toolkit::ImageView& obj) { DALI_ASSERT_ALWAYS(obj); Dali::RefObject& handle = obj.GetImplementation(); return static_cast(handle); } -inline const Toolkit::Internal::ImageView& GetImpl( const Toolkit::ImageView& obj ) +inline const Toolkit::Internal::ImageView& GetImpl(const Toolkit::ImageView& obj) { DALI_ASSERT_ALWAYS(obj); const Dali::RefObject& handle = obj.GetImplementation(); @@ -188,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