X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Fcontrols%2Fscrollable%2Fitem-view%2Fitem-layout.h;h=7fa1703d29b67c64529d9d4daaae484b33db83f9;hp=e0131964bda4e3a9d03da60162742dd5b62df26e;hb=05fc311b489e5c929433c722439eef45116f0e8b;hpb=594b2670227659f2f2905b60c4d3387674a6d846 diff --git a/dali-toolkit/public-api/controls/scrollable/item-view/item-layout.h b/dali-toolkit/public-api/controls/scrollable/item-view/item-layout.h old mode 100644 new mode 100755 index e013196..7fa1703 --- a/dali-toolkit/public-api/controls/scrollable/item-view/item-layout.h +++ b/dali-toolkit/public-api/controls/scrollable/item-view/item-layout.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TOOLKIT_ITEM_LAYOUT_H__ -#define __DALI_TOOLKIT_ITEM_LAYOUT_H__ +#ifndef DALI_TOOLKIT_ITEM_LAYOUT_H +#define DALI_TOOLKIT_ITEM_LAYOUT_H /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2019 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. @@ -20,11 +20,16 @@ // EXTERNAL INCLUDES #include +#include +#include // INTERNAL INCLUDES #include #include +#undef min +#undef max + namespace Dali { @@ -46,11 +51,11 @@ typedef IntrusivePtr ItemLayoutPtr; ///< Pointer to a Dali::Toolkit: struct ItemRange { /** - * @brief Create a range of item identifiers. + * @brief Creates a range of item identifiers. * * @SINCE_1_0.0 - * @param[in] beginItem The first item within the range. - * @param[in] endItem The past-the-end item. + * @param[in] beginItem The first item within the range + * @param[in] endItem The past-the-end item */ ItemRange(unsigned int beginItem, unsigned int endItem) : begin(beginItem), @@ -62,7 +67,7 @@ struct ItemRange * @brief Copy Constructor. * * @SINCE_1_0.0 - * @param[in] copy ItemRange we should copy from. + * @param[in] copy ItemRange we should copy from */ ItemRange(const ItemRange& copy) : begin(copy.begin), @@ -74,22 +79,25 @@ struct ItemRange * @brief Assignment operator. * * @SINCE_1_0.0 - * @param[in] range The Range to assign from. - * @return The updated range. + * @param[in] range The Range to assign from + * @return The updated range */ ItemRange& operator=(const ItemRange& range) { - begin = range.begin; - end = range.end; + if( this != &range ) + { + begin = range.begin; + end = range.end; + } return *this; } /** - * @brief Test whether an item is within the range. + * @brief Tests whether an item is within the range. * * @SINCE_1_0.0 - * @param[in] itemId The item identifier. - * @return True if the item is within the range. + * @param[in] itemId The item identifier + * @return true if the item is within the range */ bool Within(unsigned int itemId) { @@ -98,11 +106,11 @@ struct ItemRange } /** - * @brief Create the intersection of two ranges. + * @brief Creates the intersection of two ranges. * * @SINCE_1_0.0 - * @param[in] second The second range. - * @return The intersection. + * @param[in] second The second range + * @return The intersection */ ItemRange Intersection(const ItemRange& second) { @@ -133,7 +141,7 @@ struct ItemRange * Whilst scrolling, the layout provides a range of items that are within a layout-area (3D bounding volume). * @SINCE_1_0.0 */ -class DALI_IMPORT_API ItemLayout : public RefObject +class DALI_TOOLKIT_API ItemLayout : public RefObject { public: @@ -143,7 +151,7 @@ public: * @brief Virtual destructor. * @SINCE_1_0.0 */ - DALI_IMPORT_API virtual ~ItemLayout(); + virtual ~ItemLayout(); /** * @brief Set the orientation of the layout. @@ -151,7 +159,7 @@ public: * @SINCE_1_0.0 * @param[in] orientation The orientation of the layout. */ - DALI_IMPORT_API void SetOrientation(ControlOrientation::Type orientation); + void SetOrientation(ControlOrientation::Type orientation); /** * @brief Query the orientation of the layout. @@ -159,7 +167,21 @@ public: * @SINCE_1_0.0 * @return the orientation of the layout. */ - DALI_IMPORT_API ControlOrientation::Type GetOrientation() const; + ControlOrientation::Type GetOrientation() const; + + /** + * @brief Apply the layout Properties. + * @SINCE_1_2.20 + * @param[in] properties The properties the layout. + */ + void SetLayoutProperties(const Property::Map& properties); + + /** + * @brief Get the layout Properties. + * @SINCE_1_2.20 + * @return the property of the layout. + */ + Property::Map GetLayoutProperties(); /** * @brief Retrieve the target size of an item in the layout. @@ -173,7 +195,7 @@ public: * @note layout-position is not provided as a parameter, since applying size constraints is not recommended. * Animating to target-sizes is preferable, since this allows controls to perform layouting without constraints. */ - DALI_IMPORT_API void GetItemSize( unsigned int itemId, const Vector3& layoutSize, Vector3& itemSize ) const; + void GetItemSize( unsigned int itemId, const Vector3& layoutSize, Vector3& itemSize ) const; /** * @brief Overrides the default size for the layout. @@ -181,7 +203,7 @@ public: * @SINCE_1_0.0 * @param[in] itemSize The size of each item. */ - DALI_IMPORT_API void SetItemSize( const Vector3& itemSize ); + void SetItemSize( const Vector3& itemSize ); /** * @brief Query the minimum valid layout position; this is a negative value. @@ -242,7 +264,7 @@ public: * @param[in] layoutSize the current size of the item view instance * @return The layout position */ - DALI_IMPORT_API virtual float GetClosestOnScreenLayoutPosition(int itemID, float currentLayoutPosition, const Vector3& layoutSize); + virtual float GetClosestOnScreenLayoutPosition(int itemID, float currentLayoutPosition, const Vector3& layoutSize); /** * @brief Query the number of items that should be reserved, for scrolling purposes. @@ -321,7 +343,7 @@ public: * @param[in] loopEnabled Whether the KeyboardFocusManager is set to wrap around between first and last item * @return The next item ID. */ - DALI_IMPORT_API virtual int GetNextFocusItemID(int itemID, int maxItems, Dali::Toolkit::Control::KeyboardFocus::Direction direction, bool loopEnabled); + virtual int GetNextFocusItemID(int itemID, int maxItems, Dali::Toolkit::Control::KeyboardFocus::Direction direction, bool loopEnabled); /** * @brief Query the flick speed factor of the layout while swipping. @@ -336,9 +358,9 @@ public: * @SINCE_1_0.0 * @return The scroll speed factor of the layout. */ - DALI_IMPORT_API virtual float GetFlickSpeedFactor() const; + virtual float GetFlickSpeedFactor() const; - /* + /** * @brief Applies constraints defined by the layout to an actor. * * @param[in] actor The actor to constrain. @@ -346,7 +368,7 @@ public: * @param[in] layoutSize The current size of the item view instance. * @param[in] itemViewActor The item view instance which requests the application of constraints. */ - DALI_IMPORT_API virtual void ApplyConstraints( Actor& actor, const int itemId, const Vector3& layoutSize, const Actor& itemViewActor ) = 0; + virtual void ApplyConstraints( Actor& actor, const int itemId, const Vector3& layoutSize, const Actor& itemViewActor ) = 0; /** * @brief Gets the position of a given item @@ -357,7 +379,7 @@ public: * @param[in] layoutSize The current size of the item view instance * @return The item position (x,y,z) */ - DALI_IMPORT_API virtual Vector3 GetItemPosition(int itemID, float currentLayoutPosition, const Vector3& layoutSize) const = 0; + virtual Vector3 GetItemPosition(int itemID, float currentLayoutPosition, const Vector3& layoutSize) const = 0; /** * @brief Retrieve the extension for this layout. @@ -376,7 +398,7 @@ protected: * @brief Create a new ItemLayout; Only derived versions are instantiatable. * @SINCE_1_0.0 */ - DALI_IMPORT_API ItemLayout(); + ItemLayout(); private: @@ -405,4 +427,4 @@ protected: } // namespace Dali -#endif // __DALI_TOOLKIT_ITEM_LAYOUT_H__ +#endif // DALI_TOOLKIT_ITEM_LAYOUT_H