Fixed jira issue.
[platform/framework/native/uifw.git] / src / ui / controls / FUiCtrl_Indicator.cpp
index eb5f090..29fe16e 100644 (file)
@@ -33,6 +33,7 @@
 #include "FUiCtrl_Form.h"
 #include "FUiCtrl_Indicator.h"
 #include "FUiCtrl_IndicatorManager.h"
+#include "FUiAnim_EflVisualElementSurfaceImpl.h"
 
 using namespace Tizen::Base::Runtime;
 using namespace Tizen::Graphics;
@@ -615,12 +616,38 @@ _Indicator::OnMessageHandle(Ecore_Evas *pEe, int msgDomain, int msgId, void *dat
                return;
        }
 
+       Evas_Object* pPortraitIndicatorEvasObject = (Evas_Object*)ecore_evas_data_get(pEe, pPortPublicKey);
+       Evas_Object* pLandscapeIndicatorEvasObject = (Evas_Object*)ecore_evas_data_get(pEe, pLandPublicKey);
+
        if (msgDomain == MSG_DOMAIN_CONTROL_INDICATOR)
        {
-               /*if (msg_id == MSG_ID_INDICATOR_REPEAT_EVENT)
+               if (msgId == MSG_ID_INDICATOR_REPEAT_EVENT)
                {
-                       int *repeat = static_cast<int*>(data);
-               }*/
+                       int *repeat = (int*)data;
+                       if (1 == *repeat)
+                       {
+                               if (pPortraitIndicatorEvasObject)
+                          {
+                                       evas_object_repeat_events_set(pPortraitIndicatorEvasObject, EINA_TRUE);
+                          }
+                               if (pLandscapeIndicatorEvasObject)
+                               {
+                          evas_object_repeat_events_set(pLandscapeIndicatorEvasObject, EINA_TRUE);
+                               }
+                       }
+                       else
+                       {
+                               if (pPortraitIndicatorEvasObject)
+                          {
+                          evas_object_repeat_events_set(pPortraitIndicatorEvasObject, EINA_FALSE);
+                          }
+                               if (pLandscapeIndicatorEvasObject)
+                               {
+                          evas_object_repeat_events_set(pLandscapeIndicatorEvasObject, EINA_FALSE);
+                               }
+                       }
+               }
+
                if (msgId == MSG_ID_INDICATOR_TYPE)
                {
                        _IndicatorTypeMode *pIndicatorTypeMode = (_IndicatorTypeMode*)(data);
@@ -642,4 +669,27 @@ _Indicator::OnMessageHandle(Ecore_Evas *pEe, int msgDomain, int msgId, void *dat
        }
 }
 
+HitTestResult
+_Indicator::OnHitTest(const Tizen::Graphics::FloatPoint& point)
+{
+       if (!IsVisible())
+       {
+               return HIT_TEST_NOWHERE;
+       }
+
+       if (!GetBounds().Contains(point))
+       {
+               return HIT_TEST_NOWHERE;
+       }
+
+       _VisualElementImpl* pImpl = _VisualElementImpl::GetInstance(*this->__pCurrentVisualElement);
+       _EflVisualElementSurfaceImpl* pSurface = dynamic_cast<_EflVisualElementSurfaceImpl*>(_VisualElementSurfaceImpl::GetInstance(*pImpl->GetNativeNode()->GetSurface()));
+       Evas_Object* pImageObject = (Evas_Object*)pSurface->GetNativeHandle();
+
+       if (!evas_object_repeat_events_get(pImageObject))
+               return HIT_TEST_MATCH;
+       else
+               return HIT_TEST_NOWHERE;
+}
+
 }}} // Tizen::Ui::Controls