Fixed Touch effect/event
authorHeeJu Kang <mobum.kang@samsung.com>
Sat, 16 Mar 2013 07:02:31 +0000 (16:02 +0900)
committerHeeJu Kang <mobum.kang@samsung.com>
Sat, 16 Mar 2013 07:02:31 +0000 (16:02 +0900)
Change-Id: Ieeebb1cf150dc3e1428792917de8989a8f4e1491
Signed-off-by: HeeJu Kang <mobum.kang@samsung.com>
src/FShell_AppWidgetView.cpp
src/FShell_AppWidgetView.h

index d7c4ff8..4f50067 100644 (file)
@@ -21,6 +21,7 @@
 
 #include <new>
 #include <livebox.h>
+#include <livebox-service.h>
 #include <FBaseColLinkedListT.h>
 #include <FBaseSysLog.h>
 #include <FBaseString.h>
@@ -30,6 +31,7 @@
 #include <FGrpPoint.h>
 #include <FGrpRectangle.h>
 #include <FUiAnimVisualElementPropertyAnimation.h>
+#include <FBase_StringConverter.h>
 #include <FGrp_BitmapImpl.h>
 #include <FMedia_ImageDecoder.h>
 #include "FUi_TouchFlickGestureDetector.h"
@@ -126,23 +128,26 @@ _AppWidgetView::Initialize(const AppId& appId, const Tizen::Base::String& provid
 
        __pAppIconBitmap = move(pBitmap);
 
-       unique_ptr<_TouchFlickGestureDetector> pTouchFlickGestureDetector(new (std::nothrow) _TouchFlickGestureDetector());
-       SysTryReturn(NID_UI_CTRL, pTouchFlickGestureDetector, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
+       __pAppWidget = __pAppWidgetViewManager->AddAppWidgetView(this, userInfo);
+       r = GetLastResult();
+       SysTryReturn(NID_UI_CTRL, __pAppWidget, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
-       pTouchFlickGestureDetector->SetDelayTouchEventEnabled(true);
-       pTouchFlickGestureDetector->SetCancelTouchEventOnSuccessEnabled(true);
+       if (livebox_has_pd(__pAppWidget))
+       {
+               unique_ptr<_TouchFlickGestureDetector> pTouchFlickGestureDetector(new (std::nothrow) _TouchFlickGestureDetector());
+               SysTryReturn(NID_UI_CTRL, pTouchFlickGestureDetector, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
 
-       r = AddGestureDetector(*pTouchFlickGestureDetector.get());
-       SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+               pTouchFlickGestureDetector->SetDelayTouchEventEnabled(true);
+               pTouchFlickGestureDetector->SetCancelTouchEventOnSuccessEnabled(true);
 
-       r = pTouchFlickGestureDetector->AddGestureListener(*this);
-       SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+               r = AddGestureDetector(*pTouchFlickGestureDetector.get());
+               SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
-       __pTouchFlickGestureDetector = move(pTouchFlickGestureDetector);
+               r = pTouchFlickGestureDetector->AddGestureListener(*this);
+               SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
-       __pAppWidget = __pAppWidgetViewManager->AddAppWidgetView(this, userInfo);
-       r = GetLastResult();
-       SysTryReturn(NID_UI_CTRL, __pAppWidget, r, r, "[%s] Propagating.", GetErrorMessage(r));
+               __pTouchFlickGestureDetector = move(pTouchFlickGestureDetector);
+       }
 
        Bitmap* pResourceBitmap = null;
 
@@ -377,6 +382,24 @@ _AppWidgetView::GetRemainingSpace(int& lower, int& upper) const
        SysLog(NID_UI_CTRL, "[%d %d]", lower, upper);
 }
 
+bool
+_AppWidgetView::IsTouchEventEnabled(void) const
+{
+       unique_ptr<char[]> pAppId(_StringConverter::CopyToCharArrayN(GetAppId()));
+       int ret = livebox_service_mouse_event(pAppId.get());
+
+       return ( ret == 1 );
+}
+
+bool
+_AppWidgetView::IsTouchEffectEnabled(void) const
+{
+       unique_ptr<char[]> pAppId(_StringConverter::CopyToCharArrayN(GetAppId()));
+       int ret = livebox_service_touch_effect(pAppId.get());
+
+       return ( ret == 1 );
+}
+
 result
 _AppWidgetView::OnAttachedToMainTree(void)
 {
@@ -428,7 +451,7 @@ bool
 _AppWidgetView::OnTouchPressed(const _Control& source, const _TouchInfo& touchInfo)
 {
        int type = livebox_lb_type(__pAppWidget);
-       if ((type == LB_TYPE_BUFFER) || (type == LB_TYPE_PIXMAP))
+       if (((type == LB_TYPE_BUFFER) || (type == LB_TYPE_PIXMAP)) && IsTouchEventEnabled())
        {
                double x = 0.0;
                double y = 0.0;
@@ -449,7 +472,7 @@ _AppWidgetView::OnTouchReleased(const _Control& source, const _TouchInfo& touchI
        Point position(_CoordinateSystemUtils::ConvertToInteger(touchInfo.GetCurrentPosition()));
        FloatPoint floatPosition(static_cast<float>(position.x), static_cast<float>(position.y));
 
-       if (clientBounds.Contains(floatPosition))
+       if (clientBounds.Contains(floatPosition) && IsTouchEffectEnabled())
        {
                PlayClickAnimation();
        }
@@ -459,7 +482,7 @@ _AppWidgetView::OnTouchReleased(const _Control& source, const _TouchInfo& touchI
        GetTouchPostion(floatPosition, x, y);
 
        int type = livebox_lb_type(__pAppWidget);
-       if ((type == LB_TYPE_BUFFER) || (type == LB_TYPE_PIXMAP))
+        if (((type == LB_TYPE_BUFFER) || (type == LB_TYPE_PIXMAP)) && IsTouchEventEnabled())
        {
                livebox_content_event(__pAppWidget, LB_MOUSE_UP, x, y);
        }
@@ -473,7 +496,7 @@ bool
 _AppWidgetView::OnTouchMoved(const _Control& source, const _TouchInfo& touchInfo)
 {
        int type = livebox_lb_type(__pAppWidget);
-       if ((type == LB_TYPE_BUFFER) || (type == LB_TYPE_PIXMAP))
+        if (((type == LB_TYPE_BUFFER) || (type == LB_TYPE_PIXMAP)) && IsTouchEventEnabled())
        {
                double x = 0.0;
                double y = 0.0;
index f4e782b..993e75c 100644 (file)
@@ -98,6 +98,8 @@ private:
        void PlayClickAnimation(void);
        void PlayFlickAnimation(void);
        void GetRemainingSpace(int& lower, int& upper) const;
+       bool IsTouchEventEnabled(void) const;
+       bool IsTouchEffectEnabled(void) const;
 
        virtual result OnAttachedToMainTree(void);
        virtual result OnDetachingFromMainTree(void);