fix focus ui
authorMyung Jin Kim <critical.kim@samsung.com>
Mon, 17 Jun 2013 12:15:02 +0000 (21:15 +0900)
committerMyung Jin Kim <critical.kim@samsung.com>
Mon, 17 Jun 2013 12:15:02 +0000 (21:15 +0900)
Change-Id: Iab5c058eb3db815442e0d3e7469425975ec71b6d

src/ui/controls/FUiCtrl_Button.cpp
src/ui/controls/FUiCtrl_ButtonPresenter.cpp
src/ui/controls/FUiCtrl_CheckButtonPresenter.cpp
src/ui/controls/FUiCtrl_FooterImpl.cpp
src/ui/controls/FUiCtrl_HeaderImpl.cpp
src/ui/controls/FUiCtrl_Label.cpp
src/ui/controls/FUiCtrl_LabelPresenter.cpp
src/ui/controls/FUiCtrl_Toolbar.cpp
src/ui/inc/FUiCtrl_Button.h
src/ui/inc/FUiCtrl_ButtonPresenter.h
src/ui/inc/FUiCtrl_LabelPresenter.h

index 7cfcfb4..6a8728c 100644 (file)
@@ -50,7 +50,6 @@ _Button::_Button()
        , __horizontalAlignment(ALIGNMENT_CENTER)
        , __verticalAlignment(ALIGNMENT_MIDDLE)
        , __buttonStatus(_BUTTON_STATUS_NORMAL)
-       , __prevButtonStatus(_BUTTON_STATUS_NORMAL)
        , __buttonStyle(_BUTTON_STYLE_NORMAL)
        , __textSize(0.0f)
        , __multilineFontSize(0.0f)
@@ -100,7 +99,7 @@ _Button::_Button()
                __isUserBackgroundEffectBitmap[i] = false;
        }
 
-       __pToolbarSelectedBitmap = null;
+       __pUnderlineBitmap = null;
 
        GET_COLOR_CONFIG(BUTTON::BG_NORMAL, __color[_BUTTON_STATUS_NORMAL]);
        GET_COLOR_CONFIG(BUTTON::BG_DISABLED, __color[_BUTTON_STATUS_DISABLED]);
@@ -202,10 +201,10 @@ _Button::~_Button(void)
                }
        }
 
-       if (__pToolbarSelectedBitmap)
+       if (__pUnderlineBitmap)
        {
-               delete __pToolbarSelectedBitmap;
-               __pToolbarSelectedBitmap = null;
+               delete __pUnderlineBitmap;
+               __pUnderlineBitmap = null;
        }
 
        if (__pTextElement)
@@ -927,7 +926,7 @@ _Button::GetToolbarItemBackgroundBitmap(_ButtonStatus status) const
 }
 
 result
