Fixes in EditDate / EditTime w.r.t OnActivation /
authorSyed Khaja Moinuddin <moinuddin.s@samsung.com>
Tue, 26 Mar 2013 02:33:31 +0000 (11:33 +0900)
committerSyed Khaja Moinuddin <moinuddin.s@samsung.com>
Tue, 26 Mar 2013 13:57:16 +0000 (22:57 +0900)
 OnDeactivation.
Signed-off-by: Syed Khaja Moinuddin <moinuddin.s@samsung.com>
Change-Id: Ib761aa03c6a6abfb44ae2b8020c068096c8583bf
Signed-off-by: Syed Khaja Moinuddin <moinuddin.s@samsung.com>
src/ui/controls/FUiCtrl_DateTimeBar.cpp
src/ui/controls/FUiCtrl_DateTimeBarPresenter.cpp
src/ui/controls/FUiCtrl_EditDate.cpp
src/ui/controls/FUiCtrl_EditDatePresenter.cpp
src/ui/controls/FUiCtrl_EditTime.cpp
src/ui/controls/FUiCtrl_EditTimePresenter.cpp
src/ui/inc/FUiCtrl_DateTimeBar.h
src/ui/inc/FUiCtrl_DateTimeBarPresenter.h

index 1a64190..213ca4e 100644 (file)
@@ -94,9 +94,6 @@ _DateTimeBar::CreateDateTimeBarN(_Control& owner)
 
        pDateTimeBar->__pOwner = &owner;
 
-       // if SetActivationEnabled is removed, then remove IsActivatedOnOpen CallBack as well.
-       pDateTimeBar->SetActivationEnabled(false);
-
        pDateTimeBar->__pDateTimeBarPresenter = _DateTimeBarPresenter::CreateInstanceN(*pDateTimeBar);
        r = GetLastResult();
        SysTryCatch(NID_UI_CTRL, pDateTimeBar->__pDateTimeBarPresenter != null, , r,
@@ -131,12 +128,6 @@ CATCH:
        return null;
 }
 
-bool
-_DateTimeBar::IsActivatedOnOpen(void) const
-{
-       return false;
-}
-
 result
 _DateTimeBar::SetPositionAndAlignment(const FloatPoint& point, _DateTimeBarAlignment alignment)
 {
@@ -425,35 +416,31 @@ _DateTimeBar::OnAttachedToMainTree(void)
 {
        SetOwner(__pOwner);
 
-       int itemWidth = 0;
+       return _Window::OnAttachedToMainTree();
+}
 
-       if (GetSelectedBoxId() == DATETIME_ID_MONTH)
-       {
-               GET_SHAPE_CONFIG(DATETIMEBAR::MONTH_ITEM_WIDTH, _ControlManager::GetInstance()->GetOrientation(), itemWidth);
-       }
-       else if (GetSelectedBoxId() == DATETIME_ID_YEAR)
-       {
-               GET_SHAPE_CONFIG(DATETIMEBAR::YEAR_ITEM_WIDTH, _ControlManager::GetInstance()->GetOrientation(), itemWidth);
-       }
-       else
-       {
-               GET_SHAPE_CONFIG(DATETIMEBAR::DAY_ITEM_WIDTH, _ControlManager::GetInstance()->GetOrientation(), itemWidth);
-       }
+void
+_DateTimeBar::OnActivated(void)
+{
+       RefreshItems();
+       SetTouchCapture(true, true);
 
-       __pDateTimeBarPresenter->SetInitialAnimationValue(itemWidth);
+       return _Window::OnActivated();
+}
 
-       __pDateTimeBarPresenter->StartAnimationEffect();
+void
+_DateTimeBar::OnDeactivated(void)
+{
+       ReleaseTouchCapture();
 
-       SetTouchCapture(true, true);
+       GetOwner()->Invalidate();
 
-       return _Window::OnAttachedToMainTree();
+       return  _Window::OnDeactivated();
 }
 
 result
 _DateTimeBar::OnDetachingFromMainTree(void)
 {
-       ReleaseTouchCapture();
-
        return _Window::OnDetachingFromMainTree();
 }
 
@@ -615,6 +602,31 @@ _DateTimeBar::GetParentWindowBounds() const
        return __parentWindowBounds;
 }
 
