Implement for added scrollinput mode in UI builder and modify for wrong display previ...
authorwonyoung12.lee <wonyoung12.lee@samsung.com>
Wed, 3 Apr 2013 06:37:39 +0000 (15:37 +0900)
committerwonyoung12.lee <wonyoung12.lee@samsung.com>
Wed, 3 Apr 2013 13:09:26 +0000 (22:09 +0900)
Change-Id: Ie6e3df345580c52873c8e454ba6a43ed8116b32f
Signed-off-by: wonyoung12.lee <wonyoung12.lee@samsung.com>
src/ui/controls/FUiCtrl_IconListPresenter.cpp
src/ui/controls/FUiCtrl_IconListViewImpl.cpp [changed mode: 0644->0755]
src/ui/inc/FUiCtrl_IconListPresenter.h

index c9ab146..3e21abb 100755 (executable)
@@ -110,6 +110,7 @@ _IconListPresenter::_IconListPresenter(_IconListView* pIconListView, _ListViewMo
        , __isSelectionDelayed(false)
        , __isCheckAnimationRunning(false)
        , __isSelectAnimationRunning(false)
+       , __pPreviousAnimationVE(null)
        , __pRemoveItemVE(null)
        , __pEmptyListVE(null)
        , __pVE(null)
@@ -130,6 +131,7 @@ _IconListPresenter::_IconListPresenter(_IconListView* pIconListView, _ListViewMo
        , __isFlickDown(false)
        , __flickRunning(false)
        , __animationItemIndex(INVALID_INDEX)
+       , __previousAnimationItemIndex(INVALID_INDEX)
        , __addTransactionId(0)
        , __removeTransactionId(0)
        , __moveTransactionId(0)
@@ -2662,8 +2664,6 @@ _IconListPresenter::ResetAnimationTimer(void)
        delete __pAnimationTimer;
        __pAnimationTimer = null;
 
-       __animationItemIndex = INVALID_INDEX;
-
        return E_SUCCESS;
 }
 
@@ -3335,7 +3335,10 @@ _IconListPresenter::OnAnimationTransactionStopped(int transactionId)
 {
        if (__addTransactionId == transactionId)
        {
+               __animationItemIndex = INVALID_INDEX;
                __addTransactionId = 0;
+               __pPreviousAnimationVE->SetOpacity(1.0f);
+               RedrawItem(__previousAnimationItemIndex);
        }
        else if (__removeTransactionId == transactionId)
        {
@@ -3372,6 +3375,8 @@ _IconListPresenter::OnAnimationTransactionFinished(int transactionId)
        if (__addTransactionId == transactionId)
        {
                __addTransactionId = 0;
+               RedrawItem(__animationItemIndex);
+               __animationItemIndex = INVALID_INDEX;
        }
        else if (__removeTransactionId == transactionId)
        {
@@ -4016,55 +4021,47 @@ _IconListPresenter::AddAnimation(_IconListItem& item, int index, int delay)
        _VisualElement* pVE = item.GetItemVisualElement();
        if (pVE != null)
        {
-               pVE->SetImplicitAnimationEnabled(false);
-
+               pVE->SetImplicitAnimationEnabled(true);
                FloatRectangle endRect(GetItemBounds(index));
                FloatRectangle startRect(endRect.x + (endRect.width * 0.15f), endRect.y + (endRect.height * 0.15f), endRect.width * 0.7f, endRect.height * 0.7f);
 
-               pVE->SetBounds(endRect);
-
                if (IsAnimationRunning(__addTransactionId))
                {
                        AnimationTransaction::Stop(__addTransactionId);
                }
 
                AnimationTransaction::Begin(__addTransactionId);
+               AnimationTransaction::SetVisualElementAnimationTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseInOut"));
+               AnimationTransaction::SetVisualElementAnimationDuration(ITEM_ANIMATION_DURATION);
+               AnimationTransaction::SetVisualElementAnimationDelay(delay);
 
                // opacity animation
                VisualElementPropertyAnimation* pOpacityAnimation = new (std::nothrow) VisualElementPropertyAnimation();
                SysTryReturnVoidResult(NID_UI_CTRL, (pOpacityAnimation != null), E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
 
-               pOpacityAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseInOut"));
                pOpacityAnimation->SetPropertyName(L"opacity");
                pOpacityAnimation->SetStartValue(Variant(0.0f));
                pOpacityAnimation->SetEndValue(Variant(1.0f));
-               pOpacityAnimation->SetDuration(ITEM_ANIMATION_DURATION);
-               pOpacityAnimation->SetDelay(delay);
 
-               String opacityAnimationName(L"AddItemOpacityAnimation");
-               pVE->AddAnimation(opacityAnimationName, *pOpacityAnimation);
+               pVE->AddAnimation(L"AddItemOpacityAnimation", *pOpacityAnimation);
                delete pOpacityAnimation;
 
                // scale animation
                VisualElementPropertyAnimation* pScaleAnimation = new (std::nothrow) VisualElementPropertyAnimation();
                SysTryReturnVoidResult(NID_UI_CTRL, (pScaleAnimation != null), E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
 
-               pScaleAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseInOut"));
                pScaleAnimation->SetPropertyName(L"bounds");
                pScaleAnimation->SetStartValue(Variant(startRect));
                pScaleAnimation->SetEndValue(Variant(endRect));
-               pScaleAnimation->SetDuration(ITEM_ANIMATION_DURATION);
-               pScaleAnimation->SetDelay(delay);
 
-               String scaleAnimationName(L"AddItemScaleAnimation");
-               pVE->AddAnimation(scaleAnimationName, *pScaleAnimation);
+               pVE->AddAnimation(L"AddItemScaleAnimation", *pScaleAnimation);
                delete pScaleAnimation;
 
-               pVE->SetImplicitAnimationEnabled(true);
-               item.DrawItem(endRect, LIST_ITEM_STATE_NORMAL);
                pVE->SetImplicitAnimationEnabled(false);
 
                AnimationTransaction::Commit();
+               __previousAnimationItemIndex = index;
+               __pPreviousAnimationVE = pVE;
        }
 }
 
old mode 100644 (file)
new mode 100755 (executable)
index a4a0a8f..5205089
@@ -693,6 +693,7 @@ protected:
 
                IconListViewStyle style = ICON_LIST_VIEW_STYLE_NORMAL;
                IconListViewScrollDirection scrollDirection = ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL;
+               ScrollInputMode scrollInputMode = SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION;
 
                // Get Bounds
                FloatDimension itemBitmapSize(100.0f, 100.0f);
@@ -1007,6 +1008,21 @@ protected:
                        pIconListView->SetMagneticScrollSize(size);
                }
 
+               // Scroll Input Mode
+               if (pControl->GetElement("scrollInputMode", elementString))
+               {
+                       if (elementString.Equals(L"SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION", false))
+                       {
+                               scrollInputMode = SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION;
+                       }
+                       else if (elementString.Equals(L"SCROLL_INPUT_MODE_RESTRICT_TO_INITIAL_DIRECTION", false))
+                       {
+                               scrollInputMode = SCROLL_INPUT_MODE_RESTRICT_TO_INITIAL_DIRECTION;
+                       }
+
+                       pIconListView->SetScrollInputMode(scrollInputMode);
+               }
+
                return pIconListView;
 
 CATCH:
index c8db3a4..f22f889 100755 (executable)
@@ -413,6 +413,7 @@ private:
        bool __isCheckAnimationRunning;
        bool __isSelectAnimationRunning;
 
+       Tizen::Ui::Animations::_VisualElement* __pPreviousAnimationVE;
        Tizen::Ui::Animations::_VisualElement* __pRemoveItemVE;
        Tizen::Ui::Animations::_VisualElement* __pEmptyListVE;
        Tizen::Ui::Animations::_VisualElement* __pVE;
@@ -437,6 +438,7 @@ private:
        bool __flickRunning;
 
        int __animationItemIndex;
+       int __previousAnimationItemIndex;
        int __addTransactionId;
        int __removeTransactionId;
        int __moveTransactionId;