-_Button::SetToolbarSelectedBitmap(const Tizen::Graphics::Bitmap& bitmap, bool drawInner)
+_Button::SetUnderlineBitmap(const Tizen::Graphics::Bitmap& bitmap, bool drawInner)
 {
        result r = E_SYSTEM;
 
@@ -935,12 +934,12 @@ _Button::SetToolbarSelectedBitmap(const Tizen::Graphics::Bitmap& bitmap, bool dr
 
        if (pClonedBitmap)
        {
-               if (__pToolbarSelectedBitmap != null)
+               if (__pUnderlineBitmap != null)
                {
-                       delete __pToolbarSelectedBitmap;
+                       delete __pUnderlineBitmap;
                }
 
-               __pToolbarSelectedBitmap = pClonedBitmap;
+               __pUnderlineBitmap = pClonedBitmap;
 
                r = E_SUCCESS;
        }
@@ -956,10 +955,16 @@ _Button::IsDrawInner(void) const
        return __drawInner;
 }
 
+result
+_Button::ShowUnderlineBitmap(bool show)
+{
+       return __pButtonPresenter->ShowUnderlineBitmap(show);
+}
+
 Tizen::Graphics::Bitmap*
-_Button::GetToolbarSelectedBitmap(void) const
+_Button::GetUnderlineBitmap(void) const
 {
-       return __pToolbarSelectedBitmap;
+       return __pUnderlineBitmap;
 }
 
 result
@@ -1171,7 +1176,6 @@ _Button::SetButtonStatus(_ButtonStatus buttonStatus, bool fire)
 {
        result r = E_SUCCESS;
 
-       __prevButtonStatus = __buttonStatus;
        __buttonStatus = buttonStatus;
 
        if (_BUTTON_STATUS_DISABLED == __buttonStatus)
@@ -1205,19 +1209,6 @@ _Button::GetButtonStatus(void) const
        return status;
 }
 
-_ButtonStatus
-_Button::GetPrevButtonStatus(void) const
-{
-       _ButtonStatus status = __prevButtonStatus;
-
-       if (IsEnabled() == false && status != _BUTTON_STATUS_SELECTED)
-       {
-               status = _BUTTON_STATUS_DISABLED;
-       }
-
-       return status;
-}
-
 result
 _Button::SetTextMaxLine(int textMaxLine)
 {
@@ -1423,6 +1414,7 @@ _Button::GetContentSizeInternalF(bool horizontalMode, bool verticalMode) const
        FloatRectangle contentRect(0.0f, 0.0f, 0.0f, 0.0f);
 
        TextObject* pTextObject = __pButtonPresenter->GetTextObject();
+       Font* pFont = __pButtonPresenter->GetFont();
 
        TextObjectActionType previousActionType = pTextObject->GetAction();
        TextObjectWrapType previousWrapType = pTextObject->GetWrap();
@@ -1431,6 +1423,7 @@ _Button::GetContentSizeInternalF(bool horizontalMode, bool verticalMode) const
        pTextObject->SetBounds(FloatRectangle(0.0f, 0.0f, GetBoundsF().width - __leftMargin * 2, GetBoundsF().height - __topMargin * 2));
        pTextObject->SetAction(TEXT_OBJECT_ACTION_TYPE_NONE);
        pTextObject->SetWrap(TEXT_OBJECT_WRAP_TYPE_WORD);
+       pTextObject->SetFont(pFont, 0, pTextObject->GetTextLength());
        pTextObject->Compose();
 
        _ControlOrientation orientation = GetOrientation();
index 8646af6..1a8e673 100644 (file)
@@ -44,6 +44,7 @@ _ButtonPresenter::_ButtonPresenter(void)
        , __previousEnabledState(false)
        , __touchMoveHandled(false)
        , __lazyDecode(false)
+       , __showUnderlineBitmap(false)
        , __pFont(null)
        , __pTextObject(null)
        , __pBase(null)
@@ -267,7 +268,6 @@ void
 _ButtonPresenter::Draw(void)
 {
        _ButtonStatus status = __pButton->GetButtonStatus();
-       _ButtonStatus prevStatus = __pButton->GetPrevButtonStatus();
 
        Bitmap* pToolbarItemBackgroundBitmap = __pButton->GetToolbarItemBackgroundBitmap(status);
 
@@ -283,12 +283,9 @@ _ButtonPresenter::Draw(void)
        DrawBitmap();
        DrawText();
 
-       if ((status == _BUTTON_STATUS_SELECTED && __pButton->GetToolbarItemBackgroundBitmap(_BUTTON_STATUS_SELECTED) == null) ||
-                               (status == _BUTTON_STATUS_PRESSED && prevStatus == _BUTTON_STATUS_SELECTED && __pButton->GetToolbarItemBackgroundBitmap(_BUTTON_STATUS_PRESSED) == null) ||
-                               (status == _BUTTON_STATUS_HIGHLIGHTED && prevStatus == _BUTTON_STATUS_HIGHLIGHTED && __pButton->GetToolbarItemBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED) == null) ||
-                               (status == _BUTTON_STATUS_HIGHLIGHTED && prevStatus == _BUTTON_STATUS_SELECTED && __pButton->GetToolbarItemBackgroundBitmap(_BUTTON_STATUS_HIGHLIGHTED) == null))
+       if (__showUnderlineBitmap && __pButton->GetToolbarItemBackgroundBitmap(status) == null)
        {
-               DrawToolbarSelectedBitmap();
+               DrawUnderlineBitmap();
        }
 
        return;
@@ -841,7 +838,7 @@ _ButtonPresenter::DrawText(void)
 }
 
 void
-_ButtonPresenter::DrawToolbarSelectedBitmap(void)
+_ButtonPresenter::DrawUnderlineBitmap(void)
 {
        float selectedBitmapMargin = 0.0f;
        float selectedBitmapHeight = 0.0f;
@@ -856,11 +853,11 @@ _ButtonPresenter::DrawToolbarSelectedBitmap(void)
        GET_SHAPE_CONFIG(HEADER::HEADER_ITEM_SELECTED_BITMAP_HEIGHT, _CONTROL_ORIENTATION_PORTRAIT, selectedBitmapHeight);
        GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_HEIGHT, _CONTROL_ORIENTATION_PORTRAIT, segmentedHeight);
 
-       Bitmap* pToolbarSelectedBitmap = __pButton->GetToolbarSelectedBitmap();
+       Bitmap* pUnderlineBitmap = __pButton->GetUnderlineBitmap();
 
        bool isDrawInner = __pButton->IsDrawInner();
 
-       if (pToolbarSelectedBitmap)
+       if (pUnderlineBitmap)
        {
                Canvas* pCanvas = __pButton->GetCanvasN();
 
@@ -879,14 +876,14 @@ _ButtonPresenter::DrawToolbarSelectedBitmap(void)
                        bounds.y -= (selectedBitmapHeight - bottomTouchMargin);
                }
 
-               if (_BitmapImpl::CheckNinePatchedBitmapStrictly(*pToolbarSelectedBitmap))
+               if (_BitmapImpl::CheckNinePatchedBitmapStrictly(*pUnderlineBitmap))
                {
-                       pCanvas->DrawNinePatchedBitmap(bounds, *pToolbarSelectedBitmap);
+                       pCanvas->DrawNinePatchedBitmap(bounds, *pUnderlineBitmap);
                }
                else
                {
-                       pCanvas->DrawBitmap(bounds, *pToolbarSelectedBitmap,
-                                       FloatRectangle(0.0f, 0.0f, pToolbarSelectedBitmap->GetWidthF(), pToolbarSelectedBitmap->GetHeightF()));
+                       pCanvas->DrawBitmap(bounds, *pUnderlineBitmap,
+                                       FloatRectangle(0.0f, 0.0f, pUnderlineBitmap->GetWidthF(), pUnderlineBitmap->GetHeightF()));
                }
 
                delete pCanvas;
@@ -1092,6 +1089,13 @@ _ButtonPresenter::OnAncestorEnableStateChanged(const _Control& control)
 void
 _ButtonPresenter::OnDrawFocus(void)
 {
+       if (__pButton->IsFocusModeStateEnabled() == false)
+       {
+               __focusPrevStatus = __pButton->GetButtonStatus();
+               __pButton->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+               __pButton->Invalidate();
+       }
+
        return;
 }
 
@@ -1194,4 +1198,12 @@ _ButtonPresenter::OnCanvasRequestedN(const FloatRectangle& bounds)
        return pCanvas;
 }
 
