fix disable focus
authorMyung Jin Kim <critical.kim@samsung.com>
Mon, 24 Jun 2013 06:42:32 +0000 (15:42 +0900)
committerMyung Jin Kim <critical.kim@samsung.com>
Mon, 24 Jun 2013 06:42:32 +0000 (15:42 +0900)
Change-Id: Idd268381c4a8b6f5a8a5022ea17c49c0e833a0c5

src/ui/controls/FUiCtrl_ButtonPresenter.cpp
src/ui/controls/FUiCtrl_CheckButtonPresenter.cpp
src/ui/controls/FUiCtrl_Toolbar.cpp

index 5ea4178..3e65fc2 100644 (file)
@@ -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;
 }
index de82d85..a28b2ee 100644 (file)
@@ -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;
 }
index f959135..316271d 100644 (file)
@@ -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);
+                                               }
                                        }
                                }
                        }