From cf659596b4f398869f30fbe11bcdc0cc8a0d21cb Mon Sep 17 00:00:00 2001 From: Myung Jin Kim Date: Mon, 24 Jun 2013 15:42:32 +0900 Subject: [PATCH] fix disable focus Change-Id: Idd268381c4a8b6f5a8a5022ea17c49c0e833a0c5 --- src/ui/controls/FUiCtrl_ButtonPresenter.cpp | 33 ++++++--- src/ui/controls/FUiCtrl_CheckButtonPresenter.cpp | 30 +++++--- src/ui/controls/FUiCtrl_Toolbar.cpp | 90 +++++++++++++++++++----- 3 files changed, 118 insertions(+), 35 deletions(-) diff --git a/src/ui/controls/FUiCtrl_ButtonPresenter.cpp b/src/ui/controls/FUiCtrl_ButtonPresenter.cpp index 5ea4178..3e65fc2 100644 --- a/src/ui/controls/FUiCtrl_ButtonPresenter.cpp +++ b/src/ui/controls/FUiCtrl_ButtonPresenter.cpp @@ -1115,7 +1115,10 @@ _ButtonPresenter::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo) if (__pButton->IsFocusModeStateEnabled() == true && keyCode == _KEY_ENTER) { - __pButton->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED); + if (__pButton->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButton->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED); + } } return false; @@ -1143,8 +1146,11 @@ _ButtonPresenter::OnDrawFocus(void) { if (__pButton->IsFocusModeStateEnabled() == false) { - __pButton->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); - __pButton->Invalidate(); + if (__pButton->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButton->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + __pButton->Invalidate(); + } } return; @@ -1171,8 +1177,11 @@ _ButtonPresenter::OnFocusableStateChanged(bool focusalbeState) void _ButtonPresenter::OnFocusModeStateChanged(void) { - __pButton->SetButtonStatus(_BUTTON_STATUS_NORMAL); - __pButton->Invalidate(); + if (__pButton->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButton->SetButtonStatus(_BUTTON_STATUS_NORMAL); + __pButton->Invalidate(); + } return; } @@ -1182,8 +1191,11 @@ _ButtonPresenter::OnFocusGained(const _Control& source) { if (__pButton->IsFocusModeStateEnabled() == true) { - __pButton->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); - __pButton->Invalidate(); + if (__pButton->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButton->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + __pButton->Invalidate(); + } } return true; @@ -1192,8 +1204,11 @@ _ButtonPresenter::OnFocusGained(const _Control& source) bool _ButtonPresenter::OnFocusLost(const _Control& source) { - __pButton->SetButtonStatus(_BUTTON_STATUS_NORMAL); - __pButton->Invalidate(); + if (__pButton->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButton->SetButtonStatus(_BUTTON_STATUS_NORMAL); + __pButton->Invalidate(); + } return true; } diff --git a/src/ui/controls/FUiCtrl_CheckButtonPresenter.cpp b/src/ui/controls/FUiCtrl_CheckButtonPresenter.cpp index de82d85..a28b2ee 100644 --- a/src/ui/controls/FUiCtrl_CheckButtonPresenter.cpp +++ b/src/ui/controls/FUiCtrl_CheckButtonPresenter.cpp @@ -2407,8 +2407,12 @@ _CheckButtonPresenter::OnDrawFocus(void) if (__pCheckButton->IsFocusModeStateEnabled() == false) { __focusPrevStatus = __pCheckButton->GetCheckButtonStatus(); - __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_HIGHLIGHTED); - __pCheckButton->Invalidate(); + + if (__pCheckButton->GetCheckButtonStatus() != _CHECK_BUTTON_STATUS_DISABLED) + { + __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_HIGHLIGHTED); + __pCheckButton->Invalidate(); + } } return; @@ -2435,8 +2439,11 @@ _CheckButtonPresenter::OnFocusableStateChanged(bool focusalbeState) void _CheckButtonPresenter::OnFocusModeStateChanged(void) { - __pCheckButton->SetCheckButtonStatus(__focusPrevStatus); - __pCheckButton->Invalidate(); + if (__pCheckButton->GetCheckButtonStatus() != _CHECK_BUTTON_STATUS_DISABLED) + { + __pCheckButton->SetCheckButtonStatus(__focusPrevStatus); + __pCheckButton->Invalidate(); + } return; } @@ -2447,8 +2454,12 @@ _CheckButtonPresenter::OnFocusGained(const _Control& source) if (__pCheckButton->IsFocusModeStateEnabled() == true) { __focusPrevStatus = __pCheckButton->GetCheckButtonStatus(); - __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_HIGHLIGHTED); - __pCheckButton->Invalidate(); + + if (__pCheckButton->GetCheckButtonStatus() != _CHECK_BUTTON_STATUS_DISABLED) + { + __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_HIGHLIGHTED); + __pCheckButton->Invalidate(); + } } return true; @@ -2457,8 +2468,11 @@ _CheckButtonPresenter::OnFocusGained(const _Control& source) bool _CheckButtonPresenter::OnFocusLost(const _Control& source) { - __pCheckButton->SetCheckButtonStatus(__focusPrevStatus); - __pCheckButton->Invalidate(); + if (__pCheckButton->GetCheckButtonStatus() != _CHECK_BUTTON_STATUS_DISABLED) + { + __pCheckButton->SetCheckButtonStatus(__focusPrevStatus); + __pCheckButton->Invalidate(); + } return true; } diff --git a/src/ui/controls/FUiCtrl_Toolbar.cpp b/src/ui/controls/FUiCtrl_Toolbar.cpp index f959135..316271d 100644 --- a/src/ui/controls/FUiCtrl_Toolbar.cpp +++ b/src/ui/controls/FUiCtrl_Toolbar.cpp @@ -3091,18 +3091,27 @@ _Toolbar::OnDrawFocus(void) { if (__highlightedItemIndex == __itemCount) { - __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + } } else if (__highlightedItemIndex == __itemCount + 1) { - __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + } } } else { if (__highlightedItemIndex == __itemCount) { - __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + } } } } @@ -3112,7 +3121,10 @@ _Toolbar::OnDrawFocus(void) { if (__highlightedItemIndex == __itemCount) { - __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + } } } } @@ -3123,7 +3135,10 @@ _Toolbar::OnDrawFocus(void) { if (__pItems.at(__highlightedItemIndex)) { - __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + } } } else @@ -3134,18 +3149,27 @@ _Toolbar::OnDrawFocus(void) { if (__highlightedItemIndex == __itemCount) { - __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + } } else if (__highlightedItemIndex == __itemCount + 1) { - __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + } } } else { if (__highlightedItemIndex == __itemCount) { - __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + } } } } @@ -3155,7 +3179,10 @@ _Toolbar::OnDrawFocus(void) { if (__highlightedItemIndex == __itemCount) { - __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false); + } } } } @@ -3203,18 +3230,27 @@ _Toolbar::OnFocusModeStateChanged(void) { if (__highlightedItemIndex == __itemCount) { - __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + } } else if (__highlightedItemIndex == __itemCount + 1) { - __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + } } } else { if (__highlightedItemIndex == __itemCount) { - __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + } } } } @@ -3224,7 +3260,10 @@ _Toolbar::OnFocusModeStateChanged(void) { if (__highlightedItemIndex == __itemCount) { - __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + } } } } @@ -3235,7 +3274,10 @@ _Toolbar::OnFocusModeStateChanged(void) { if (__pItems.at(__highlightedItemIndex)) { - __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL); + if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL); + } } } else @@ -3246,18 +3288,27 @@ _Toolbar::OnFocusModeStateChanged(void) { if (__highlightedItemIndex == __itemCount) { - __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + } } else if (__highlightedItemIndex == __itemCount + 1) { - __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + } } } else { if (__highlightedItemIndex == __itemCount) { - __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + } } } } @@ -3267,7 +3318,10 @@ _Toolbar::OnFocusModeStateChanged(void) { if (__highlightedItemIndex == __itemCount) { - __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED) + { + __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL); + } } } } -- 2.7.4