+result
+_ButtonPresenter::ShowUnderlineBitmap(bool show)
+{
+       __showUnderlineBitmap = show;
+
+       return E_SUCCESS;
+}
+
 }}} // Tizen::Ui::Controls
index be31283..4e539a5 100644 (file)
@@ -2403,6 +2403,13 @@ _CheckButtonPresenter::OnTimerExpired(Timer& timer)
 void
 _CheckButtonPresenter::OnDrawFocus(void)
 {
+       if (__pCheckButton->IsFocusModeStateEnabled() == false)
+       {
+               __focusPrevStatus = __pCheckButton->GetCheckButtonStatus();
+               __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
+               __pCheckButton->Invalidate();
+       }
+
        return;
 }
 
index 1a8f63e..97e5b85 100644 (file)
@@ -1287,7 +1287,7 @@ _FooterImpl::ConvertFooterItem(const FooterItem& footerItem)
 
                if (pColorReplacedBitmap && customTheme == false)
                {
-                       pButton->SetToolbarSelectedBitmap(*pColorReplacedBitmap, false);
+                       pButton->SetUnderlineBitmap(*pColorReplacedBitmap, false);
                }
 
                delete pColorReplacedBitmap;
index bb2d53a..c554864 100644 (file)
@@ -1607,11 +1607,11 @@ _HeaderImpl::ConvertHeaderItem(const HeaderItem& headerItem)
                {
                        if (__style == HEADER_STYLE_SEGMENTED_WITH_TITLE || __style == HEADER_STYLE_TAB_WITH_TITLE)
                        {
-                               pButton->SetToolbarSelectedBitmap(*pColorReplacedBitmap, true);
+                               pButton->SetUnderlineBitmap(*pColorReplacedBitmap, true);
                        }
                        else
                        {
-                               pButton->SetToolbarSelectedBitmap(*pColorReplacedBitmap, false);
+                               pButton->SetUnderlineBitmap(*pColorReplacedBitmap, false);
                        }
                }
 
index 3b9bd92..db05f48 100644 (file)
@@ -559,6 +559,7 @@ _Label::GetContentSizeInternalF(bool horizontalMode, bool verticalMode) const
        FloatRectangle contentRect(0.0f, 0.0f, 0.0f , 0.0f);
 
        TextObject* pTextObject = __pLabelPresenter->GetTextObject();
+       Font* pFont = __pLabelPresenter->GetFont();
 
        TextObjectActionType previousActionType = pTextObject->GetAction();
        TextObjectWrapType previousWrapType = pTextObject->GetWrap();
@@ -567,6 +568,7 @@ _Label::GetContentSizeInternalF(bool horizontalMode, bool verticalMode) const
        pTextObject->SetBounds(FloatRectangle(0.0f, 0.0f, GetBoundsF().width - __leftMargin * 2, GetBoundsF().height - __topMargin * 2));
        pTextObject->SetAction(TEXT_OBJECT_ACTION_TYPE_NONE);
        pTextObject->SetWrap(TEXT_OBJECT_WRAP_TYPE_WORD);
+       pTextObject->SetFont(pFont, 0, pTextObject->GetTextLength());
        pTextObject->Compose();
 
        _ControlOrientation orientation = GetOrientation();
index 231fa4a..d9506ed 100644 (file)
@@ -251,6 +251,12 @@ _LabelPresenter::GetTextObject(void) const
        return __pTextObject;
 }
 
+Font*
+_LabelPresenter::GetFont(void) const
+{
+       return __pFont;
+}
+
 void
 _LabelPresenter::Draw(void)
 {
index ed2a55a..2e4683b 100644 (file)
@@ -2354,6 +2354,7 @@ _Toolbar::SetItemSelected(int itemIndex, bool fire, bool adjust)
                        PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pItems.at(itemIndex));
                }
                __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, fire);
+               __pItems.at(itemIndex)->ShowUnderlineBitmap(true);
                __pItems.at(itemIndex)->Draw();
 
                _AccessibilityElement* pElement = __pItems.at(currentSelectedItemIndex)->GetAccessibilityContainer()->GetChildElement(0);
@@ -2380,6 +2381,7 @@ _Toolbar::SetItemSelected(int itemIndex, bool fire, bool adjust)
                        PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pItems.at(itemIndex));
                }
                __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, fire);
+               __pItems.at(itemIndex)->ShowUnderlineBitmap(true);
 
                _AccessibilityElement* pElement = __pItems.at(itemIndex)->GetAccessibilityContainer()->GetChildElement(0);
                if (pElement)
@@ -2398,6 +2400,8 @@ _Toolbar::SetItemSelected(int itemIndex, bool fire, bool adjust)
        {
                __pItems.at(currentSelectedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
                __pItems.at(currentSelectedItemIndex)->Draw();
+               __pItems.at(currentSelectedItemIndex)->ShowUnderlineBitmap(false);
+
                _AccessibilityElement* pElement = __pItems.at(currentSelectedItemIndex)->GetAccessibilityContainer()->GetChildElement(0);
                if (pElement)
                {
@@ -2434,6 +2438,7 @@ _Toolbar::SetItemHighlighted(int itemIndex, bool fire, bool adjust)
                        PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pItems.at(itemIndex));
                }
                __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, fire);
+               __pItems.at(itemIndex)->ShowUnderlineBitmap(true);
 
                __highlightedItemIndex = itemIndex;
                __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -2463,6 +2468,7 @@ _Toolbar::SetItemHighlighted(int itemIndex, bool fire, bool adjust)
                        PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pItems.at(itemIndex));
                }
                __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, fire);
