Added default hover event handling in Control 18/27818/7
authorRichard Huang <r.huang@samsung.com>
Fri, 19 Sep 2014 10:50:50 +0000 (11:50 +0100)
committerRichard Huang <r.huang@samsung.com>
Fri, 3 Oct 2014 12:16:03 +0000 (05:16 -0700)
Change-Id: I091db23b835e856aabdc8e5c2273318812a0cacc

base/dali-toolkit/public-api/controls/control-impl.cpp
base/dali-toolkit/public-api/controls/control-impl.h

index 74720d0..c7b03dc 100644 (file)
@@ -556,7 +556,7 @@ public:
 
   Toolkit::Control::SizePolicy mWidthPolicy :3;  ///< Stores the width policy. 3 bits covers 8 values
   Toolkit::Control::SizePolicy mHeightPolicy :3; ///< Stores the height policy. 3 bits covers 8 values
-  ControlBehaviour mFlags :4;             ///< Flags passed in from constructor. Need to increase this size when new enums are added
+  ControlBehaviour mFlags :6;             ///< Flags passed in from constructor. Need to increase this size when new enums are added
   bool mInsideRelayout:1;                 ///< Detect when were in Relayout
   bool mIsKeyboardNavigationSupported:1;  ///< Stores whether keyboard navigation is supported by the control.
   bool mIsKeyboardFocusGroup:1;           ///< Stores whether the control is a focus group.
@@ -617,6 +617,9 @@ void Control::Initialize()
     GetImpl( styleManager ).ApplyThemeStyle( GetOwner() );
   }
 
+  SetRequiresHoverEvents(mImpl->mFlags & REQUIRES_HOVER_EVENTS);
+  SetRequiresMouseWheelEvents(mImpl->mFlags & REQUIRES_MOUSE_WHEEL_EVENTS);
+
   mImpl->mInitialized = true;
 }
 
@@ -866,6 +869,11 @@ bool Control::OnTouchEvent(const TouchEvent& event)
   return false; // Do not consume
 }
 
+bool Control::OnHoverEvent(const HoverEvent& event)
+{
+  return false; // Do not consume
+}
+
 bool Control::OnKeyEvent(const KeyEvent& event)
 {
   return false; // Do not consume
index fdcc05f..d863a5d 100644 (file)
@@ -507,6 +507,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);
@@ -549,7 +554,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.
   };
 
   /**