[4.0] Add VisualEventSignal to Control and a property to AnimatedVectorImageVisual
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / devel-api / controls / control-devel.h
index 2d20ee2..12d8be9 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_CONTROL_DEVEL_H
 
 /*
- * Copyright (c) 2017 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.
@@ -20,6 +20,7 @@
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/public-api/controls/control.h>
+#include <dali-toolkit/devel-api/visual-factory/visual-base.h>
 
 namespace Dali
 {
@@ -54,6 +55,8 @@ enum
   BACKGROUND_IMAGE  = Control::Property::BACKGROUND_IMAGE,
   KEY_INPUT_FOCUS   = Control::Property::KEY_INPUT_FOCUS,
   BACKGROUND        = Control::Property::BACKGROUND,
+  MARGIN            = Control::Property::MARGIN,
+  PADDING           = Control::Property::PADDING,
 
   /**
    * @brief Displays a tooltip when the control is hovered over.
@@ -66,7 +69,7 @@ enum
    * @note When retrieved, a Property::MAP is returned.
    * @see Toolkit::Tooltip
    */
-  TOOLTIP = BACKGROUND + 1,
+  TOOLTIP = PADDING + 1,
 
   /**
    * @brief The current state of the control.
@@ -74,7 +77,7 @@ enum
    *
    * @see DevelControl::State
    */
-  STATE = BACKGROUND + 2,
+  STATE = PADDING + 2,
 
   /**
    * @brief The current sub state of the control.
@@ -82,35 +85,35 @@ enum
    *
    * @see DevelControl::State
    */
-  SUB_STATE = BACKGROUND + 3,
+  SUB_STATE = PADDING + 3,
 
   /**
    * @brief The actor ID of the left focusable control.
    * @details Name "leftFocusableActorId", type Property::INTEGER.
    *
    */
-  LEFT_FOCUSABLE_ACTOR_ID = BACKGROUND + 4,
+  LEFT_FOCUSABLE_ACTOR_ID = PADDING + 4,
 
   /**
    * @brief The actor ID of the right focusable control.
    * @details Name "rightFocusableActorId", type Property::INTEGER.
    *
    */
-  RIGHT_FOCUSABLE_ACTOR_ID = BACKGROUND + 5,
+  RIGHT_FOCUSABLE_ACTOR_ID = PADDING + 5,
 
   /**
    * @brief The actor ID of the up focusable control.
    * @details Name "upFocusableActorId", type Property::INTEGER.
    *
    */
-  UP_FOCUSABLE_ACTOR_ID = BACKGROUND + 6,
+  UP_FOCUSABLE_ACTOR_ID = PADDING + 6,
 
   /**
    * @brief The actor ID of the down focusable control.
    * @details Name "downFocusableActorId", type Property::INTEGER.
    *
    */
-  DOWN_FOCUSABLE_ACTOR_ID = BACKGROUND + 7
+  DOWN_FOCUSABLE_ACTOR_ID = PADDING + 7
 };
 
 } // namespace Property
@@ -226,6 +229,34 @@ DALI_IMPORT_API bool IsVisualEnabled( const Internal::Control& control, Dali::Pr
  */
 DALI_IMPORT_API Dali::Animation CreateTransition( Internal::Control& control, const Toolkit::TransitionData& transitionData );
 
+/**
+ * @brief Perform an action on a visual registered to this control.
+ *
+ * Visuals will have actions, this API is used to perform one of these actions with the given attributes.
+ *
+ * @param[in] control The control.
+ * @param[in] visualIndex The Property index of the visual.
+ * @param[in] actionId The action to perform.  See Visual to find supported actions.
+ * @param[in] attributes Optional attributes for the action.
+ */
+DALI_IMPORT_API void DoAction( Control& control, Dali::Property::Index visualIndex, Dali::Property::Index actionId, const Dali::Property::Value attributes );
+
+/**
+ * @brief Visual Event signal type
+ */
+using VisualEventSignalType = Signal< void ( Control, Dali::Property::Index, Dali::Property::Index ) >;
+
+/**
+ * @brief This signal is emitted when a visual has an event to notify.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ *   void YourCallbackName( Control control, Dali::Property::Index visualIndex, Dali::Property::Index signalId );
+ * @endcode
+ * @return The signal to connect to
+ */
+DALI_IMPORT_API VisualEventSignalType& VisualEventSignal( Control control );
+
 } // namespace DevelControl
 
 } // namespace Toolkit