From 2340a2e689a46dcc225f9ef4bd56ae82684df812 Mon Sep 17 00:00:00 2001 From: syed khaja moinuddin Date: Tue, 28 May 2013 14:22:39 +0530 Subject: [PATCH] OnFocusModeStateChanged implementation in Tab. Signed-off-by: syed khaja moinuddin Change-Id: Ib74aeb3308f3608786ea7681f017ed3575782c70 Signed-off-by: syed khaja moinuddin --- src/ui/controls/FUiCtrl_Tab.cpp | 59 ++++++++++++-------------------- src/ui/controls/FUiCtrl_TabPresenter.cpp | 2 +- src/ui/inc/FUiCtrl_Tab.h | 6 ++-- 3 files changed, 27 insertions(+), 40 deletions(-) diff --git a/src/ui/controls/FUiCtrl_Tab.cpp b/src/ui/controls/FUiCtrl_Tab.cpp index c4b80c5..6b2a57a 100644 --- a/src/ui/controls/FUiCtrl_Tab.cpp +++ b/src/ui/controls/FUiCtrl_Tab.cpp @@ -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 diff --git a/src/ui/controls/FUiCtrl_TabPresenter.cpp b/src/ui/controls/FUiCtrl_TabPresenter.cpp index 1c46502..a64e66f 100644 --- a/src/ui/controls/FUiCtrl_TabPresenter.cpp +++ b/src/ui/controls/FUiCtrl_TabPresenter.cpp @@ -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); } diff --git a/src/ui/inc/FUiCtrl_Tab.h b/src/ui/inc/FUiCtrl_Tab.h index b9183e8..6d818e7 100644 --- a/src/ui/inc/FUiCtrl_Tab.h +++ b/src/ui/inc/FUiCtrl_Tab.h @@ -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; -- 2.7.4