+               __pItems.at(itemIndex)->ShowUnderlineBitmap(true);
 
                __highlightedItemIndex = itemIndex;
                __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -2485,6 +2491,8 @@ _Toolbar::SetItemHighlighted(int itemIndex, bool fire, bool adjust)
        {
                __pItems.at(currentSelectedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
                __pItems.at(currentSelectedItemIndex)->Draw();
+               __pItems.at(currentSelectedItemIndex)->ShowUnderlineBitmap(false);
+
                _AccessibilityElement* pElement = __pItems.at(currentSelectedItemIndex)->GetAccessibilityContainer()->GetChildElement(0);
                if (pElement)
                {
@@ -3108,10 +3116,148 @@ _Toolbar::OnAncestorVisibleStateChanged(const _Control& control)
 void
 _Toolbar::OnDrawFocus(void)
 {
-       __pToolbarPresenter->OnDrawFocus();
+       if (IsFocusModeStateEnabled() == false)
+       {
+               if (__itemCount == 0)
+               {
+                       if (__pButtonItems[LEFT_BUTTON] || __pButtonItems[MENU_BUTTON])
+                       {
+                               if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+                               {
+                                       if (__highlightedItemIndex == __itemCount)
+                                       {
+                                               if (__pButtonItems[MENU_BUTTON])
+                                               {
+                                                       __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                               }
+                                               else if (__pButtonItems[LEFT_BUTTON])
+                                               {
+                                                       __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                               }
+                                       }
+                                       else if (__highlightedItemIndex == __itemCount + 1)
+                                       {
+                                               if (__pButtonItems[BACK_BUTTON])
+                                               {
+                                                       __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                               }
+                                               else if (__pButtonItems[RIGHT_BUTTON])
+                                               {
+                                                       __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                               }
+                                       }
+                               }
+                               else
+                               {
+                                       if (__highlightedItemIndex == __itemCount)
+                                       {
+                                               if      (__pButtonItems[MENU_BUTTON])
+                                               {
+                                                       __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                               }
+                                               else if (__pButtonItems[LEFT_BUTTON])
+                                               {
+                                                       __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                               }
+                                       }
+                               }
+                       }
+                       else
+                       {
+                               if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+                               {
+                                       if (__highlightedItemIndex == __itemCount)
+                                       {
+                                               if (__pButtonItems[BACK_BUTTON])
+                                               {
+                                                       __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                               }
+                                               else if (__pButtonItems[RIGHT_BUTTON])
+                                               {
+                                                       __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                               }
+                                       }
+                               }
+                       }
+               }
+               else // __itemCount != 0
+               {
+                       if (__highlightedItemIndex < __itemCount)
+                       {
+                               if (__pItems.at(__highlightedItemIndex))
+                               {
+                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                               }
+                       }
+                       else
+                       {
+                               if (__pButtonItems[LEFT_BUTTON] || __pButtonItems[MENU_BUTTON])
+                               {
+                                       if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+                                       {
+                                               if (__highlightedItemIndex == __itemCount)
+                                               {
+                                                       if (__pButtonItems[MENU_BUTTON])
+                                                       {
+                                                               __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                       }
+                                                       else if (__pButtonItems[LEFT_BUTTON])
+                                                       {
+                                                               __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                       }
+                                               }
+                                               else if (__highlightedItemIndex == __itemCount + 1)
+                                               {
+                                                       if (__pButtonItems[BACK_BUTTON])
+                                                       {
+                                                               __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                       }
+                                                       else if (__pButtonItems[RIGHT_BUTTON])
+                                                       {
+                                                               __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                       }
+                                               }
+                                       }
+                                       else
+                                       {
+                                               if (__highlightedItemIndex == __itemCount)
+                                               {
+                                                       if (__pButtonItems[MENU_BUTTON])
+                                                       {
+                                                               __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                       }
+                                                       else if (__pButtonItems[LEFT_BUTTON])
+                                                       {
+                                                               __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                       }
+                                               }
+                                       }
+                               }
+                               else
+                               {
+                                       if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+                                       {
+                                               if (__highlightedItemIndex == __itemCount)
+                                               {
+                                                       if (__pButtonItems[BACK_BUTTON])
+                                                       {
+                                                               __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                       }
+                                                       else if (__pButtonItems[RIGHT_BUTTON])
+                                                       {
+                                                               __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+
+       Invalidate(true);
 
        return;
-}
+} //_Toolbar::OnDrawFocus(void)
 
 void
 _Toolbar::OnChildControlFocusMoved(const _Control& control)
@@ -3151,12 +3297,10 @@ _Toolbar::OnFocusModeStateChanged(void)
                                        if (__pButtonItems[MENU_BUTTON])
                                        {
                                                __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                               __pButtonItems[MENU_BUTTON]->Invalidate();
                                        }
                                        else if (__pButtonItems[LEFT_BUTTON])
                                        {
                                                __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                               __pButtonItems[LEFT_BUTTON]->Invalidate();
                                        }
                                }
                                else if (__highlightedItemIndex == __itemCount + 1)
@@ -3164,12 +3308,10 @@ _Toolbar::OnFocusModeStateChanged(void)
                                        if (__pButtonItems[BACK_BUTTON])
                                        {
                                                __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                               __pButtonItems[BACK_BUTTON]->Invalidate();
                                        }
                                        else if (__pButtonItems[RIGHT_BUTTON])
                                        {
                                                __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                               __pButtonItems[RIGHT_BUTTON]->Invalidate();
                                        }
                                }
                        }
@@ -3180,12 +3322,10 @@ _Toolbar::OnFocusModeStateChanged(void)
                                        if      (__pButtonItems[MENU_BUTTON])
                                        {
                                                __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                               __pButtonItems[MENU_BUTTON]->Invalidate();
                                        }
                                        else if (__pButtonItems[LEFT_BUTTON])
                                        {
                                                __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                               __pButtonItems[LEFT_BUTTON]->Invalidate();
                                        }
                                }
                        }
@@ -3199,12 +3339,10 @@ _Toolbar::OnFocusModeStateChanged(void)
                                        if (__pButtonItems[BACK_BUTTON])
                                        {
                                                __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                               __pButtonItems[BACK_BUTTON]->Invalidate();
                                        }
                                        else if (__pButtonItems[RIGHT_BUTTON])
                                        {
                                                __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                               __pButtonItems[RIGHT_BUTTON]->Invalidate();
                                        }
                                }
                        }
@@ -3217,7 +3355,6 @@ _Toolbar::OnFocusModeStateChanged(void)
                        if (__pItems.at(__highlightedItemIndex))
                        {
                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                               __pItems.at(__highlightedItemIndex)->Invalidate();
                        }
                }
                else
@@ -3231,12 +3368,10 @@ _Toolbar::OnFocusModeStateChanged(void)
                                                if (__pButtonItems[MENU_BUTTON])
                                                {
                                                        __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[MENU_BUTTON]->Invalidate();
                                                }
                                                else if (__pButtonItems[LEFT_BUTTON])
                                                {
                                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
                                                }
                                        }
                                        else if (__highlightedItemIndex == __itemCount + 1)
