From: SangYong Lee Date: Thu, 11 Apr 2013 06:47:27 +0000 (+0900) Subject: Modified life cycle of animation object in TableViewITem, modified ScrollToInternal X-Git-Tag: accepted/tizen_2.1/20130425.033138~291^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=be2fc8f7035fe4304fcddc7a7886a6f01d26838d;p=platform%2Fframework%2Fnative%2Fuifw.git Modified life cycle of animation object in TableViewITem, modified ScrollToInternal Change-Id: I11a8ee6afce37a3ba8b3bfcb2d3c8e0b005fbd0b Signed-off-by: SangYong Lee --- diff --git a/src/ui/controls/FUiCtrl_TableViewItem.cpp b/src/ui/controls/FUiCtrl_TableViewItem.cpp index 3644bd9..14db095 100644 --- a/src/ui/controls/FUiCtrl_TableViewItem.cpp +++ b/src/ui/controls/FUiCtrl_TableViewItem.cpp @@ -439,51 +439,6 @@ _TableViewItem::Initialize(void) SetTouchPressThreshold(INSENSITIVE); - __pMoveItemAnimation = new (std::nothrow) VisualElementValueAnimation; - SysTryCatch(NID_UI_CTRL, __pMoveItemAnimation != null, , E_OUT_OF_MEMORY, ("[E_OUT_OF_MEMORY] The memory is insufficient.")); - - __pMoveItemAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseInOut")); - r = GetLastResult(); - SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); - - __pMoveItemAnimation->SetVisualElementAnimationTickEventListener(this); - r = GetLastResult(); - SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); - - __pMoveItemAnimation->SetVisualElementAnimationStatusEventListener(this); - r = GetLastResult(); - SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); - - __pZoomInOutItemAnimation = new (std::nothrow) VisualElementValueAnimation; - SysTryCatch(NID_UI_CTRL, __pZoomInOutItemAnimation != null, , E_OUT_OF_MEMORY, ("[E_OUT_OF_MEMORY] The memory is insufficient.")); - - __pZoomInOutItemAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseIn")); - r = GetLastResult(); - SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); - - __pZoomInOutItemAnimation->SetVisualElementAnimationTickEventListener(this); - r = GetLastResult(); - SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); - - __pZoomInOutItemAnimation->SetVisualElementAnimationStatusEventListener(this); - r = GetLastResult(); - SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); - - __pFadeInOutItemtAnimation = new (std::nothrow) VisualElementValueAnimation; - SysTryCatch(NID_UI_CTRL, __pFadeInOutItemtAnimation != null, , E_OUT_OF_MEMORY, ("[E_OUT_OF_MEMORY] The memory is insufficient.")); - - __pFadeInOutItemtAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseIn")); - r = GetLastResult(); - SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); - - __pFadeInOutItemtAnimation->SetVisualElementAnimationTickEventListener(this); - r = GetLastResult(); - SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); - - __pFadeInOutItemtAnimation->SetVisualElementAnimationStatusEventListener(this); - r = GetLastResult(); - SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); - return r; CATCH: @@ -495,15 +450,6 @@ CATCH: __pHighlightVisualElement = null; } - delete __pMoveItemAnimation; - __pMoveItemAnimation = null; - - delete __pZoomInOutItemAnimation; - __pZoomInOutItemAnimation = null; - - delete __pFadeInOutItemtAnimation; - __pFadeInOutItemtAnimation = null; - return r; } @@ -3752,28 +3698,34 @@ _TableViewItem::SetSelectionState(bool selected) } bool -_TableViewItem::MoveItem(FloatPoint position, int duration, int delay, Tizen::Base::String* pName) +_TableViewItem::MoveItem(FloatPoint position, int duration, int delay) { _VisualElement* pVisualElement = GetVisualElement(); - + VisualElementValueAnimation* pAnimation = null; String animationName = L"MOVE_ITEM"; + result r = E_SUCCESS; + + if (__pMoveItemAnimation == null) + { + __pMoveItemAnimation = new (std::nothrow) VisualElementValueAnimation; + SysTryCatch(NID_UI_CTRL, __pMoveItemAnimation != null, , E_OUT_OF_MEMORY, ("[E_OUT_OF_MEMORY] The memory is insufficient.")); + + __pMoveItemAnimation->SetVisualElementAnimationTickEventListener(this); + r = GetLastResult(); + SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); + + __pMoveItemAnimation->SetVisualElementAnimationStatusEventListener(this); + r = GetLastResult(); + SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); + } - VisualElementValueAnimation* pAnimation = __pMoveItemAnimation; + pAnimation = __pMoveItemAnimation; + pAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseInOut")); pAnimation->SetDuration(duration); pAnimation->SetDelay(delay); pAnimation->SetStartValue(Variant(GetPositionF())); pAnimation->SetEndValue(Variant(position)); - if (pName != null) - { - String* pUserData = new (std::nothrow) String(*pName); - SysTryCatch(NID_UI_CTRL, pUserData, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); - - if (pUserData != null) - { - pAnimation->SetUserData((void*)pUserData); - } - } if (pVisualElement->AddAnimation(animationName, *pAnimation) != E_SUCCESS) { @@ -3786,21 +3738,38 @@ _TableViewItem::MoveItem(FloatPoint position, int duration, int delay, Tizen::Ba CATCH: + delete __pMoveItemAnimation; + __pMoveItemAnimation = null; + return false; } bool -_TableViewItem::ZoomInOutItem(bool zoomOut, int duration, int delay, Tizen::Base::String* pName) +_TableViewItem::ZoomInOutItem(bool zoomOut, int duration, int delay) { _VisualElement* pVisualElement = GetVisualElement(); - + VisualElementValueAnimation* pAnimation = null; String animationName = L"ZOOM_IN_OUT_ITEM"; - - VisualElementValueAnimation* pAnimation = __pZoomInOutItemAnimation; - FloatDimension itemSize = GetSizeF(); FloatDimension startValue; FloatDimension endValue; + result r = E_SUCCESS; + + if (__pZoomInOutItemAnimation == null) + { + __pZoomInOutItemAnimation = new (std::nothrow) VisualElementValueAnimation; + SysTryCatch(NID_UI_CTRL, __pZoomInOutItemAnimation != null, , E_OUT_OF_MEMORY, ("[E_OUT_OF_MEMORY] The memory is insufficient.")); + + __pZoomInOutItemAnimation->SetVisualElementAnimationTickEventListener(this); + r = GetLastResult(); + SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); + + __pZoomInOutItemAnimation->SetVisualElementAnimationStatusEventListener(this); + r = GetLastResult(); + SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); + } + + pAnimation = __pZoomInOutItemAnimation; if (zoomOut) { @@ -3820,17 +3789,6 @@ _TableViewItem::ZoomInOutItem(bool zoomOut, int duration, int delay, Tizen::Base pAnimation->SetStartValue(Variant(startValue)); pAnimation->SetEndValue(Variant(endValue)); - if (pName != null) - { - String* pUserData = new (std::nothrow) String(*pName); - SysTryCatch(NID_UI_CTRL, pUserData, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); - - if (pUserData != null) - { - pAnimation->SetUserData((void*)pUserData); - } - } - if (pVisualElement->AddAnimation(animationName, *pAnimation) != E_SUCCESS) { return false; @@ -3841,21 +3799,37 @@ _TableViewItem::ZoomInOutItem(bool zoomOut, int duration, int delay, Tizen::Base return true; CATCH: + delete __pZoomInOutItemAnimation; + __pZoomInOutItemAnimation = null; return false; } bool -_TableViewItem::FadeInOutItem(bool fadeOut, int duration, int delay, Tizen::Base::String* pName) +_TableViewItem::FadeInOutItem(bool fadeOut, int duration, int delay) { _VisualElement* pVisualElement = GetVisualElement(); + VisualElementValueAnimation* pAnimation = null; + String animationName = L"FADE_IN_OUT_ITEM"; + float startValue = 0.0f; + float endValue = 1.0f; + result r = E_SUCCESS; + + if (__pFadeInOutItemtAnimation == null) + { + __pFadeInOutItemtAnimation = new (std::nothrow) VisualElementValueAnimation; + SysTryCatch(NID_UI_CTRL, __pFadeInOutItemtAnimation != null, , E_OUT_OF_MEMORY, ("[E_OUT_OF_MEMORY] The memory is insufficient.")); - String animationName = L"FADE_IN_OUT_ITEM";; + __pFadeInOutItemtAnimation->SetVisualElementAnimationTickEventListener(this); + r = GetLastResult(); + SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); - VisualElementValueAnimation* pAnimation = __pFadeInOutItemtAnimation; + __pFadeInOutItemtAnimation->SetVisualElementAnimationStatusEventListener(this); + r = GetLastResult(); + SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); + } - float startValue = 0.0f; - float endValue = 1.0f; + pAnimation = __pFadeInOutItemtAnimation; if (fadeOut) { @@ -3868,22 +3842,12 @@ _TableViewItem::FadeInOutItem(bool fadeOut, int duration, int delay, Tizen::Base pAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName(L"EaseIn")); } + pAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseIn")); pAnimation->SetDuration(duration); pAnimation->SetDelay(delay); pAnimation->SetStartValue(Variant(startValue)); pAnimation->SetEndValue(Variant(endValue)); - if (pName != null) - { - String* pUserData = new (std::nothrow) String(*pName); - SysTryCatch(NID_UI_CTRL, pUserData, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); - - if (pUserData != null) - { - pAnimation->SetUserData((void*)pUserData); - } - } - if (pVisualElement->AddAnimation(animationName, *pAnimation) != E_SUCCESS) { return false; @@ -3897,6 +3861,9 @@ _TableViewItem::FadeInOutItem(bool fadeOut, int duration, int delay, Tizen::Base CATCH: + delete __pFadeInOutItemtAnimation; + __pFadeInOutItemtAnimation = null; + return false; } diff --git a/src/ui/controls/FUiCtrl_TableViewPresenter.cpp b/src/ui/controls/FUiCtrl_TableViewPresenter.cpp index 3307843..f87310d 100644 --- a/src/ui/controls/FUiCtrl_TableViewPresenter.cpp +++ b/src/ui/controls/FUiCtrl_TableViewPresenter.cpp @@ -2931,6 +2931,12 @@ _TableViewPresenter::ScrollToInternal(float newPosition) } } + //scroll effect for _ScrollPanel + if (newPosition < 0.0f || newPosition > currentscrollAreaHeight - __pTableView->GetBoundsF().height) + { + newScrollPosition = newPosition; + } + return _ScrollPanelPresenter::ScrollToInternal(newScrollPosition); } @@ -4161,10 +4167,7 @@ _TableViewPresenter::ReorderItem(int destinationGroupIndex, int destinationItemI } } - _ListItemPos originPosition = {__reorderInfo.groupIndex, __reorderInfo.itemIndex}; - _ListItemPos destinationPosition = {destinationGroupIndex, destinationItemIndex}; - - __pListModel->MoveItem(originPosition, destinationPosition); + __pListModel->MoveItem(__reorderInfo.groupIndex, __reorderInfo.itemIndex, destinationGroupIndex, destinationItemIndex); if (!pItem->MoveItem(destinationItemPosition, REORDER_ITEM_MOVE_ANIMATION_DURATION, 0)) { diff --git a/src/ui/inc/FUiCtrl_TableViewItem.h b/src/ui/inc/FUiCtrl_TableViewItem.h index f0ef601..d843436 100644 --- a/src/ui/inc/FUiCtrl_TableViewItem.h +++ b/src/ui/inc/FUiCtrl_TableViewItem.h @@ -219,9 +219,9 @@ public: result SetSectionHeaderFooterContents(const Tizen::Base::String& text, HorizontalAlignment alignment, bool isHeader); result SetSectionHeaderFooterAlignment(HorizontalAlignment alignment); - bool MoveItem(Tizen::Graphics::FloatPoint position, int duration, int delay, Tizen::Base::String* pName = null); - bool FadeInOutItem(bool fadeOut, int duration, int delay, Tizen::Base::String* pName = null); - bool ZoomInOutItem(bool zoomOut, int duration, int delay, Tizen::Base::String* pName = null); + bool MoveItem(Tizen::Graphics::FloatPoint position, int duration, int delay); + bool FadeInOutItem(bool fadeOut, int duration, int delay); + bool ZoomInOutItem(bool zoomOut, int duration, int delay); Tizen::Graphics::Point GetLastTouchPressedPosition(void); Tizen::Graphics::FloatPoint GetLastTouchPressedPositionF(void);