+void
+_DateTimeBar::RefreshItems(void)
+{
+       float itemWidth = 0;
+
+       if (GetSelectedBoxId() == DATETIME_ID_MONTH)
+       {
+               GET_SHAPE_CONFIG(DATETIMEBAR::MONTH_ITEM_WIDTH, _ControlManager::GetInstance()->GetOrientation(), itemWidth);
+       }
+       else if (GetSelectedBoxId() == DATETIME_ID_YEAR)
+       {
+               GET_SHAPE_CONFIG(DATETIMEBAR::YEAR_ITEM_WIDTH, _ControlManager::GetInstance()->GetOrientation(), itemWidth);
+       }
+       else
+       {
+               GET_SHAPE_CONFIG(DATETIMEBAR::DAY_ITEM_WIDTH, _ControlManager::GetInstance()->GetOrientation(), itemWidth);
+       }
+
+       __pDateTimeBarPresenter->SetInitialAnimationValue(itemWidth);
+
+       __pDateTimeBarPresenter->StartAnimationEffect();
+
+       return;
+}
+
 bool
 _DateTimeBar::OnAccessibilityFocusMovedNext(const _AccessibilityContainer& control, const _AccessibilityElement& element)
 {
index 362ab32..1dcf504 100755 (executable)
@@ -58,7 +58,7 @@ _DateTimeBarPresenter::_DateTimeBarPresenter(_DateTimeBar* pDateTimeBar)
        , __pBgColorReplacementBitmap(null)
        , __pArrowColorReplacementBitmap(null)
        , __isInitialAnimation(false)
-       , __initialAnimationValue(0)
+       , __initialAnimationValue(0.0f)
        , __pFont(null)
 {
 }
@@ -1339,9 +1339,9 @@ _DateTimeBarPresenter::StartAnimationEffect(void)
        __isInitialAnimation = true;
        __distance = -10.0f;
 
-       if (__initialAnimationValue >= 0 )
+       if (__initialAnimationValue >= 0.0f )
        {
-               __initialAnimationValue = __initialAnimationValue + _CoordinateSystemUtils::ConvertToInteger(__distance);
+               __initialAnimationValue = __initialAnimationValue + __distance;
                StartFlickAnimationTimer();
 
                LoadItems();
@@ -1350,7 +1350,7 @@ _DateTimeBarPresenter::StartAnimationEffect(void)
        }
        else
        {
-               __initialAnimationValue = 0;
+               __initialAnimationValue = 0.0f;
                __isInitialAnimation = false;
                ResetFlickAnimationTimer();
                ValidateAndAdjustStartPosition();
@@ -1465,7 +1465,7 @@ _DateTimeBarPresenter::ValidateAndAdjustStartPosition(void)
 }
 
 void
-_DateTimeBarPresenter::SetInitialAnimationValue(int animationValue)
+_DateTimeBarPresenter::SetInitialAnimationValue(float animationValue)
 {
        __initialAnimationValue = animationValue;
        return;
index a634c30..a52c8db 100644 (file)
@@ -785,6 +785,8 @@ _EditDate::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
 {
        FloatRectangle absoluteBounds = GetAbsoluteBoundsF();
 
+       SetFocused(true);
+
        if (absoluteBounds.y != __absoluteBounds.y || absoluteBounds.height != __absoluteBounds.height)
        {
                CalculateDateTimeBarPosition();
index 7f43956..fcfbced 100644 (file)
@@ -681,7 +681,7 @@ _EditDatePresenter::OnTouchPressed(const _Control& source, const _TouchInfo& tou
        if (boxId < DATETIME_ID_YEAR || boxId > DATETIME_ID_DAY)
        {
                __selectedId = DATETIME_ID_NONE;
-               return true;
+               return false;
        }
 
        int minValue = -1;
@@ -727,9 +727,6 @@ _EditDatePresenter::OnTouchPressed(const _Control& source, const _TouchInfo& tou
        }
 
        __selectedId = boxId;
-
-       __pEditDate->Invalidate();
-
        return true;
 }
 
@@ -748,14 +745,22 @@ _EditDatePresenter::OnTouchReleased(const _Control& source, const _TouchInfo& to
 
        _DateTimeId boxId = DATETIME_ID_NONE;
        boxId = GetBoxIdFromPosition(point);
-
-       if (boxId != __selectedId)
+       if (boxId != __selectedId || boxId == DATETIME_ID_NONE)
        {
+               if (__pEditDate->GetDateTimeBar() != null && __pEditDate->GetDateTimeBar()->IsActivated())
+               {
+                       __pEditDate->GetDateTimeBar()->SetVisibleState(false);
+                       __pEditDate->GetDateTimeBar()->Close();
+               }
+
+               Draw();
                __selectedId = DATETIME_ID_NONE;
+               SetLastSelectedId(__selectedId);
+
+               return true;
        }
 
        SetLastSelectedId(__selectedId);
-       __selectedId = DATETIME_ID_NONE;
 
        __lastSelectedValue = "";
        _DateTimeUtils dateTimeUtils;
@@ -775,9 +780,9 @@ _EditDatePresenter::OnTouchReleased(const _Control& source, const _TouchInfo& to
                PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP);
        }
 
-       __pEditDate->Invalidate();
+       Draw();
 
-       if (__pEditDate->GetDateTimeBar() != null && GetLastSelectedId() != DATETIME_ID_NONE)
+       if ((__pEditDate->GetDateTimeBar() != null) && (GetLastSelectedId() != DATETIME_ID_NONE))
        {
                FloatRectangle bounds(0.0f, 0.0f, 0.0f, 0.0f);
                bounds = GetDateAreaBounds(GetLastSelectedId());
@@ -786,11 +791,19 @@ _EditDatePresenter::OnTouchReleased(const _Control& source, const _TouchInfo& to
                bounds.x += absoluteBounds.x;
 
                __pEditDate->GetDateTimeBar()->CalculateArrowBounds(bounds);
-               __pEditDate->GetDateTimeBar()->SetVisibleState(true);
-               __pEditDate->GetDateTimeBar()->Close();
-               __pEditDate->GetDateTimeBar()->Open();
+
+               if (__pEditDate->GetDateTimeBar()->IsActivated())
+               {
+                       __pEditDate->GetDateTimeBar()->RefreshItems();
+               }
+               else
+               {
+                       __pEditDate->GetDateTimeBar()->SetVisibleState(true);
+                       __pEditDate->GetDateTimeBar()->Open();
+               }
        }
 
+       __selectedId = DATETIME_ID_NONE;
        return true;
 }
 
@@ -804,8 +817,6 @@ _EditDatePresenter::OnTouchCanceled(const _Control& source, const _TouchInfo& to
 
        __selectedId = DATETIME_ID_NONE;
 
-       __pEditDate->Invalidate();
-
        return true;
 }
 
@@ -824,7 +835,6 @@ _EditDatePresenter::OnTouchMoved(const _Control& source, const _TouchInfo& touch
                __selectedId = DATETIME_ID_NONE;
        }
 
-       __pEditDate->Invalidate();
        return false;
 }
 
@@ -833,7 +843,7 @@ _EditDatePresenter::OnTouchMoveHandled(const _Control& control)
 {
        __touchMoveHandled = true;
        __selectedId = DATETIME_ID_NONE;
-       __pEditDate->Invalidate();
+
        return;
 }
 
index e4068c2..b8af3e4 100644 (file)
@@ -577,6 +577,8 @@ _EditTime::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
 {
        FloatRectangle absoluteBounds = GetAbsoluteBoundsF();
 
+       SetFocused(true);
+
        if (absoluteBounds.y != __absoluteBounds.y || absoluteBounds.height != __absoluteBounds.height)
        {
                CalculateDateTimeBarPosition();
index d2dd65a..c76ee2c 100755 (executable)
@@ -701,7 +701,6 @@ _EditTimePresenter::DrawText(Canvas& canvas, const FloatRectangle& bounds, const
 {
        result r = E_SUCCESS;
 
-       Font font;
        Color textColor;
 
        _DateTimeId boxId = DATETIME_ID_NONE;
@@ -915,16 +914,17 @@ _EditTimePresenter::OnTouchPressed(const _Control& source, const _TouchInfo& tou
        }
        else if (boxId == DATETIME_ID_AMPM)
        {
+               __selectedId = boxId;
                __bounds = ampmBounds;
+               Draw();
        }
        else
        {
                __selectedId = DATETIME_ID_NONE;
                return false;
        }
-       __selectedId = boxId;
 
-       __pEditTime->Draw();
+       __selectedId = boxId;
 
        return true;
 }
@@ -952,21 +952,27 @@ _EditTimePresenter::OnTouchReleased(const _Control& source, const _TouchInfo& to
 
        _DateTimeId boxId = GetBoxIdFromPosition(point);
 
-       if (boxId < 0)
+       if (boxId != __selectedId || boxId == DATETIME_ID_NONE)
        {
-               __selectedId = DATETIME_ID_NONE;
-       }
+               if (__pEditTime->GetDateTimeBar() != null && __pEditTime->GetDateTimeBar()->IsActivated())
+               {
+                       __pEditTime->GetDateTimeBar()->SetVisibleState(false);
+                       __pEditTime->GetDateTimeBar()->Close();
+               }
+
+               Draw();
 
-       if (boxId != __selectedId)
-       {
                __selectedId = DATETIME_ID_NONE;
+               SetLastSelectedId(__selectedId);
+
+               return true;
        }
 
        SetLastSelectedId(__selectedId);
-       __selectedId = DATETIME_ID_NONE;
 
        __lastSelectedValue = "";
        _DateTimeUtils dateTimeUtils;
+
        if (GetLastSelectedId() == DATETIME_ID_HOUR)
        {
                int hours = GetHour();
@@ -988,18 +994,29 @@ _EditTimePresenter::OnTouchReleased(const _Control& source, const _TouchInfo& to
                __lastSelectedValue.Format(10, L"%02d", GetMinute());
                PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP);
        }
-
-       if (GetLastSelectedId() == DATETIME_ID_AMPM)
+       else if (GetLastSelectedId() == DATETIME_ID_AMPM)
        {
                SetAmEnabled(!GetAmEnabled());
                __pEditTime->FireTimeChangeEvent(TIME_INTERNAL_CHANGE_SAVED);
                __pEditTime->UpdateAccessibilityElement();
                PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP);
+
+               __selectedId = DATETIME_ID_NONE;
+
+               if (__pEditTime->GetDateTimeBar() != null && __pEditTime->GetDateTimeBar()->IsActivated())
+               {
+                       __pEditTime->GetDateTimeBar()->SetVisibleState(false);
+                       __pEditTime->GetDateTimeBar()->Close();
+               }
+
+               Draw();
+
+               return true;
        }
 
-       __pEditTime->Draw();
+       Draw();
 
-       if (__pEditTime->GetDateTimeBar() != null && boxId != DATETIME_ID_AMPM && GetLastSelectedId() != DATETIME_ID_NONE)
+       if ((__pEditTime->GetDateTimeBar() != null) && (boxId != DATETIME_ID_AMPM) && (GetLastSelectedId() != DATETIME_ID_NONE))
        {
                FloatRectangle bounds(0.0f, 0.0f, 0.0f, 0.0f);
                bounds = GetDisplayAreaBoundsFromHoursStyle(GetLastSelectedId());
@@ -1008,11 +1025,19 @@ _EditTimePresenter::OnTouchReleased(const _Control& source, const _TouchInfo& to
                bounds.x += absoluteBounds.x;
 
                __pEditTime->GetDateTimeBar()->CalculateArrowBounds(bounds);
-               __pEditTime->GetDateTimeBar()->SetVisibleState(true);
-               __pEditTime->GetDateTimeBar()->Close();
-               __pEditTime->GetDateTimeBar()->Open();
+
+               if (__pEditTime->GetDateTimeBar()->IsActivated())
+               {
+                       __pEditTime->GetDateTimeBar()->RefreshItems();
+               }
+               else
+               {
+                       __pEditTime->GetDateTimeBar()->SetVisibleState(true);
+                       __pEditTime->GetDateTimeBar()->Open();
+               }
        }
 
+       __selectedId = DATETIME_ID_NONE;
        return true;
 }
 
@@ -1026,8 +1051,6 @@ _EditTimePresenter::OnTouchCanceled(const _Control& source, const _TouchInfo& to
 
        __selectedId = DATETIME_ID_NONE;
 
-       __pEditTime->Draw();
-
        return true;
 }
 
@@ -1046,7 +1069,6 @@ _EditTimePresenter::OnTouchMoved(const _Control& source, const _TouchInfo& touch
                __selectedId = DATETIME_ID_NONE;
        }
 
-       __pEditTime->Invalidate();
        return false;
 }
 
@@ -1055,7 +1077,7 @@ _EditTimePresenter::OnTouchMoveHandled(const _Control& control)
 {
        __touchMoveHandled = true;
        __selectedId = DATETIME_ID_NONE;
-       __pEditTime->Invalidate();
+
        return;
 }
 
index 67f460c..cccaa3b 100644 (file)
@@ -82,7 +82,6 @@ public:
        result FireActionEvent(int actionId);
        result FireDateTimeChangeEvent(_DateTimeChangeStatus status);
 
-       virtual bool IsActivatedOnOpen(void) const;
        virtual void OnDraw(void);
        virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
        virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
@@ -91,6 +90,8 @@ public:
        virtual void OnTouchMoveHandled(const Tizen::Ui::_Control& control);
        virtual result OnAttachedToMainTree(void);
        virtual result OnDetachingFromMainTree(void);
+       virtual void OnActivated(void);
+       virtual void OnDeactivated(void);
        virtual bool OnFlickGestureDetected(_TouchFlickGestureDetector& gesture);
        virtual bool OnFlickGestureCanceled(_TouchFlickGestureDetector& gesture);
        void AddAccessibilityElement(const Tizen::Graphics::FloatRectangle& itemBounds, const Tizen::Base::String& itemText);
@@ -100,6 +101,7 @@ public:
        void SetFont(Tizen::Graphics::Font& pFont);
        void SetParentWindowBounds(Tizen::Graphics::FloatRectangle& parentWindowBounds);
        Tizen::Graphics::FloatRectangle GetParentWindowBounds() const;
+       void RefreshItems(void);
 
        // accessibility listener
        virtual bool OnAccessibilityFocusMovedNext(const _AccessibilityContainer& control, const _AccessibilityElement& element);
index 38d442f..c72e912 100644 (file)
@@ -83,7 +83,7 @@ public:
        virtual bool OnFlickGestureDetected(int distanceX,int distanceY,int duration);
        void StartFlickAnimation(void);
        void StartAnimationEffect(void);
-       void SetInitialAnimationValue(int animationValue);
+       void SetInitialAnimationValue(float animationValue);
        void SetFont(Tizen::Graphics::Font& pFont);
 
        virtual bool OnAccessibilityFocusMovedNext(const _AccessibilityContainer& control, const _AccessibilityElement& element);