@@ -3244,12 +3379,10 @@ _Toolbar::OnFocusModeStateChanged(void)
                                                if (__pButtonItems[BACK_BUTTON])
                                                {
                                                        __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[BACK_BUTTON]->Invalidate();
                                                }
                                                else if (__pButtonItems[RIGHT_BUTTON])
                                                {
                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
                                                }
                                        }
                                }
@@ -3260,12 +3393,10 @@ _Toolbar::OnFocusModeStateChanged(void)
                                                if (__pButtonItems[MENU_BUTTON])
                                                {
                                                        __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[MENU_BUTTON]->Invalidate();
                                                }
                                                else if (__pButtonItems[LEFT_BUTTON])
                                                {
                                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
                                                }
                                        }
                                }
@@ -3279,12 +3410,10 @@ _Toolbar::OnFocusModeStateChanged(void)
                                                if (__pButtonItems[BACK_BUTTON])
                                                {
                                                        __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[BACK_BUTTON]->Invalidate();
                                                }
                                                else if (__pButtonItems[RIGHT_BUTTON])
                                                {
                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
                                                }
                                        }
                                }
@@ -3296,53 +3425,59 @@ _Toolbar::OnFocusModeStateChanged(void)
                if(selectedItemIndex != -1 && __pItems.at(selectedItemIndex))
                {
                        __pItems.at(selectedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                       __pItems.at(selectedItemIndex)->Invalidate();
                }
        }
 
+       Invalidate(true);
+
        return;
-}
+} // OnFocusModeStateChanged
 
 bool
 _Toolbar::OnFocusGained(const _Control& source)
 {
-       if (__header == true && __style != TOOLBAR_TEXT) // right align
+       if (IsFocusModeStateEnabled() == true)
        {
-               if (__itemCount != 0)
+               if (__header == true && __style != TOOLBAR_TEXT) // right align
                {
-                       if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
-                                       || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE)
-                       {
-                               __highlightedItemIndex = GetSelectedItemIndex();
-                       }
-                       else // not segmented
+                       if (__itemCount != 0)
                        {
-                               __highlightedItemIndex = 0;
+                               if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
+                                               || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE)
+                               {
+                                       __highlightedItemIndex = GetSelectedItemIndex();
+                               }
+                               else // not segmented
+                               {
+                                       __highlightedItemIndex = 0;
+                               }
                        }
-               }
 
-               OnHeaderFocusGained(source);
-       }
-       else
-       {
-               if (__itemCount != 0)
+                       OnHeaderFocusGained(source);
+               }
+               else
                {
-                       if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
-                                       || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE)
-                       {
-                               __highlightedItemIndex = GetSelectedItemIndex();
-                       }
-                       else // not segmented
+                       if (__itemCount != 0)
                        {
-                               __highlightedItemIndex = 0;
+                               if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
+                                               || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE)
+                               {
+                                       __highlightedItemIndex = GetSelectedItemIndex();
+                               }
+                               else // not segmented
+                               {
+                                       __highlightedItemIndex = 0;
+                               }
                        }
-               }
 
-               OnFooterFocusGained(source);
+                       OnFooterFocusGained(source);
+               }
        }
 
+       Invalidate(true);
+
        return true;
-}
+} // OnFocusGained
 
 result
 _Toolbar::OnHeaderFocusGained(const _Control& source)
