OnFocusModeStateChanged implementation in Tab.
authorsyed khaja moinuddin <moinuddin.s@samsung.com>
Tue, 28 May 2013 08:52:39 +0000 (14:22 +0530)
committersyed khaja moinuddin <moinuddin.s@samsung.com>
Fri, 31 May 2013 13:19:47 +0000 (18:49 +0530)
Signed-off-by: syed khaja moinuddin <moinuddin.s@samsung.com>
Change-Id: Ib74aeb3308f3608786ea7681f017ed3575782c70
Signed-off-by: syed khaja moinuddin <moinuddin.s@samsung.com>
src/ui/controls/FUiCtrl_Tab.cpp
src/ui/controls/FUiCtrl_TabPresenter.cpp
src/ui/inc/FUiCtrl_Tab.h

index c4b80c5..6b2a57a 100644 (file)
@@ -51,6 +51,7 @@ _Tab::_Tab(void)
        , __pPressedItemBackgroundEffectBitmap(null)
        , __pSelectedItemBackgroundBitmap(null)
        , __pHighlightedItemBackgroundBitmap(null)
+       , __isInFocusMode(false)
 {
        ClearLastResult();
        result r = E_SUCCESS;
@@ -728,7 +729,7 @@ _Tab::RemoveItemAt(int index)
        {
                __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
        }
-       if(GetItemCount() > 0)
+       if (GetItemCount() > 0)
        {
                __currentHighlightedItemIndex = 0;
        }
@@ -1030,6 +1031,12 @@ _Tab::IsEditModeEnabled(void) const
        return __pTabPresenter->IsEditModeEnabled();
 }
 
+bool
+_Tab::IsInFocusMode(void) const
+{
+       return __isInFocusMode;
+}
+
 result
 _Tab::SetBackgroundBitmap(const Bitmap& bitmap)
 {
@@ -1297,13 +1304,6 @@ _Tab::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
        {
                return true;
        }
-
-       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
-       {
-               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
-       }
-       __currentHighlightedItemIndex = -1;
-
        return __pTabPresenter->OnTouchPressed(source, touchinfo);
 }
 
@@ -1427,7 +1427,7 @@ _Tab::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
        }
        _KeyCode keyCode = keyInfo.GetKeyCode();
        int itemCount = __pTabPresenter->GetItemCount();
-       if(itemCount == 0)
+       if (itemCount == 0 || __isInFocusMode == false)
        {
                return false;
        }
@@ -1493,15 +1493,10 @@ _Tab::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
        return false;
 }
 
-bool
-_Tab::OnFocusGained(const _Control & source)
+void
+_Tab::OnDrawFocus(void)
 {
-       if (this != &source)
-       {
-               return false;
-       }
-
-       if(__pTabPresenter->GetItemCount() > 0)
+       if (__pTabPresenter->GetItemCount() > 0)
        {
                __currentHighlightedItemIndex = 0;
        }
@@ -1509,35 +1504,25 @@ _Tab::OnFocusGained(const _Control & source)
        {
                __currentHighlightedItemIndex = -1;
        }
-       return true;
-}
-
-bool
-_Tab::OnFocusLost(const _Control & source)
-{
-       if (this != &source)
+       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) != _TABITEM_STATUS_SELECTED)
        {
-               return false;
+               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_HIGHLIGHTED);
        }
+       __pTabPresenter->ShiftToFocusedItem(__currentHighlightedItemIndex, _FOCUS_DIRECTION_MOVE_LEFT);
+       __isInFocusMode = true;
+       return;
+}
 
+void
+_Tab::OnFocusModeStateChanged(void)
+{
        if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
        {
                __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
        }
        __currentHighlightedItemIndex = -1;
+       __isInFocusMode = false;
        Invalidate();
-       return true;
-}
-
-void
-_Tab::OnDrawFocus()
-{
-       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) != _TABITEM_STATUS_SELECTED)
-       {
-               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_HIGHLIGHTED);
-       }
-       __pTabPresenter->ShiftToFocusedItem(__currentHighlightedItemIndex, _FOCUS_DIRECTION_MOVE_LEFT);
-       return;
 }
 
 void
index 1c46502..a64e66f 100644 (file)
@@ -525,7 +525,7 @@ _TabPresenter::Draw(void)
                DrawItem(pCanvas);
        }
 
-       if (__pTab->GetCurrentHighlightedItemIndex() > -1 && __pTab->IsFocused() && GetItemCount() > 0)
+       if (__pTab->GetCurrentHighlightedItemIndex() > -1 && __pTab->IsInFocusMode() == true && GetItemCount() > 0)
        {
                DrawResourceBitmap(*pCanvas, GetItemAt(__pTab->GetCurrentHighlightedItemIndex())->GetItemBounds(), __pFocusBitmap);
        }
index b9183e8..6d818e7 100644 (file)
@@ -137,6 +137,8 @@ public:
        void SetEditModeEnabled(bool isEnabled);
        bool IsEditModeEnabled(void) const;
 
+       bool IsInFocusMode(void) const;
+
        result SetBackgroundBitmap(const Tizen::Graphics::Bitmap& bitmap);
        Tizen::Graphics::Bitmap* GetBackgroundBitmap(void) const;
        Tizen::Graphics::Bitmap* GetDisabledBackgroundBitmap(void) const;
@@ -223,9 +225,8 @@ public:
 
        virtual bool OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo);
        virtual bool OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo);
-       bool OnFocusGained(const _Control& source);
-       bool OnFocusLost(const _Control& source);
        virtual void OnDrawFocus(void);
+       virtual void OnFocusModeStateChanged(void);
 
 private:
        int GetItemIndex(int actionId);
@@ -235,6 +236,7 @@ private:
 private:
        _TabPresenter* __pTabPresenter;
 
+       bool __isInFocusMode;
        int __style;
        int __currentHighlightedItemIndex;
        _TabStatus __tabStatus;