Merge "Updated programming guide for image-scaling-and-fitting" into devel/master
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / public-api / controls / scrollable / item-view / item-view.h
index ca51a44..0bb0d1b 100644 (file)
@@ -34,6 +34,10 @@ namespace Internal DALI_INTERNAL
 {
 class ItemView;
 }
+/**
+ * @addtogroup dali_toolkit_controls_item_view
+ * @{
+ */
 
 class ItemFactory;
 class ItemLayout;
@@ -46,13 +50,22 @@ typedef IntrusivePtr<ItemLayout> ItemLayoutPtr;
  *
  * Multiple ItemLayouts may be provided, to determine the logical position of each item a layout.
  * Actors are provided from an external ItemFactory, to display the currently visible items.
+ *
+ * Signals
+ * | %Signal Name                    | Method                                     |
+ * |---------------------------------|--------------------------------------------|
+ * | layoutActivated                 | @ref LayoutActivatedSignal()               |
  */
+
 class DALI_IMPORT_API ItemView : public Scrollable
 {
 public:
 
   enum PropertyRange
   {
+    PROPERTY_START_INDEX = Toolkit::Scrollable::PROPERTY_END_INDEX + 1,                        ///< @since DALi 1.1.18
+    PROPERTY_END_INDEX =   PROPERTY_START_INDEX + 1000,                                        ///< Reserve property indices, @since DALi 1.1.18
+
     ANIMATABLE_PROPERTY_START_INDEX = Toolkit::Scrollable::ANIMATABLE_PROPERTY_END_INDEX + 1,
     ANIMATABLE_PROPERTY_END_INDEX   = ANIMATABLE_PROPERTY_START_INDEX + 1000                   ///< Reserve animatable property indices
   };
@@ -64,15 +77,27 @@ public:
   {
     enum
     {
-      LAYOUT_POSITION = ANIMATABLE_PROPERTY_START_INDEX, ///< Property, name "layout-position",       type float
-      SCROLL_SPEED,                                      ///< Property, name "scroll-speed",          type float
-      OVERSHOOT,                                         ///< Property, name "overshoot",             type float
-      SCROLL_DIRECTION,                                  ///< Property, name "scroll-direction",      type Vector2
-      LAYOUT_ORIENTATION,                                ///< Property, name "layout-orientation",    type integer
-      SCROLL_CONTENT_SIZE                                ///< Property, name "scroll-content-size",   type float
+      // Event side properties
+      MINIMUM_SWIPE_SPEED = PROPERTY_START_INDEX,        ///< Property, name "minimumSwipeSpeed",        @see SetMinimumSwipeSpeed(),       type float,    @since DALi 1.1.18
+      MINIMUM_SWIPE_DISTANCE,                            ///< Property, name "minimumSwipeDistance",     @see SetMinimumSwipeDistance(),    type float,    @since DALi 1.1.18
+      WHEEL_SCROLL_DISTANCE_STEP,                        ///< Property, name "wheelScrollDistanceStep",  @see SetWheelScrollDistanceStep(), type float,    @since DALi 1.1.18
+      SNAP_TO_ITEM_ENABLED,                              ///< Property, name "snapToItemEnabled",        @see SetAnchoring(),               type bool,     @since DALi 1.1.18
+      REFRESH_INTERVAL,                                  ///< Property, name "refreshInterval",          @see SetRefreshInterval(),         type float,    @since DALi 1.1.18
+
+      // Animatable properties
+      LAYOUT_POSITION = ANIMATABLE_PROPERTY_START_INDEX, ///< Property, name "layoutPosition",           type float
+      SCROLL_SPEED,                                      ///< Property, name "scrollSpeed",              type float
+      OVERSHOOT,                                         ///< Property, name "overshoot",                type float
+      SCROLL_DIRECTION,                                  ///< Property, name "scrollDirection",          type Vector2
+      LAYOUT_ORIENTATION,                                ///< Property, name "layoutOrientation",        type integer
+      SCROLL_CONTENT_SIZE                                ///< Property, name "scrollContentSize",        type float
     };
   };
 
+  // Signals
+
+  typedef Signal< void () > LayoutActivatedSignalType;
+
 public:
 
   /**
@@ -421,6 +446,20 @@ public:
    */
   void GetItemsRange(ItemRange& range);
 
+public: // Signals
+
+  /**
+   * @brief Signal emitted when layout activation is finished.
+   *
+   * A callback of the following type may be connected:
+   * @code
+   *   void YourCallbackName();
+   * @endcode
+   * @pre The Object has been initialized.
+   * @return The signal to connect to.
+   */
+  ItemView::LayoutActivatedSignalType& LayoutActivatedSignal();
+
 public: // Not intended for application developers
 
   /**
@@ -438,6 +477,9 @@ public: // Not intended for application developers
   explicit DALI_INTERNAL ItemView( Dali::Internal::CustomActor* internal );
 };
 
+/**
+ * @}
+ */
 } // namespace Toolkit
 
 } // namespace Dali