@@ -3354,7 +3489,6 @@ _Toolbar::OnHeaderFocusGained(const _Control& source)
                        if(__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                        {
                                __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                               __pButtonItems[LEFT_BUTTON]->Invalidate();
 
                                __highlightedItemIndex = __itemCount;
                                __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3367,7 +3501,6 @@ _Toolbar::OnHeaderFocusGained(const _Control& source)
                                        if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                        {
                                                __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                               __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                                __highlightedItemIndex = __itemCount + 1;
                                                __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3381,7 +3514,6 @@ _Toolbar::OnHeaderFocusGained(const _Control& source)
                        if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                        {
                                __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                               __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                __highlightedItemIndex = __itemCount;
                                __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3396,7 +3528,6 @@ _Toolbar::OnHeaderFocusGained(const _Control& source)
                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                        {
                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                __highlighted = true;
@@ -3416,7 +3547,6 @@ _Toolbar::OnHeaderFocusGained(const _Control& source)
                                                if(__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
 
                                                        __highlightedItemIndex = __itemCount;
                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3429,7 +3559,6 @@ _Toolbar::OnHeaderFocusGained(const _Control& source)
                                                                if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                                                        __highlightedItemIndex = __itemCount + 1;
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3443,7 +3572,6 @@ _Toolbar::OnHeaderFocusGained(const _Control& source)
                                                if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                                        __highlightedItemIndex = __itemCount;
                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3470,7 +3598,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                if(__pButtonItems[MENU_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                {
                                        __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                       __pButtonItems[MENU_BUTTON]->Invalidate();
 
                                        __highlightedItemIndex = __itemCount;
                                        __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3485,7 +3612,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                                        if(__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pButtonItems[BACK_BUTTON]->Invalidate();
 
                                                                __highlightedItemIndex = __itemCount + 1;
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3497,7 +3623,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                                        if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                                                __highlightedItemIndex = __itemCount + 1;
                                                                __lastHighlightedItemIndex =__highlightedItemIndex;
@@ -3512,7 +3637,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                if(__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                {
                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
 
                                        __highlightedItemIndex = __itemCount;
                                        __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3527,7 +3651,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                                        if(__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pButtonItems[BACK_BUTTON]->Invalidate();
 
                                                                __highlightedItemIndex = __itemCount + 1;
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3539,7 +3662,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                                        if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                                                __highlightedItemIndex = __itemCount + 1;
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3557,7 +3679,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                if(__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                {
                                        __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                       __pButtonItems[BACK_BUTTON]->Invalidate();
 
                                        __highlightedItemIndex = __itemCount;
                                        __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3569,7 +3690,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                {
                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                        __highlightedItemIndex = __itemCount;
                                        __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3588,7 +3708,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                        if (__pItems.at(__highlightedItemIndex))
                        {
                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                __highlighted = true;
@@ -3603,7 +3722,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                        if(__pButtonItems[MENU_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                        {
                                                __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                               __pButtonItems[MENU_BUTTON]->Invalidate();
 
                                                __highlightedItemIndex = __itemCount;
                                                __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3616,7 +3734,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -3628,7 +3745,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                        {
                                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                                __highlighted = true;
@@ -3644,7 +3760,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                                                                if(__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                                {
                                                                                        __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                                       __pButtonItems[BACK_BUTTON]->Invalidate();
 
                                                                                        __highlightedItemIndex = __itemCount + 1;
                                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3656,7 +3771,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                                                                if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                                {
                                                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                                                                        __highlightedItemIndex = __itemCount + 1;
                                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3673,7 +3787,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                        if(__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                        {
                                                __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                               __pButtonItems[LEFT_BUTTON]->Invalidate();
 
                                                __highlightedItemIndex = __itemCount;
                                                __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3686,7 +3799,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -3698,7 +3810,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                        {
                                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                                __highlighted = true;
@@ -3714,7 +3825,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                                                                if(__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                                {
                                                                                        __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                                       __pButtonItems[BACK_BUTTON]->Invalidate();
 
                                                                                        __highlightedItemIndex = __itemCount + 1;
                                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3726,7 +3836,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                                                                if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                                {
                                                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                                                                        __highlightedItemIndex = __itemCount + 1;
                                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3746,7 +3855,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                        {
                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                __highlighted = true;
@@ -3758,7 +3866,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -3774,7 +3881,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                                                if(__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[BACK_BUTTON]->Invalidate();
 
                                                                        __highlightedItemIndex = __itemCount;
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3786,7 +3892,6 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                                                if(__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                                                        __highlightedItemIndex = __itemCount;
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
@@ -3819,7 +3924,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                if (__pButtonItems[MENU_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[MENU_BUTTON]->Invalidate();
                                                }
                                        }
                                        else if (__pButtonItems[LEFT_BUTTON])
@@ -3827,7 +3931,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
                                                }
                                        }
                                }
@@ -3838,7 +3941,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                if (__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[BACK_BUTTON]->Invalidate();
                                                }
                                        }
                                        else if (__pButtonItems[RIGHT_BUTTON])
@@ -3846,7 +3948,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
                                                }
                                        }
                                }
@@ -3860,7 +3961,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                if (__pButtonItems[MENU_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[MENU_BUTTON]->Invalidate();
                                                }
                                        }
                                        else if (__pButtonItems[LEFT_BUTTON])
@@ -3868,7 +3968,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
                                                }
                                        }
                                }
@@ -3885,7 +3984,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                if (__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[BACK_BUTTON]->Invalidate();
                                                }
                                        }
                                        else if (__pButtonItems[RIGHT_BUTTON])
@@ -3893,7 +3991,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
                                                }
                                        }
                                }
@@ -3909,7 +4006,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                {
                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                }
                        }
                }
@@ -3926,7 +4022,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                        if (__pButtonItems[MENU_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                               __pButtonItems[MENU_BUTTON]->Invalidate();
                                                        }
                                                }
                                                else if (__pButtonItems[LEFT_BUTTON])
@@ -3934,7 +4029,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                        if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                               __pButtonItems[LEFT_BUTTON]->Invalidate();
                                                        }
                                                }
                                        }
@@ -3945,7 +4039,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                        if (__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                               __pButtonItems[BACK_BUTTON]->Invalidate();
                                                        }
                                                }
                                                else if (__pButtonItems[RIGHT_BUTTON])
@@ -3953,7 +4046,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                        if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                               __pButtonItems[RIGHT_BUTTON]->Invalidate();
                                                        }
                                                }
                                        }
@@ -3967,7 +4059,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                        if (__pButtonItems[MENU_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                               __pButtonItems[MENU_BUTTON]->Invalidate();
                                                        }
                                                }
                                                else if (__pButtonItems[LEFT_BUTTON])
@@ -3975,7 +4066,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                        if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                               __pButtonItems[LEFT_BUTTON]->Invalidate();
                                                        }
                                                }
                                        }
@@ -3992,7 +4082,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                        if (__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                               __pButtonItems[BACK_BUTTON]->Invalidate();
                                                        }
                                                }
                                                else if (__pButtonItems[RIGHT_BUTTON])
@@ -4000,7 +4089,6 @@ _Toolbar::OnFocusLost(const _Control& source)
                                                        if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                               __pButtonItems[RIGHT_BUTTON]->Invalidate();
                                                        }
                                                }
                                        }
@@ -4015,13 +4103,14 @@ _Toolbar::OnFocusLost(const _Control& source)
                        if (__pItems.at(selectedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                        {
                                __pItems.at(selectedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                               __pItems.at(selectedItemIndex)->Invalidate();
                        }
                }
        }
 
+       Invalidate(true);
+
        return true;
-}
+} // OnFocusLost
 
 bool
 _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
@@ -4030,7 +4119,7 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
 
        int selectedItemIndex  = GetSelectedItemIndex();
 
-       if (keyCode == _KEY_RIGHT)
+       if (IsFocusModeStateEnabled() == true && keyCode == _KEY_RIGHT)
        {
                __highlighted = false;
 
@@ -4047,7 +4136,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
                                                        }
                                                }
                                                else
@@ -4055,7 +4143,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
                                                        }
                                                }
 
