Cleaning up property public API and usage of typedefs
[platform/core/uifw/dali-toolkit.git] / base / dali-toolkit / public-api / controls / control-impl.h
index fdcc05f..470fb27 100644 (file)
  */
 
 // EXTERNAL INCLUDES
+#include <dali/public-api/adaptor-framework/style-change.h>
 #include <dali/public-api/common/vector-wrapper.h>
+#include <dali/public-api/events/long-press-gesture.h>
+#include <dali/public-api/events/pan-gesture.h>
+#include <dali/public-api/events/pinch-gesture.h>
+#include <dali/public-api/events/tap-gesture.h>
+#include <dali/public-api/object/property-index.h>
+#include <dali/public-api/object/type-info.h>
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/public-api/controls/control.h>
 
-namespace Dali DALI_IMPORT_API
+namespace Dali
 {
 
 namespace Toolkit
@@ -176,7 +183,7 @@ public:
    * @param[in] attributes The attributes with which to perfrom this action.
    * @return true if action has been accepted by this control
    */
-  static bool DoAction(BaseObject* object, const std::string& actionName, const std::vector<Property::Value>& attributes);
+  static bool DoAction(BaseObject* object, const std::string& actionName, const PropertyValueContainer& attributes);
 
   /**
    * Connects a callback function with the object's signals.
@@ -337,7 +344,7 @@ private: // For derived classes to override
    * @param[in]  pinch  The pinch gesture.
    * @see EnableGestureDetection
    */
-  virtual void OnPinch(PinchGesture pinch);
+  virtual void OnPinch(const PinchGesture& pinch);
 
   /**
    * @brief Called whenever a pan gesture is detected on this control.
@@ -350,7 +357,7 @@ private: // For derived classes to override
    * @param[in]  pan  The pan gesture.
    * @see EnableGestureDetection
    */
-  virtual void OnPan(PanGesture pan) { }
+  virtual void OnPan( const PanGesture& pan );
 
   /**
    * @brief Called whenever a tap gesture is detected on this control.
@@ -363,7 +370,7 @@ private: // For derived classes to override
    * @param[in]  tap  The tap gesture.
    * @see EnableGestureDetection
    */
-  virtual void OnTap(TapGesture tap) { }
+  virtual void OnTap( const TapGesture& tap );
 
   /**
    * @brief Called whenever a long press gesture is detected on this control.
@@ -376,7 +383,7 @@ private: // For derived classes to override
    * @param[in]  longPress  The long press gesture.
    * @see EnableGestureDetection
    */
-  virtual void OnLongPress(LongPressGesture longPress) { }
+  virtual void OnLongPress( const LongPressGesture& longPress );
 
   /**
    * @brief Called whenever the control is added to the stage.
@@ -507,6 +514,11 @@ private: // From CustomActorImpl, derived classes can override these.
   virtual bool OnTouchEvent(const TouchEvent& event);
 
   /**
+   * @copydoc Dali::CustomActorImpl::OnHoverEvent(const HoverEvent&)
+   */
+  virtual bool OnHoverEvent(const HoverEvent& event);
+
+  /**
    * @copydoc Dali::CustomActorImpl::OnKeyEvent(const KeyEvent&)
    */
   virtual bool OnKeyEvent(const KeyEvent& event);
@@ -539,7 +551,7 @@ private:
    * @param[in] styleManager The StyleManager Object
    * @param[in] change  Information denoting what has changed.
    */
-  void DoStyleChange( Toolkit::StyleManager styleManager, StyleChange change );
+  DALI_INTERNAL void DoStyleChange( Toolkit::StyleManager styleManager, StyleChange change );
 
 protected: // Construction
 
@@ -549,7 +561,9 @@ protected: // Construction
     CONTROL_BEHAVIOUR_NONE        = 0,
     REQUIRES_TOUCH_EVENTS         = 1<<1,     ///< True if the OnTouchEvent() callback is required.
     REQUIRES_STYLE_CHANGE_SIGNALS = 1<<2,     ///< True if needs to monitor style change signals such as theme/font change
-    NO_SIZE_NEGOTIATION           = 1<<3      ///< True if control does not need size negotiation, i.e. it can be skipped in the algorithm
+    NO_SIZE_NEGOTIATION           = 1<<3,     ///< True if control does not need size negotiation, i.e. it can be skipped in the algorithm
+    REQUIRES_HOVER_EVENTS         = 1<<4,     ///< True if the OnHoverEvent() callback is required.
+    REQUIRES_MOUSE_WHEEL_EVENTS   = 1<<5      ///< True if the OnMouseWheelEvent() callback is required.
   };
 
   /**
@@ -695,7 +709,7 @@ private: // Used by the RelayoutController
    * @param[in,out]  container  The container that holds actors that are fed back into the
    *                            RelayoutController algorithm.
    */
-  void NegotiateSize( Vector2 size, ActorSizeContainer& container );
+  DALI_INTERNAL void NegotiateSize( Vector2 size, ActorSizeContainer& container );
 
 private:
 
@@ -708,7 +722,7 @@ private:
    * @param[in,out]  container  The control should add actors to this container that it is not able
    *                            to allocate a size for.
    */
-  void Relayout( Vector2 size, ActorSizeContainer& container );
+  DALI_INTERNAL void Relayout( Vector2 size, ActorSizeContainer& container );
 
   /**
    * @brief Used by the KeyInputFocusManager to emit key event signals.
@@ -716,13 +730,13 @@ private:
    * @param[in] event The key event.
    * @return True if the event was consumed.
    */
-  bool EmitKeyEventSignal(const KeyEvent& event);
+  DALI_INTERNAL bool EmitKeyEventSignal(const KeyEvent& event);
 
 private:
 
   // Undefined
-  Control(const Control&);
-  Control& operator=(const Control&);
+  DALI_INTERNAL Control(const Control&);
+  DALI_INTERNAL Control& operator=(const Control&);
 
   class Impl;
   Impl* mImpl;