@@ -4064,7 +4151,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                        __highlighted = true;
@@ -4096,7 +4182,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                        {
                                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                        }
                                                                }
                                                                else
@@ -4104,7 +4189,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                        {
                                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                        }
                                                                }
                                                        }
@@ -4122,7 +4206,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -4139,13 +4222,11 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
                                                                }
 
                                                                if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -4165,7 +4246,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -4188,7 +4268,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -4260,13 +4339,11 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                               __pButtonItems[LEFT_BUTTON]->Invalidate();
                                                        }
 
                                                        if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -4330,7 +4407,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[MENU_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pButtonItems[MENU_BUTTON]->Invalidate();
                                                                }
                                                        }
                                                        else if (__pButtonItems[LEFT_BUTTON])
@@ -4338,7 +4414,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
                                                                }
                                                        }
 
@@ -4347,7 +4422,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -4364,7 +4438,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
                                                        else
@@ -4372,7 +4445,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
 
@@ -4381,7 +4453,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -4398,7 +4469,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
                                                        else
@@ -4406,7 +4476,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
 
@@ -4417,7 +4486,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[BACK_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -4432,7 +4500,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -4453,7 +4520,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[MENU_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pButtonItems[MENU_BUTTON]->Invalidate();
                                                                }
                                                        }
                                                        else if (__pButtonItems[LEFT_BUTTON])
@@ -4461,7 +4527,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
                                                                }
                                                        }
 
@@ -4470,7 +4535,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -4487,7 +4551,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
                                                        else
@@ -4495,7 +4558,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
 
@@ -4504,7 +4566,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -4527,7 +4588,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
                                                        else
@@ -4535,7 +4595,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
 
@@ -4544,7 +4603,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -4561,7 +4619,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
                                                        else
@@ -4569,7 +4626,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
 
@@ -4580,7 +4636,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[BACK_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -4595,7 +4650,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -4616,7 +4670,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
                                                        else
@@ -4624,7 +4677,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
 
@@ -4633,7 +4685,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -4735,7 +4786,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[MENU_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pButtonItems[MENU_BUTTON]->Invalidate();
                                                                }
                                                        }
                                                        else if (__pButtonItems[LEFT_BUTTON])
@@ -4743,7 +4793,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
                                                                }
                                                        }
 
@@ -4752,7 +4801,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[BACK_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -4767,7 +4815,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -4840,7 +4887,7 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                }
        }
 
-       if (keyCode == _KEY_LEFT)
+       if (IsFocusModeStateEnabled() == true && keyCode == _KEY_LEFT)
        {
                __highlighted = false;
 
@@ -4857,14 +4904,12 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
                                                }
                                        }
 
                                        if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                        {
                                                __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                               __pButtonItems[LEFT_BUTTON]->Invalidate();
 
                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                __highlighted = true;
@@ -4883,7 +4928,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
                                                }
                                        }
                                        else if (__pButtonItems[RIGHT_BUTTON])
@@ -4891,14 +4935,12 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
                                                }
                                        }
 
                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                        {
                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                __highlighted = true;
@@ -4917,7 +4959,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
                                                        }
                                                }
                                                else
@@ -4925,7 +4966,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
                                                        }
                                                }
 
@@ -4934,7 +4974,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                        __highlighted = true;
@@ -5010,14 +5049,12 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
                                                }
                                        }
 
                                        if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                        {
                                                __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                               __pButtonItems[LEFT_BUTTON]->Invalidate();
 
                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                __highlighted = true;
@@ -5079,7 +5116,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
                                                        else
@@ -5087,7 +5123,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
 
@@ -5098,7 +5133,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[MENU_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[MENU_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -5113,7 +5147,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -5131,7 +5164,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
                                                        else
@@ -5139,7 +5171,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
 
@@ -5148,7 +5179,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -5165,7 +5195,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pButtonItems[BACK_BUTTON]->Invalidate();
                                                                }
                                                        }
                                                        else if (__pButtonItems[RIGHT_BUTTON])
@@ -5173,7 +5202,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
                                                                }
                                                        }
 
@@ -5182,7 +5210,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -5202,7 +5229,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
                                                        else
@@ -5210,7 +5236,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
 
@@ -5221,7 +5246,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[MENU_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[MENU_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -5236,7 +5260,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -5254,7 +5277,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
                                                        else
@@ -5262,7 +5284,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
 
@@ -5271,7 +5292,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -5298,7 +5318,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
                                                        else
@@ -5306,7 +5325,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
 
@@ -5315,7 +5333,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -5332,7 +5349,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pButtonItems[BACK_BUTTON]->Invalidate();
                                                                }
                                                        }
                                                        else if (__pButtonItems[RIGHT_BUTTON])
@@ -5340,7 +5356,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
                                                                }
                                                        }
 
@@ -5349,7 +5364,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -5373,7 +5387,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
                                                        else
@@ -5381,7 +5394,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
                                                                }
                                                        }
 
@@ -5390,7 +5402,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                               __pItems.at(__highlightedItemIndex)->Invalidate();
 
                                                                __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                __highlighted = true;
@@ -5490,7 +5501,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[BACK_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pButtonItems[BACK_BUTTON]->Invalidate();
                                                                }
                                                        }
                                                        else if (__pButtonItems[RIGHT_BUTTON])
@@ -5498,7 +5508,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
-                                                                       __pButtonItems[RIGHT_BUTTON]->Invalidate();
                                                                }
                                                        }
 
@@ -5509,7 +5518,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[MENU_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[MENU_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[MENU_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -5524,7 +5532,6 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                                if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                {
                                                                        __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                                                                       __pButtonItems[LEFT_BUTTON]->Invalidate();
 
                                                                        __lastHighlightedItemIndex = __highlightedItemIndex;
                                                                        __highlighted = true;
@@ -5597,7 +5604,7 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                }
        }
 
-       if (keyCode == _KEY_ENTER)
+       if (IsFocusModeStateEnabled() == true && keyCode == _KEY_ENTER)
        {
                if (__itemCount != 0)
                {
@@ -5908,8 +5915,10 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                }
        }
 
+       Invalidate(true);
+
        return false;
-}
+} // OnKeyReleased
 
 void
 _Toolbar::OnChangeLayout(_ControlOrientation orientationStatus)
index 18ca9f2..0cd1a96 100644 (file)
@@ -185,8 +185,8 @@ public:
        result SetToolbarItemBackgroundBitmap(_ButtonStatus status, const Tizen::Graphics::Bitmap& bitmap);
        Tizen::Graphics::Bitmap* GetToolbarItemBackgroundBitmap(_ButtonStatus status) const;
 
-       result SetToolbarSelectedBitmap(const Tizen::Graphics::Bitmap& bitmap, bool drawInner);
-       Tizen::Graphics::Bitmap* GetToolbarSelectedBitmap(void) const;
+       result SetUnderlineBitmap(const Tizen::Graphics::Bitmap& bitmap, bool drawInner);
+       Tizen::Graphics::Bitmap* GetUnderlineBitmap(void) const;
 
        result SetBackgroundBitmap(_ButtonStatus status, const Tizen::Graphics::Bitmap& bitmap);
        Tizen::Graphics::Bitmap* GetBackgroundBitmap(_ButtonStatus status) const;
@@ -205,7 +205,6 @@ public:
 
        result SetButtonStatus(_ButtonStatus buttonStatus, bool fire = true);
        _ButtonStatus GetButtonStatus(void) const;
-       _ButtonStatus GetPrevButtonStatus(void) const;
 
        result SetTextMaxLine(int textMaxLine);
        int GetTextMaxLine(void) const;
@@ -225,6 +224,7 @@ public:
 
        bool UserDefinedText(void) const;
        bool IsDrawInner(void) const;
+       result ShowUnderlineBitmap(bool show);
 
        result SetMargin(int leftMargin, int topMargin, int rightMargin, int bottomMargin);
        int GetLeftMargin(void) const;
@@ -296,13 +296,12 @@ private:
        Tizen::Graphics::Bitmap* __pToolbarItemBackgroundBitmap[NUMBER_OF_BUTTON_STATUS];
        Tizen::Graphics::Bitmap* __pBackgroundBitmap[NUMBER_OF_BUTTON_STATUS];
        Tizen::Graphics::Bitmap* __pBackgroundEffectBitmap[NUMBER_OF_BUTTON_STATUS];
-       Tizen::Graphics::Bitmap* __pToolbarSelectedBitmap;
+       Tizen::Graphics::Bitmap* __pUnderlineBitmap;
 
        HorizontalAlignment __horizontalAlignment;
        VerticalAlignment __verticalAlignment;
 
        _ButtonStatus __buttonStatus;
-       _ButtonStatus __prevButtonStatus;
        _ButtonStyle __buttonStyle;
 
        float __textSize;
index 315994f..652475b 100644 (file)
@@ -90,6 +90,8 @@ public:
 
        Tizen::Graphics::Font* GetFont(void) const;
 
+       result ShowUnderlineBitmap(bool show);
+
 protected:
        result SetModel(const _ButtonModel& buttonModel);
 
@@ -101,7 +103,7 @@ private:
        void DrawToolbarItemBackground(void);
        void DrawBitmap(void);
        void DrawText(void);
-       void DrawToolbarSelectedBitmap(void);
+       void DrawUnderlineBitmap(void);
 
        bool IsEnabledStateChanged(void);
 
@@ -112,6 +114,7 @@ private:
        bool __previousEnabledState;
        bool __touchMoveHandled;
        bool __lazyDecode;
+       bool __showUnderlineBitmap;
 
        Tizen::Graphics::Font* __pFont;
        Tizen::Graphics::_Text::TextObject* __pTextObject;
index f67c256..e6bb984 100644 (file)
@@ -79,6 +79,8 @@ public:
        Tizen::Graphics::_Text::TextObject* GetTextObject(void) const;
        result InitTextObject(void);
 
+       Tizen::Graphics::Font* GetFont(void) const;
+
 protected:
        result SetModel(const _LabelModel& labelModel);