apply toolbar, check gui
authorMyung Jin Kim <critical.kim@samsung.com>
Thu, 11 Jul 2013 22:32:39 +0000 (07:32 +0900)
committerMyung Jin Kim <critical.kim@samsung.com>
Thu, 11 Jul 2013 22:32:39 +0000 (07:32 +0900)
Change-Id: I7c23ad9cb1821923bd353199ff992380ba00dc9a

res/common/usr/share/osp/bitmaps/480x800/white/00_sub_title_ef.#.png
res/common/usr/share/osp/bitmaps/720x1280/white/00_sub_title_ef.#.png
src/ui/controls/FUiCtrl_CheckButtonPresenter.cpp
src/ui/controls/FUiCtrl_Toolbar.cpp
src/ui/controls/FUiCtrl_ToolbarPresenter.cpp
src/ui/inc/FUiCtrl_CheckButtonPresenter.h
src/ui/resource/FUi_ResourceHeaderConfig.cpp

index e4bf512..190015c 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/white/00_sub_title_ef.#.png and b/res/common/usr/share/osp/bitmaps/480x800/white/00_sub_title_ef.#.png differ
index e4bf512..2627ac6 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/720x1280/white/00_sub_title_ef.#.png and b/res/common/usr/share/osp/bitmaps/720x1280/white/00_sub_title_ef.#.png differ
index bbd00fb..afa898c 100644 (file)
@@ -62,6 +62,8 @@ _CheckButtonPresenter::_CheckButtonPresenter(void)
        , __onOffHandlerPosition(0.0f)
        , __onOffHandlerPressed(false)
        , __onOffHandlerMoved(false)
+       , __highlightedIndex(0)
+       , __detailedPressed(false)
 {
 
 }
@@ -502,7 +504,7 @@ _CheckButtonPresenter::DrawBackground(void)
                        pHighlightedReColorBgBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pHighlightedBgBitmap,
                                        Color::GetColor(COLOR_ID_MAGENTA), __pCheckButton->GetColor(_CHECK_BUTTON_STATUS_HIGHLIGHTED));
 
-                       if (pHighlightedReColorBgBitmap)
+                       if (pHighlightedReColorBgBitmap && __highlightedIndex == 0)
                        {
                                if (_BitmapImpl::CheckNinePatchedBitmapStrictly(*pHighlightedReColorBgBitmap))
                                {
@@ -641,14 +643,29 @@ _CheckButtonPresenter::DrawCheckBitmap(void)
                                Bitmap* pCircleNormalBitmap = __pCheckButton->GetCircleBitmap(_CHECK_BUTTON_STATUS_NORMAL);
                                Bitmap* pDetailedRightNormalBitmap = __pCheckButton->GetDetailedRightBitmap(_CHECK_BUTTON_STATUS_NORMAL);
 
-                               if (pCircleNormalBitmap)
+                               if (__detailedPressed == true)
                                {
-                                       pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedNormalBgColor);
-                               }
+                                       if (pCircleNormalBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedPressedBgColor);
+                                       }
 
-                               if (pDetailedRightNormalBitmap)
+                                       if (pDetailedRightNormalBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightPressedColor);
+                                       }
+                               }
+                               else
                                {
-                                       pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightNormalColor);
+                                       if (pCircleNormalBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedNormalBgColor);
+                                       }
+
+                                       if (pDetailedRightNormalBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightNormalColor);
+                                       }
                                }
 
                                if (pReColorCircleBitmap)
@@ -743,14 +760,29 @@ _CheckButtonPresenter::DrawCheckBitmap(void)
                                Bitmap* pCirclePressedBitmap = __pCheckButton->GetCircleBitmap(_CHECK_BUTTON_STATUS_PRESSED);
                                Bitmap* pDetailedRightPressedBitmap = __pCheckButton->GetDetailedRightBitmap(_CHECK_BUTTON_STATUS_PRESSED);
 
-                               if (pCirclePressedBitmap)
+                               if (__detailedPressed == true)
                                {
-                                       pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCirclePressedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedPressedBgColor);
-                               }
+                                       if (pCirclePressedBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCirclePressedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedPressedBgColor);
+                                       }
 
-                               if (pDetailedRightPressedBitmap)
+                                       if (pDetailedRightPressedBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightPressedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightPressedColor);
+                                       }
+                               }
+                               else
                                {
-                                       pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightPressedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightPressedColor);
+                                       if (pCirclePressedBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCirclePressedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedNormalBgColor);
+                                       }
+
+                                       if (pDetailedRightPressedBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightPressedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightNormalColor);
+                                       }
                                }
 
                                if (pReColorCircleBitmap)
@@ -798,7 +830,7 @@ _CheckButtonPresenter::DrawCheckBitmap(void)
                                                Color::GetColor(COLOR_ID_MAGENTA), detailedHighlightedBgColor);
                        }
 
-                       if (pReColorMarkBgHighlightedBitmap)
+                       if (pReColorMarkBgHighlightedBitmap && __highlightedIndex == 1)
                        {
                                pCanvas->DrawBitmap(FloatPoint(__defaultButtonBounds.x, __defaultButtonBounds.y), *pReColorMarkBgHighlightedBitmap);
                        }
@@ -811,14 +843,29 @@ _CheckButtonPresenter::DrawCheckBitmap(void)
                                Bitmap* pCircleHighlightedBitmap = __pCheckButton->GetCircleBitmap(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
                                Bitmap* pDetailedRightHighlightedBitmap = __pCheckButton->GetDetailedRightBitmap(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
 
-                               if (pCircleNormalBitmap)
+                               if (__detailedPressed == true)
                                {
-                                       pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedNormalBgColor);
-                               }
+                                       if (pCircleNormalBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedPressedBgColor);
+                                       }
 
-                               if (pDetailedRightHighlightedBitmap)
+                                       if (pDetailedRightHighlightedBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightPressedColor);
+                                       }
+                               }
+                               else
                                {
-                                       pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightHighlightedColor);
+                                       if (pCircleNormalBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedNormalBgColor);
+                                       }
+
+                                       if (pDetailedRightHighlightedBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightHighlightedColor);
+                                       }
                                }
 
                                if (pReColorCircleBitmap)
@@ -854,7 +901,7 @@ _CheckButtonPresenter::DrawCheckBitmap(void)
                                        pReColorCircleHighlightedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedHighlightedBgColor);
                                }
 
-                               if (pReColorCircleHighlightedBitmap)
+                               if (pReColorCircleHighlightedBitmap && __highlightedIndex == 2)
                                {
                                        pCanvas->DrawBitmap(FloatPoint(__detailedButtonBounds.x, __detailedButtonBounds.y), *pReColorCircleHighlightedBitmap);
                                }
@@ -876,14 +923,29 @@ _CheckButtonPresenter::DrawCheckBitmap(void)
                                Bitmap* pCircleSelectedBitmap = __pCheckButton->GetCircleBitmap(_CHECK_BUTTON_STATUS_SELECTED);
                                Bitmap* pDetailedRightSelectedBitmap = __pCheckButton->GetDetailedRightBitmap(_CHECK_BUTTON_STATUS_SELECTED);
 
-                               if (pCircleSelectedBitmap)
+                               if (__detailedPressed == true)
                                {
-                                       pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleSelectedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedSelectedBgColor);
-                               }
+                                       if (pCircleSelectedBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleSelectedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedPressedBgColor);
+                                       }
 
-                               if (pDetailedRightSelectedBitmap)
+                                       if (pDetailedRightSelectedBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightSelectedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightPressedColor);
+                                       }
+                               }
+                               else
                                {
-                                       pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightSelectedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightSelectedColor);
+                                       if (pCircleSelectedBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleSelectedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedSelectedBgColor);
+                                       }
+
+                                       if (pDetailedRightSelectedBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightSelectedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightSelectedColor);
+                                       }
                                }
 
                                if (pReColorCircleBitmap)
@@ -925,14 +987,29 @@ _CheckButtonPresenter::DrawCheckBitmap(void)
                                Bitmap* pCircleNormalBitmap = __pCheckButton->GetCircleBitmap(_CHECK_BUTTON_STATUS_NORMAL);
                                Bitmap* pDetailedRightNormalBitmap = __pCheckButton->GetDetailedRightBitmap(_CHECK_BUTTON_STATUS_NORMAL);
 
-                               if (pCircleNormalBitmap)
+                               if (__detailedPressed == true)
                                {
-                                       pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedNormalBgColor);
-                               }
+                                       if (pCircleNormalBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedPressedBgColor);
+                                       }
 
-                               if (pDetailedRightNormalBitmap)
+                                       if (pDetailedRightNormalBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightPressedColor);
+                                       }
+                               }
+                               else
                                {
-                                       pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightNormalColor);
+                                       if (pCircleNormalBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedNormalBgColor);
+                                       }
+
+                                       if (pDetailedRightNormalBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightNormalColor);
+                                       }
                                }
 
                                if (pReColorCircleBitmap)
@@ -1013,14 +1090,29 @@ _CheckButtonPresenter::DrawCheckBitmap(void)
                                Bitmap* pCirclePressedBitmap = __pCheckButton->GetCircleBitmap(_CHECK_BUTTON_STATUS_PRESSED);
                                Bitmap* pDetailedRightPressedBitmap = __pCheckButton->GetDetailedRightBitmap(_CHECK_BUTTON_STATUS_PRESSED);
 
-                               if (pCirclePressedBitmap)
+                               if (__detailedPressed == true)
                                {
-                                       pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCirclePressedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedPressedBgColor);
-                               }
+                                       if (pCirclePressedBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCirclePressedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedPressedBgColor);
+                                       }
 
-                               if (pDetailedRightPressedBitmap)
+                                       if (pDetailedRightPressedBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightPressedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightPressedColor);
+                                       }
+                               }
+                               else
                                {
-                                       pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightPressedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightPressedColor);
+                                       if (pCirclePressedBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCirclePressedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedNormalBgColor);
+                                       }
+
+                                       if (pDetailedRightPressedBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightPressedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightNormalColor);
+                                       }
                                }
 
                                if (pReColorCircleBitmap)
@@ -1058,14 +1150,29 @@ _CheckButtonPresenter::DrawCheckBitmap(void)
                                Bitmap* pCircleHighlightedBitmap = __pCheckButton->GetCircleBitmap(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
                                Bitmap* pDetailedRightHighlightedBitmap = __pCheckButton->GetDetailedRightBitmap(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
 
-                               if (pCircleNormalBitmap)
+                               if (__detailedPressed == true)
                                {
-                                       pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedNormalBgColor);
-                               }
+                                       if (pCircleNormalBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedPressedBgColor);
+                                       }
 
-                               if (pDetailedRightHighlightedBitmap)
+                                       if (pDetailedRightHighlightedBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightPressedColor);
+                                       }
+                               }
+                               else
                                {
-                                       pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightHighlightedColor);
+                                       if (pCircleNormalBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedNormalBgColor);
+                                       }
+
+                                       if (pDetailedRightHighlightedBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightHighlightedColor);
+                                       }
                                }
 
                                if (pReColorCircleBitmap)
@@ -1101,7 +1208,7 @@ _CheckButtonPresenter::DrawCheckBitmap(void)
                                        pReColorCircleHighlightedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedHighlightedBgColor);
                                }
 
-                               if (pReColorCircleHighlightedBitmap)
+                               if (pReColorCircleHighlightedBitmap && __highlightedIndex == 1)
                                {
                                        pCanvas->DrawBitmap(FloatPoint(__detailedButtonBounds.x, __detailedButtonBounds.y), *pReColorCircleHighlightedBitmap);
                                }
@@ -1116,14 +1223,29 @@ _CheckButtonPresenter::DrawCheckBitmap(void)
                                Bitmap* pCircleSelectedBitmap = __pCheckButton->GetCircleBitmap(_CHECK_BUTTON_STATUS_SELECTED);
                                Bitmap* pDetailedRightSelectedBitmap = __pCheckButton->GetDetailedRightBitmap(_CHECK_BUTTON_STATUS_SELECTED);
 
-                               if (pCircleSelectedBitmap)
+                               if (__detailedPressed == true)
                                {
-                                       pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleSelectedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedSelectedBgColor);
-                               }
+                                       if (pCircleSelectedBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleSelectedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedPressedBgColor);
+                                       }
 
-                               if (pDetailedRightSelectedBitmap)
+                                       if (pDetailedRightSelectedBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightSelectedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightPressedColor);
+                                       }
+                               }
+                               else
                                {
-                                       pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightSelectedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightSelectedColor);
+                                       if (pCircleSelectedBitmap)
+                                       {
+                                               pReColorCircleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleSelectedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedSelectedBgColor);
+                                       }
+
+                                       if (pDetailedRightSelectedBitmap)
+                                       {
+                                               pReColorRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDetailedRightSelectedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedRightSelectedColor);
+                                       }
                                }
 
                                if (pReColorCircleBitmap)
@@ -1230,7 +1352,7 @@ _CheckButtonPresenter::DrawCheckBitmap(void)
                                pReColorOnOffBgHighlightedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pOnOffBgHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedHighlightedBgColor);
                        }
 
-                       if (pReColorOnOffBgHighlightedBitmap)
+                       if (pReColorOnOffBgHighlightedBitmap && __highlightedIndex == 1)
                        {
                                pCanvas->DrawBitmap(FloatPoint(__defaultButtonBounds.x, __defaultButtonBounds.y), *pReColorOnOffBgHighlightedBitmap);
                        }
@@ -1456,6 +1578,17 @@ _CheckButtonPresenter::OnTouchPressed(const _Control& source, const _TouchInfo&
                        __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_PRESSED);
                }
        }
+       else if (checkStyle == CHECK_BUTTON_STYLE_MARK_WITH_DETAILED_BUTTON || checkStyle == CHECK_BUTTON_STYLE_RADIO_WITH_DETAILED_BUTTON)
+       {
+               if (__detailedButtonBounds.Contains(touchPoint))
+               {
+                       __detailedPressed = true;
+               }
+               else
+               {
+                       __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_PRESSED);
+               }
+       }
        else
        {
                __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_PRESSED);
@@ -1492,17 +1625,32 @@ _CheckButtonPresenter::OnTouchReleased(const _Control& source, const _TouchInfo&
        _CheckButtonStatus status = __pCheckButton->GetCheckButtonStatus();
        CheckButtonStyle checkStyle = __pCheckButton->GetCheckButtonStyle();
 
-       if (status == _CHECK_BUTTON_STATUS_NORMAL && __onOffHandlerPressed == false)
+       if (checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING || checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING_WITH_DIVIDER)
        {
-               if (checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING || checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING_WITH_DIVIDER)
+               if (status == _CHECK_BUTTON_STATUS_NORMAL && __onOffHandlerPressed == false)
                {
-                       AdjustHandlerPosition();
-
-                       __onOffHandlerPressed = false;
                        __onOffHandlerMoved = false;
+
+                       return true;
                }
+       }
+       else if (checkStyle == CHECK_BUTTON_STYLE_MARK_WITH_DETAILED_BUTTON || checkStyle == CHECK_BUTTON_STYLE_RADIO_WITH_DETAILED_BUTTON)
+       {
+               if (status == _CHECK_BUTTON_STATUS_NORMAL && __detailedPressed == true)
+               {
+                       __detailedPressed = false;
 
-               return true;
+                       __pCheckButton->Invalidate();
+
+                       return true;
+               }
+       }
+       else
+       {
+               if (status == _CHECK_BUTTON_STATUS_NORMAL)
+               {
+                       return true;
+               }
        }
 
        if (checkStyle == CHECK_BUTTON_STYLE_MARK || checkStyle == CHECK_BUTTON_STYLE_MARK_WITH_DIVIDER || checkStyle == CHECK_BUTTON_STYLE_MARK_WITH_DETAILED_BUTTON
@@ -1525,9 +1673,7 @@ _CheckButtonPresenter::OnTouchReleased(const _Control& source, const _TouchInfo&
 
        if (checkStyle == CHECK_BUTTON_STYLE_MARK_WITH_DETAILED_BUTTON || checkStyle == CHECK_BUTTON_STYLE_RADIO_WITH_DETAILED_BUTTON)
        {
-               detailedBounds.width = detailedBounds.width - checkButtonLeftMargin - checkButtonDetailedBitmapWidth;
-
-               if (detailedBounds.Contains(touchPoint))
+               if (!__detailedButtonBounds.Contains(touchPoint))
                {
                        PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pCheckButton);
 
@@ -1698,14 +1844,53 @@ _CheckButtonPresenter::OnTouchMoved(const _Control& source, const _TouchInfo& to
        FloatRectangle bounds = __pCheckButton->GetClientBoundsF();
        bool isInCheckButtonArea = bounds.Contains(touchPoint);
        bool isInOnOffHandlerArea = __onOffSlidingButtonBounds.Contains(touchPoint);
+       bool isDetailedArea = __detailedButtonBounds.Contains(touchPoint);
 
-       if (__onOffHandlerPressed == true)
+       CheckButtonStyle checkStyle = __pCheckButton->GetCheckButtonStyle();
+
+       if (checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING || checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING_WITH_DIVIDER)
        {
-               __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_NORMAL);
+               if (__onOffHandlerPressed == true)
+               {
+                       __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_NORMAL);
+               }
+               else
+               {
+                       if (isInCheckButtonArea == true && __touchMoveHandled == false && isInOnOffHandlerArea == false )
+                       {
+                               __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_PRESSED);
+                       }
+                       else
+                       {
+                               __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_NORMAL);
+                       }
+               }
+       }
+       else if (checkStyle == CHECK_BUTTON_STYLE_MARK_WITH_DETAILED_BUTTON || checkStyle == CHECK_BUTTON_STYLE_RADIO_WITH_DETAILED_BUTTON)
+       {
+               if (isDetailedArea == true && __touchMoveHandled == false)
+               {
+                       __detailedPressed = true;
+
+                       __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_NORMAL);
+               }
+               else
+               {
+                       __detailedPressed = false;
+
+                       if (isInCheckButtonArea == true && __touchMoveHandled == false && isDetailedArea == false )
+                       {
+                               __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_PRESSED);
+                       }
+                       else
+                       {
+                               __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_NORMAL);
+                       }
+               }
        }
        else
        {
-               if (isInCheckButtonArea == true && __touchMoveHandled == false && isInOnOffHandlerArea == false )
+               if (isInCheckButtonArea == true && __touchMoveHandled == false)
                {
                        __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_PRESSED);
                }
@@ -1715,8 +1900,6 @@ _CheckButtonPresenter::OnTouchMoved(const _Control& source, const _TouchInfo& to
                }
        }
 
-       CheckButtonStyle checkStyle = __pCheckButton->GetCheckButtonStyle();
-
        if (checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING || checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING_WITH_DIVIDER)
        {
                if (isInOnOffHandlerArea == true && __onOffHandlerPressed == true)
@@ -1847,7 +2030,7 @@ _CheckButtonPresenter::DrawOnOffSlidingHandler(float handlerPosition)
                                                detailedHighlightedBgColor);
                        }
 
-                       if (pReColorBgBitmap)
+                       if (pReColorBgBitmap && __highlightedIndex == 1)
                        {
                                pCanvas->DrawBitmap(FloatPoint(handlerPosition, __onOffSlidingButtonBounds.y - handlerMargin), *pReColorBgBitmap);
                        }
@@ -1943,7 +2126,7 @@ _CheckButtonPresenter::DrawOnOffSlidingHandler(float handlerPosition)
                                                detailedHighlightedBgColor);
                        }
 
-                       if (pReColorBgBitmap)
+                       if (pReColorBgBitmap && __highlightedIndex == 1)
                        {
                                pCanvas->DrawBitmap(FloatPoint(handlerPosition, __onOffSlidingButtonBounds.y - handlerMargin), *pReColorBgBitmap);
                        }
@@ -2006,15 +2189,53 @@ _CheckButtonPresenter::OnKeyPressed(const _Control& source, const _KeyInfo& keyI
 {
        _KeyCode keyCode = keyInfo.GetKeyCode();
 
+       CheckButtonStyle checkStyle = __pCheckButton->GetCheckButtonStyle();
+
        if (__pCheckButton->IsFocusModeStateEnabled() == true && keyCode == _KEY_ENTER)
        {
                if (__pCheckButton->GetCheckButtonStatus() != _CHECK_BUTTON_STATUS_DISABLED)
                {
-                       __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_PRESSED);
+                       if (checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING || checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING_WITH_DIVIDER)
+                       {
+                               if (__highlightedIndex == 1)
+                               {
+                                       __onOffHandlerPressed = true;
+                               }
+                               else
+                               {
+                                       __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_PRESSED);
+                               }
+                       }
+                       else if (checkStyle == CHECK_BUTTON_STYLE_MARK_WITH_DETAILED_BUTTON)
+                       {
+                               if (__highlightedIndex == 2)
+                               {
+                                       __detailedPressed = true;
+                               }
+                               else
+                               {
+                                       __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_PRESSED);
+                               }
+                       }
+                       else if (checkStyle == CHECK_BUTTON_STYLE_RADIO_WITH_DETAILED_BUTTON)
+                       {
+                               if (__highlightedIndex == 1)
+                               {
+                                       __detailedPressed = true;
+                               }
+                               else
+                               {
+                                       __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_PRESSED);
+                               }
+                       }
+                       else
+                       {
+                               __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_PRESSED);
+                       }
                }
        }
 
-       __pCheckButton->Draw();
+       __pCheckButton->Invalidate();
 
        return false;
 }
@@ -2024,10 +2245,80 @@ _CheckButtonPresenter::OnKeyReleased(const _Control& source, const _KeyInfo& key
 {
        _KeyCode keyCode = keyInfo.GetKeyCode();
 
-       if (__pCheckButton->IsFocusModeStateEnabled() == true && keyCode == _KEY_ENTER)
+       CheckButtonStyle checkStyle = __pCheckButton->GetCheckButtonStyle();
+
+       if (__pCheckButton->IsFocusModeStateEnabled() == true && keyCode == _KEY_LEFT)
        {
-               CheckButtonStyle checkStyle = __pCheckButton->GetCheckButtonStyle();
+               if (checkStyle == CHECK_BUTTON_STYLE_RADIO || checkStyle == CHECK_BUTTON_STYLE_RADIO_WITH_DIVIDER)
+               {
+                       __highlightedIndex = 0;
+               }
+               else if (checkStyle == CHECK_BUTTON_STYLE_MARK_WITH_DETAILED_BUTTON)
+               {
+                       if (__highlightedIndex == 0)
+                       {
+                               __highlightedIndex = 1;
+                       }
+                       else if (__highlightedIndex == 1)
+                       {
+                               __highlightedIndex = 2;
+                       }
+                       else if (__highlightedIndex == 2)
+                       {
+                               __highlightedIndex = 0;
+                       }
+               }
+               else
+               {
+                       if (__highlightedIndex == 0)
+                       {
+                               __highlightedIndex = 1;
+                       }
+                       else if (__highlightedIndex == 1)
+                       {
+                               __highlightedIndex = 0;
+                       }
+               }
 
+               __pCheckButton->Invalidate();
+       }
+       else if (__pCheckButton->IsFocusModeStateEnabled() == true && keyCode == _KEY_RIGHT)
+       {
+               if (checkStyle == CHECK_BUTTON_STYLE_RADIO || checkStyle == CHECK_BUTTON_STYLE_RADIO_WITH_DIVIDER)
+               {
+                       __highlightedIndex = 0;
+               }
+               else if (checkStyle == CHECK_BUTTON_STYLE_MARK_WITH_DETAILED_BUTTON)
+               {
+                       if (__highlightedIndex == 0)
+                       {
+                               __highlightedIndex = 2;
+                       }
+                       else if (__highlightedIndex == 1)
+                       {
+                               __highlightedIndex = 0;
+                       }
+                       else if (__highlightedIndex == 2)
+                       {
+                               __highlightedIndex = 1;
+                       }
+               }
+               else
+               {
+                       if (__highlightedIndex == 0)
+                       {
+                               __highlightedIndex = 1;
+                       }
+                       else if (__highlightedIndex == 1)
+                       {
+                               __highlightedIndex = 0;
+                       }
+               }
+
+               __pCheckButton->Invalidate();
+       }
+       else if (__pCheckButton->IsFocusModeStateEnabled() == true && keyCode == _KEY_ENTER)
+       {
                if (checkStyle == CHECK_BUTTON_STYLE_MARK || checkStyle == CHECK_BUTTON_STYLE_MARK_WITH_DIVIDER || checkStyle == CHECK_BUTTON_STYLE_MARK_WITH_DETAILED_BUTTON
                                || checkStyle == CHECK_BUTTON_STYLE_RADIO || checkStyle == CHECK_BUTTON_STYLE_RADIO_WITH_DIVIDER || checkStyle == CHECK_BUTTON_STYLE_RADIO_WITH_DETAILED_BUTTON)
                {
@@ -2040,22 +2331,69 @@ _CheckButtonPresenter::OnKeyReleased(const _Control& source, const _KeyInfo& key
 
                __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
 
-               PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pCheckButton);
+               if (checkStyle == CHECK_BUTTON_STYLE_MARK_WITH_DETAILED_BUTTON)
+               {
+                       if (__highlightedIndex != 2)
+                       {
+                               PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pCheckButton);
 
-               __pCheckButton->FireActionEvent();
+                               __pCheckButton->FireActionEvent();
 
-               if (__pCheckButton->GetRadioGroup() != null)
-               {
-                       __pCheckButton->SendTouchReleasedEvent(*__pCheckButton);
+                               if (__pCheckButton->GetRadioGroup() != null)
+                               {
+                                       __pCheckButton->SendTouchReleasedEvent(*__pCheckButton);
+                               }
+                       }
+                       else
+                       {
+                               __detailedPressed = false;
+                       }
                }
+               else if (checkStyle == CHECK_BUTTON_STYLE_RADIO_WITH_DETAILED_BUTTON)
+               {
+                       if (__highlightedIndex != 1)
+                       {
+                               PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pCheckButton);
 
-               if (checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING_WITH_DIVIDER || checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING)
+                               __pCheckButton->FireActionEvent();
+
+                               if (__pCheckButton->GetRadioGroup() != null)
+                               {
+                                       __pCheckButton->SendTouchReleasedEvent(*__pCheckButton);
+                               }
+                       }
+                       else
+                       {
+                               __detailedPressed = false;
+                       }
+               }
+               else if (checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING_WITH_DIVIDER || checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING)
                {
+                       PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pCheckButton);
+
+                       __pCheckButton->FireActionEvent();
+
+                       if (__pCheckButton->GetRadioGroup() != null)
+                       {
+                               __pCheckButton->SendTouchReleasedEvent(*__pCheckButton);
+                       }
+
                        AdjustHandlerPosition();
 
                        __onOffHandlerPressed = false;
                        __onOffHandlerMoved = false;
                }
+               else
+               {
+                       PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pCheckButton);
+
+                       __pCheckButton->FireActionEvent();
+
+                       if (__pCheckButton->GetRadioGroup() != null)
+                       {
+                               __pCheckButton->SendTouchReleasedEvent(*__pCheckButton);
+                       }
+               }
        }
 
        return false;
@@ -2476,6 +2814,8 @@ _CheckButtonPresenter::OnFocusModeStateChanged(void)
 bool
 _CheckButtonPresenter::OnFocusGained(const _Control& source)
 {
+       __highlightedIndex = 0;
+
        if (__pCheckButton->IsFocusModeStateEnabled() == true)
        {
                if (__pCheckButton->GetCheckButtonStatus() != _CHECK_BUTTON_STATUS_DISABLED)
index bfb7597..2227b11 100644 (file)
@@ -2800,6 +2800,7 @@ _Toolbar::SetTitleTextColor(const Color& color)
        return E_SUCCESS;
 }
 
+#if 1
 result
 _Toolbar::SetTransparent(bool transparent)
 {
@@ -2949,6 +2950,207 @@ _Toolbar::SetTransparent(bool transparent)
 
        return E_SUCCESS;
 }
+#endif
+
+#if 0
+result
+_Toolbar::SetTransparent(bool transparent)
+{
+       if (__style == TOOLBAR_SOFTKEY)
+       {
+               return E_SUCCESS;
+       }
+
+       __transparent = transparent;
+
+       InitToolbarColor();
+
+       Bitmap* pMagentaBackgroundBitmap = null;
+
+       if (__isUserBackgroundBitmap == false)
+       {
+               if (__pToolbarBackgroundBitmap)
+               {
+                       delete __pToolbarBackgroundBitmap;
+                       __pToolbarBackgroundBitmap = null;
+               }
+
+               if (__pToolbarBackgroundEffectBitmap)
+               {
+                       delete __pToolbarBackgroundEffectBitmap;
+                       __pToolbarBackgroundEffectBitmap = null;
+               }
+
+               if (__transparent == true)
+               {
+                       if (__header == true)
+                       {
+                               GET_BITMAP_CONFIG_N(HEADER::TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
+
+                               bool customTheme = IS_CUSTOM_BITMAP(HEADER::TRANSLUCENT_BG_NORMAL);
+                               if (customTheme == false)
+                               {
+                                       GET_BITMAP_CONFIG_N(HEADER::TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
+                               }
+                       }
+                       else
+                       {
+                               GET_BITMAP_CONFIG_N(FOOTER::TRANSLUCENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
+
+                               bool customTheme = IS_CUSTOM_BITMAP(FOOTER::TRANSLUCENT_BG_NORMAL);
+                               if (customTheme == false)
+                               {
+                                       GET_BITMAP_CONFIG_N(FOOTER::TRANSLUCENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
+                               }
+                       }
+               }
+               else
+               {
+                       if (__header == true)
+                       {
+                               GET_BITMAP_CONFIG_N(HEADER::BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
+
+                               bool customTheme = IS_CUSTOM_BITMAP(HEADER::BG_NORMAL);
+                               if (customTheme == false)
+                               {
+                                       GET_BITMAP_CONFIG_N(HEADER::BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
+                               }
+                       }
+                       else
+                       {
+                               GET_BITMAP_CONFIG_N(FOOTER::BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pMagentaBackgroundBitmap);
+
+                               bool customTheme = IS_CUSTOM_BITMAP(FOOTER::BG_NORMAL);
+                               if (customTheme == false)
+                               {
+                                       GET_BITMAP_CONFIG_N(FOOTER::BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pToolbarBackgroundEffectBitmap);
+                               }
+                       }
+               }
+
+               if (__transparent == true)
+               {
+                       __isUserBackgroundBitmap = true;
+
+                       Color tempColor;
+
+                       if (__header == true)
+                       {
+                               GET_COLOR_CONFIG(HEADER::TRANSLUCENT_BG_NORMAL, tempColor);
+                       }
+                       else
+                       {
+                               GET_COLOR_CONFIG(FOOTER::TRANSLUCENT_BG_NORMAL, tempColor);
+                       }
+
+                       if (pMagentaBackgroundBitmap)
+                       {
+                               __pToolbarBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*(pMagentaBackgroundBitmap),
+                                               Color::GetColor(COLOR_ID_MAGENTA), tempColor);
+
+                               if (__pToolbarBackgroundBitmap)
+                               {
+                                       __pToolbarBackgroundBitmap->SetAlphaConstant(0x7F);
+                               }
+                       }
+
+                       SetTitleTextColor(__transTitleTextColor);
+                       SetDescriptionTextColor(__transDescriptionTextColor);
+
+                       for (int i = 0; i < __itemCount ; i ++)
+                       {
+                               if (__pItems.at(i) != null)
+                               {
+                                       ApplyUserGUI(TOOLBAR_ITEM, __pItems.at(i));
+                               }
+                       }
+
+                       for (int i = 0; i < BUTTON_MAX; i++)
+                       {
+                               if (__pButtonItems[i] != null)
+                               {
+                                       ApplyUserGUI(TOOLBAR_BUTTON, __pButtonItems[i]);
+                               }
+                       }
+               }
+               else // not transparent
+               {
+                       __isUserBackgroundBitmap = false;
+
+                       __pToolbarBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*(pMagentaBackgroundBitmap),
+                                       Color::GetColor(COLOR_ID_MAGENTA), GetColor());
+
+                       SetTitleTextColor(__titleTextColor);
+                       SetDescriptionTextColor(__descriptionTextColor);
+
+                       for (int i = 0; i < __itemCount ; i ++)
+                       {
+                               if (__pItems.at(i) != null)
+                               {
+                                       ApplyUserGUI(TOOLBAR_ITEM, __pItems.at(i));
+                               }
+                       }
+
+                       for (int i = 0; i < BUTTON_MAX; i++)
+                       {
+                               if (__pButtonItems[i] != null)
+                               {
+                                       ApplyUserGUI(TOOLBAR_BUTTON, __pButtonItems[i]);
+                               }
+                       }
+               }
+       }
+       else // __isUserBackgroundBitmap == true
+       {
+               if (__transparent == true)
+               {
+                       SetTitleTextColor(__transTitleTextColor);
+                       SetDescriptionTextColor(__transDescriptionTextColor);
+
+                       for (int i = 0; i < __itemCount ; i ++)
+                       {
+                               if (__pItems.at(i) != null)
+                               {
+                                       ApplyUserGUI(TOOLBAR_ITEM, __pItems.at(i));
+                               }
+                       }
+
+                       for (int i = 0; i < BUTTON_MAX; i++)
+                       {
+                               if (__pButtonItems[i] != null)
+                               {
+                                       ApplyUserGUI(TOOLBAR_BUTTON, __pButtonItems[i]);
+                               }
+                       }
+               }
+               else // not transparent
+               {
+                       SetTitleTextColor(__titleTextColor);
+                       SetDescriptionTextColor(__descriptionTextColor);
+
+                       for (int i = 0; i < __itemCount ; i ++)
+                       {
+                               if (__pItems.at(i) != null)
+                               {
+                                       ApplyUserGUI(TOOLBAR_ITEM, __pItems.at(i));
+                               }
+                       }
+
+                       for (int i = 0; i < BUTTON_MAX; i++)
+                       {
+                               if (__pButtonItems[i] != null)
+                               {
+                                       ApplyUserGUI(TOOLBAR_BUTTON, __pButtonItems[i]);
+                               }
+                       }
+               }
+       }
+
+       delete pMagentaBackgroundBitmap;
+
+       return E_SUCCESS;
+}
+#endif
 
 result
 _Toolbar::SetWaitingAnimationPosition(ToolbarAnimationPosition animationPos, float x, float y)
@@ -3240,7 +3442,7 @@ _Toolbar::OnDrawFocus(void)
                {
                        if (__highlightedItemIndex < __itemCount)
                        {
-                               if (__pItems.at(__highlightedItemIndex))
+                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                {
                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                        {
@@ -3379,7 +3581,7 @@ _Toolbar::OnFocusModeStateChanged(void)
        {
                if (__highlightedItemIndex < __itemCount)
                {
-                       if (__pItems.at(__highlightedItemIndex))
+                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                        {
                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                {
@@ -3555,7 +3757,7 @@ _Toolbar::OnHeaderFocusGained(const _Control& source)
        }
        else // itemCount != 0
        {
-               if (__pItems.at(__highlightedItemIndex))
+               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                {
                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                        {
@@ -3667,12 +3869,15 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                {
                        __highlightedItemIndex = GetSelectedItemIndex();
 
-                       if (__pItems.at(__highlightedItemIndex))
+                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                        {
-                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                               {
+                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
 
-                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                               __highlighted = true;
+                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                       __highlighted = true;
+                               }
                        }
                }
                else // not segmented
@@ -3689,7 +3894,7 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                                }
                                else
                                {
-                                       if (__pItems.at(__highlightedItemIndex))
+                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                        {
                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
@@ -3733,7 +3938,7 @@ _Toolbar::OnFooterFocusGained(const _Control& source)
                        }
                        else
                        {
-                               if (__pItems.at(__highlightedItemIndex))
+                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                {
                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                        {
@@ -3833,7 +4038,7 @@ _Toolbar::OnFocusLost(const _Control& source)
        {
                if (__highlightedItemIndex < __itemCount)
                {
-                       if(__pItems.at(__highlightedItemIndex))
+                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                        {
                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                {
@@ -3921,25 +4126,31 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                        {
                                if (__highlightedItemIndex < (__itemCount - 1)) // 0,1
                                {
-                                       if (__pItems.at(__highlightedItemIndex) != null)
+                                       if (__highlightedItemIndex == selectedItemIndex)
                                        {
-                                               if (__highlightedItemIndex == selectedItemIndex)
+                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                {
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
                                                        }
                                                }
-                                               else
+                                       }
+                                       else
+                                       {
+                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                {
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
                                                        }
                                                }
+                                       }
 
-                                               __highlightedItemIndex++;
+                                       __highlightedItemIndex++;
 
+                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
+                                       {
                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
@@ -3967,16 +4178,19 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                        {
                                                if (__highlightedItemIndex == __itemCount - 1)
                                                {
-                                                       if (__pItems.at(__highlightedItemIndex) != null)
+                                                       if (__highlightedItemIndex == selectedItemIndex)
                                                        {
-                                                               if (__highlightedItemIndex == selectedItemIndex)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
                                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                        {
                                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
                                                                        }
                                                                }
-                                                               else
+                                                       }
+                                                       else
+                                                       {
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
                                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                                        {
@@ -4079,7 +4293,7 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
 
                                        if (__highlightedItemIndex < __itemCount)
                                        {
-                                               if (__pItems.at(__highlightedItemIndex))
+                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                {
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
@@ -4201,63 +4415,81 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
 
                                                        __highlightedItemIndex = 0;
 
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
-                                                       }
-                                                       else
-                                                       {
-                                                               OnKeyReleased(source, keyInfo);
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
+                                                               }
+                                                               else
+                                                               {
+                                                                       OnKeyReleased(source, keyInfo);
+                                                               }
                                                        }
                                                }
                                                else if (__highlightedItemIndex < __itemCount - 1)
                                                {
                                                        if (__highlightedItemIndex == selectedItemIndex)
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       }
                                                                }
                                                        }
                                                        else
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       }
                                                                }
                                                        }
 
                                                        __highlightedItemIndex++;
 
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
-                                                       }
-                                                       else
-                                                       {
-                                                               OnKeyReleased(source, keyInfo);
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
+                                                               }
+                                                               else
+                                                               {
+                                                                       OnKeyReleased(source, keyInfo);
+                                                               }
                                                        }
                                                }
                                                else if (__highlightedItemIndex == __itemCount -1)
                                                {
                                                        if (__highlightedItemIndex == selectedItemIndex)
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       }
                                                                }
                                                        }
                                                        else
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       }
                                                                }
                                                        }
 
@@ -4290,47 +4522,59 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
 
                                                        __highlightedItemIndex = 0;
 
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
-                                                       }
-                                                       else
-                                                       {
-                                                               OnKeyReleased(source, keyInfo);
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
+                                                               }
+                                                               else
+                                                               {
+                                                                       OnKeyReleased(source, keyInfo);
+                                                               }
                                                        }
                                                }
                                                else if (__highlightedItemIndex < __itemCount - 1)
                                                {
                                                        if (__highlightedItemIndex == selectedItemIndex)
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       }
                                                                }
                                                        }
                                                        else
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       }
                                                                }
                                                        }
 
                                                        __highlightedItemIndex++;
 
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
-                                                       }
-                                                       else
-                                                       {
-                                                               OnKeyReleased(source, keyInfo);
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
+                                                               }
+                                                               else
+                                                               {
+                                                                       OnKeyReleased(source, keyInfo);
+                                                               }
                                                        }
                                                }
                                        }
@@ -4343,47 +4587,62 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                {
                                                        if (__highlightedItemIndex == selectedItemIndex)
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       }
                                                                }
                                                        }
                                                        else
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       }
                                                                }
                                                        }
 
                                                        __highlightedItemIndex++;
 
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
-                                                       }
-                                                       else
-                                                       {
-                                                               OnKeyReleased(source, keyInfo);
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
+                                                               }
+                                                               else
+                                                               {
+                                                                       OnKeyReleased(source, keyInfo);
+                                                               }
                                                        }
                                                }
                                                else if (__highlightedItemIndex == __itemCount -1)
                                                {
                                                        if (__highlightedItemIndex == selectedItemIndex)
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       }
                                                                }
                                                        }
                                                        else
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       }
                                                                }
                                                        }
 
@@ -4411,39 +4670,48 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                {
                                                        if (__highlightedItemIndex == selectedItemIndex)
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       }
                                                                }
                                                        }
                                                        else
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       }
                                                                }
                                                        }
 
                                                        __highlightedItemIndex++;
 
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
 
-                                                               if (__highlightedItemIndex - __pToolbarPresenter->GetFirstLoadedItemIndex() == SEGMENTED_ITEM_MAX)
-                                                               {
-                                                                       if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
+                                                                       if (__highlightedItemIndex - __pToolbarPresenter->GetFirstLoadedItemIndex() == SEGMENTED_ITEM_MAX)
                                                                        {
-                                                                               __pToolbarPresenter->SetItemFit(__highlightedItemIndex - (SEGMENTED_ITEM_MAX - 1));
+                                                                               if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
+                                                                               {
+                                                                                       __pToolbarPresenter->SetItemFit(__highlightedItemIndex - (SEGMENTED_ITEM_MAX - 1));
+                                                                               }
                                                                        }
                                                                }
-                                                       }
-                                                       else
-                                                       {
-                                                               OnKeyReleased(source, keyInfo);
+                                                               else
+                                                               {
+                                                                       OnKeyReleased(source, keyInfo);
+                                                               }
                                                        }
                                                }
                                        }
@@ -4455,7 +4723,7 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
 
                                        if (__highlightedItemIndex < __itemCount)
                                        {
-                                               if (__pItems.at(__highlightedItemIndex))
+                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                {
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
@@ -4620,39 +4888,48 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                }
                                        }
 
-                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                        {
-                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                               {
+                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
 
-                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                               __highlighted = true;
-                                       }
-                                       else
-                                       {
-                                               OnKeyReleased(source, keyInfo);
+                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                       __highlighted = true;
+                                               }
+                                               else
+                                               {
+                                                       OnKeyReleased(source, keyInfo);
+                                               }
                                        }
                                }
                                else if (__highlightedItemIndex > 0)
                                {
-                                       if (__pItems.at(__highlightedItemIndex) != null)
+                                       if (__highlightedItemIndex == selectedItemIndex)
                                        {
-                                               if (__highlightedItemIndex == selectedItemIndex)
+                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                {
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
                                                        }
                                                }
-                                               else
+                                       }
+                                       else
+                                       {
+                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                {
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
                                                                __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
                                                        }
                                                }
+                                       }
 
-                                               __highlightedItemIndex--;
+                                       __highlightedItemIndex--;
 
+                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
+                                       {
                                                if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                {
                                                        __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
@@ -4681,7 +4958,7 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
 
                                        if (__highlightedItemIndex < __itemCount)
                                        {
-                                               if (__pItems.at(__highlightedItemIndex))
+                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                {
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
@@ -4795,16 +5072,22 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                {
                                                        if (__highlightedItemIndex == selectedItemIndex)
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       }
                                                                }
                                                        }
                                                        else
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       }
                                                                }
                                                        }
 
@@ -4829,31 +5112,40 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                {
                                                        if (__highlightedItemIndex == selectedItemIndex)
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       }
                                                                }
                                                        }
                                                        else
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       }
                                                                }
                                                        }
 
                                                        __highlightedItemIndex--;
 
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
-                                                       }
-                                                       else
-                                                       {
-                                                               OnKeyReleased(source, keyInfo);
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
+                                                               }
+                                                               else
+                                                               {
+                                                                       OnKeyReleased(source, keyInfo);
+                                                               }
                                                        }
                                                }
                                                else if (__highlightedItemIndex == __itemCount + 1)
@@ -4868,16 +5160,19 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
 
                                                        __highlightedItemIndex = __itemCount - 1;
 
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
-                                                       }
-                                                       else
-                                                       {
-                                                               OnKeyReleased(source, keyInfo);
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
+                                                               }
+                                                               else
+                                                               {
+                                                                       OnKeyReleased(source, keyInfo);
+                                                               }
                                                        }
                                                }
                                        }
@@ -4887,16 +5182,22 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                {
                                                        if (__highlightedItemIndex == selectedItemIndex)
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       }
                                                                }
                                                        }
                                                        else
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       }
                                                                }
                                                        }
 
@@ -4921,31 +5222,40 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                {
                                                        if (__highlightedItemIndex == selectedItemIndex)
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       }
                                                                }
                                                        }
                                                        else
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       }
                                                                }
                                                        }
 
                                                        __highlightedItemIndex--;
 
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
-                                                       }
-                                                       else
-                                                       {
-                                                               OnKeyReleased(source, keyInfo);
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
+                                                               }
+                                                               else
+                                                               {
+                                                                       OnKeyReleased(source, keyInfo);
+                                                               }
                                                        }
                                                }
                                        }
@@ -4962,31 +5272,40 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                {
                                                        if (__highlightedItemIndex == selectedItemIndex)
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       }
                                                                }
                                                        }
                                                        else
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       }
                                                                }
                                                        }
 
                                                        __highlightedItemIndex--;
 
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
-                                                       }
-                                                       else
-                                                       {
-                                                               OnKeyReleased(source, keyInfo);
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
+                                                               }
+                                                               else
+                                                               {
+                                                                       OnKeyReleased(source, keyInfo);
+                                                               }
                                                        }
                                                }
                                                else if (__highlightedItemIndex == __itemCount)
@@ -5001,16 +5320,19 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
 
                                                        __highlightedItemIndex--;
 
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
-                                                       }
-                                                       else
-                                                       {
-                                                               OnKeyReleased(source, keyInfo);
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
+                                                               }
+                                                               else
+                                                               {
+                                                                       OnKeyReleased(source, keyInfo);
+                                                               }
                                                        }
                                                }
                                        }
@@ -5024,39 +5346,48 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                {
                                                        if (__highlightedItemIndex == selectedItemIndex)
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+                                                                       }
                                                                }
                                                        }
                                                        else
                                                        {
-                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                                {
-                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                                       {
+                                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       }
                                                                }
                                                        }
 
                                                        __highlightedItemIndex--;
 
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
 
-                                                               if (__pToolbarPresenter->GetFirstLoadedItemIndex() > __highlightedItemIndex)
-                                                               {
-                                                                       if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
+                                                                       if (__pToolbarPresenter->GetFirstLoadedItemIndex() > __highlightedItemIndex)
                                                                        {
-                                                                               __pToolbarPresenter->SetItemFit(__highlightedItemIndex);
+                                                                               if (__style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
+                                                                               {
+                                                                                       __pToolbarPresenter->SetItemFit(__highlightedItemIndex);
+                                                                               }
                                                                        }
                                                                }
-                                                       }
-                                                       else
-                                                       {
-                                                               OnKeyReleased(source, keyInfo);
+                                                               else
+                                                               {
+                                                                       OnKeyReleased(source, keyInfo);
+                                                               }
                                                        }
                                                }
                                        }
@@ -5068,7 +5399,7 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
 
                                        if (__highlightedItemIndex < __itemCount)
                                        {
-                                               if (__pItems.at(__highlightedItemIndex))
+                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                {
                                                        if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
                                                        {
@@ -5192,19 +5523,28 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
                                                                || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
                                                {
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               SetItemHighlighted(__highlightedItemIndex, true, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       SetItemHighlighted(__highlightedItemIndex, true, false);
+                                                               }
                                                        }
                                                }
                                                else
                                                {
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
+                                                               }
                                                        }
                                                }
                                        }
@@ -5248,19 +5588,28 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
                                                                || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
                                                {
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               SetItemHighlighted(__highlightedItemIndex, true, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       SetItemHighlighted(__highlightedItemIndex, true, false);
+                                                               }
                                                        }
                                                }
                                                else
                                                {
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
+                                                               }
                                                        }
                                                }
                                        }
@@ -5291,19 +5640,28 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
                                                                || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
                                                {
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               SetItemHighlighted(__highlightedItemIndex, true, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       SetItemHighlighted(__highlightedItemIndex, true, false);
+                                                               }
                                                        }
                                                }
                                                else
                                                {
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
+                                                               }
                                                        }
                                                }
                                        }
@@ -5331,19 +5689,28 @@ _Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
                                                if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
                                                                || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE || __style == TOOLBAR_TAB_LARGE)
                                                {
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               SetItemHighlighted(__highlightedItemIndex, true, false);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       SetItemHighlighted(__highlightedItemIndex, true, false);
+                                                               }
                                                        }
                                                }
                                                else
                                                {
-                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                        {
-                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+                                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                               {
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+                                                                       __pItems.at(__highlightedItemIndex)->Invalidate();
 
-                                                               __lastHighlightedItemIndex = __highlightedItemIndex;
-                                                               __highlighted = true;
+                                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+
+                                                                       __lastHighlightedItemIndex = __highlightedItemIndex;
+                                                                       __highlighted = true;
+                                                               }
                                                        }
                                                }
                                        }
@@ -5548,9 +5915,12 @@ _Toolbar::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
                                {
                                        if (__highlightedItemIndex < __itemCount)
                                        {
-                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                {
-                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
+                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       {
+                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
+                                                       }
                                                }
                                        }
                                        else if (__highlightedItemIndex == __itemCount)
@@ -5578,9 +5948,12 @@ _Toolbar::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
                                {
                                        if (__highlightedItemIndex < __itemCount)
                                        {
-                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                {
-                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
+                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       {
+                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
+                                                       }
                                                }
                                        }
                                        else if (__highlightedItemIndex == __itemCount)
@@ -5601,9 +5974,12 @@ _Toolbar::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
                                {
                                        if (__highlightedItemIndex < __itemCount)
                                        {
-                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                {
-                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
+                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       {
+                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
+                                                       }
                                                }
                                        }
                                        else if (__highlightedItemIndex == __itemCount)
@@ -5621,9 +5997,12 @@ _Toolbar::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
                                {
                                        if (__highlightedItemIndex < __itemCount)
                                        {
-                                               if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                               if (__highlightedItemIndex != -1 && __pItems.at(__highlightedItemIndex))
                                                {
-                                                       __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
+                                                       if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+                                                       {
+                                                               __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_PRESSED);
+                                                       }
                                                }
                                        }
                                }
@@ -7381,7 +7760,7 @@ _Toolbar::RearrangeItems(void)
                                        }
                                        else
                                        {
-                                               __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth , vmargin,
+                                               __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth + 1, vmargin,
                                                                headerRightButtonWidth, headerButtonItemHeight));
                                                __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth - buttonItemGap - headerLeftButtonWidth , vmargin,
                                                                headerLeftButtonWidth, headerButtonItemHeight));
@@ -7430,7 +7809,7 @@ _Toolbar::RearrangeItems(void)
                                        }
                                        else
                                        {
-                                               __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth , vmargin,
+                                               __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth + 1, vmargin,
                                                                headerRightButtonWidth, headerButtonItemHeight));
                                                __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth - buttonItemGap - headerLeftButtonWidth , vmargin,
                                                                headerLeftButtonWidth, headerButtonItemHeight));
@@ -7476,7 +7855,7 @@ _Toolbar::RearrangeItems(void)
                                }
                                else
                                {
-                                       __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth , vmargin,
+                                       __pButtonItems[RIGHT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerRightButtonWidth + 1, vmargin,
                                                        headerRightButtonWidth, headerButtonItemHeight));
 
                                        if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
@@ -7518,7 +7897,7 @@ _Toolbar::RearrangeItems(void)
                        }
                        else
                        {
-                               __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerLeftButtonWidth , vmargin,
+                               __pButtonItems[LEFT_BUTTON]->SetBounds(FloatRectangle(__titleTextArea.width - headerLeftButtonWidth + 1, vmargin,
                                                headerLeftButtonWidth, headerButtonItemHeight));
 
                                if (__style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
@@ -7794,6 +8173,8 @@ _Toolbar::RearrangeHeaderSegmentedItems(void)
                if (!(__pButtonItems[LEFT_BUTTON] || __pButtonItems[RIGHT_BUTTON])) // no button
                {
                        blockWidth[0] = blockWidth[1] = (GetSizeF().width - dividerWidth ) / 2;
+
+                       blockWidth[1] += 1;
                }
                else
                {
@@ -7835,7 +8216,7 @@ _Toolbar::RearrangeHeaderSegmentedItems(void)
 
                        __pItems.at(0)->SetBounds(FloatRectangle(0, vmargin, blockWidth[0], segmentedItemHeight));
                        __pItems.at(1)->SetBounds(FloatRectangle(blockWidth[0] + dividerWidth, vmargin, blockWidth[1], segmentedItemHeight));
-                       __pItems.at(2)->SetBounds(FloatRectangle(GetSizeF().width - blockWidth[2],vmargin, blockWidth[2], segmentedItemHeight));
+                       __pItems.at(2)->SetBounds(FloatRectangle(GetSizeF().width - blockWidth[2],vmargin, blockWidth[2] + 2, segmentedItemHeight));
                }
                else
                {
@@ -7883,7 +8264,7 @@ _Toolbar::RearrangeHeaderSegmentedItems(void)
                        __pItems.at(2)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1] + dividerWidth * 2,
                                        vmargin, blockWidth[2], segmentedItemHeight));
                        __pItems.at(3)->SetBounds(FloatRectangle(blockWidth[0] + blockWidth[1] + blockWidth[2] + dividerWidth * 3,
-                                       vmargin, GetSizeF().width - (blockWidth[0] + blockWidth[1] + blockWidth[2] + dividerWidth * 3), segmentedItemHeight));
+                                       vmargin, blockWidth[3] + 1, segmentedItemHeight));
                }
                else
                {
@@ -8066,7 +8447,7 @@ _Toolbar::RearrangeFooterSegmentedItems(void)
                        else
                        {
                                __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth, segmentedItemHeight));
-                               __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
+                               __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1] + 1, segmentedItemHeight));
                        }
                }
                else
@@ -8079,7 +8460,7 @@ _Toolbar::RearrangeFooterSegmentedItems(void)
                        else
                        {
                                __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0], segmentedItemHeight));
-                               __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
+                               __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1] + 1, segmentedItemHeight));
                        }
                }
 
@@ -8149,7 +8530,7 @@ _Toolbar::RearrangeFooterSegmentedItems(void)
                                __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0] - dividerWidth, segmentedItemHeight));
                                __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
                                __pItems.at(2)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
-                                               (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[2], segmentedItemHeight));
+                                               (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[2] + 2, segmentedItemHeight));
                        }
                }
                else
@@ -8166,7 +8547,7 @@ _Toolbar::RearrangeFooterSegmentedItems(void)
                                __pItems.at(0)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[0], segmentedItemHeight));
                                __pItems.at(1)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[1], segmentedItemHeight));
                                __pItems.at(2)->SetBounds(FloatRectangle(leftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
-                                               (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[2], segmentedItemHeight));
+                                               (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[2] + 2, segmentedItemHeight));
                        }
                }
 
@@ -8198,7 +8579,7 @@ _Toolbar::RearrangeFooterSegmentedItems(void)
                __pItems.at(2)->SetBounds(FloatRectangle(leftMargin + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
                                (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[2], segmentedItemHeight));
                __pItems.at(3)->SetBounds(FloatRectangle(leftMargin + blockWidth[0] + blockWidth[1] + blockWidth[2] + dividerWidth * 3,
-                               (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[3], segmentedItemHeight));
+                               (GetSizeF().height - segmentedItemHeight) / 2, blockWidth[3] + 1, segmentedItemHeight));
 
                for (int i = 0; i < __itemCount ; i++)
                {
@@ -8275,7 +8656,7 @@ _Toolbar::RearrangeTabItmes(void)
                itemWidth[0] = itemWidth[1] = (__itemArea.width - tabLeftMargin * 2 - dividerWidth) / 2;
 
                __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin, vmargin, itemWidth[0], segmentedItemHeight));
-               __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + itemWidth[0] + dividerWidth, vmargin, itemWidth[1], segmentedItemHeight));
+               __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + itemWidth[0] + dividerWidth, vmargin, itemWidth[1] + 1, segmentedItemHeight));
 
                GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE, GetOrientation(), fontSize); // 30
 
@@ -8294,7 +8675,7 @@ _Toolbar::RearrangeTabItmes(void)
 
                __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin, vmargin, itemWidth[0], segmentedItemHeight));
                __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + itemWidth[0] + dividerWidth, vmargin, itemWidth[1], segmentedItemHeight));
-               __pItems.at(2)->SetBounds(FloatRectangle(tabLeftMargin + itemWidth[0] + itemWidth[1] + dividerWidth * 2, vmargin, itemWidth[2], segmentedItemHeight));
+               __pItems.at(2)->SetBounds(FloatRectangle(tabLeftMargin + itemWidth[0] + itemWidth[1] + dividerWidth * 2, vmargin, itemWidth[2] + 2, segmentedItemHeight));
 
                GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_3_ITEM, GetOrientation(), fontSize); // 26
 
@@ -8316,7 +8697,7 @@ _Toolbar::RearrangeTabItmes(void)
                __pItems.at(2)->SetBounds(FloatRectangle(tabLeftMargin + itemWidth[0] + itemWidth[1] + dividerWidth * 2,
                                vmargin, itemWidth[2], segmentedItemHeight));
                __pItems.at(3)->SetBounds(FloatRectangle(tabLeftMargin + itemWidth[0] + itemWidth[1] + itemWidth[2] + dividerWidth * 3,
-                               vmargin, itemWidth[3], segmentedItemHeight));
+                               vmargin, itemWidth[3] + 1, segmentedItemHeight));
 
                GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), fontSize); // 24
                GET_SHAPE_CONFIG(HEADER::TAB_ITEM_FONT_SIZE_4_ITEM, GetOrientation(), multilineFontSize); // 24
@@ -8513,7 +8894,7 @@ _Toolbar::RearrangeButtonItems(void)
                        else
                        {
                                __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth, itemHeight));
-                               __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
+                               __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1] + 1, itemHeight));
                        }
                }
                else
@@ -8526,7 +8907,7 @@ _Toolbar::RearrangeButtonItems(void)
                        else
                        {
                                __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
-                               __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
+                               __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1] + 1, itemHeight));
                        }
                }
 
@@ -8596,7 +8977,7 @@ _Toolbar::RearrangeButtonItems(void)
                                __pItems.at(0)->SetBounds(FloatRectangle(dividerWidth + tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0] - dividerWidth, itemHeight));
                                __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
                                __pItems.at(2)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
-                                                       (GetSizeF().height - itemHeight) / 2, blockWidth[2], itemHeight));
+                                                       (GetSizeF().height - itemHeight) / 2, blockWidth[2] + 2, itemHeight));
                        }
                }
                else
@@ -8613,7 +8994,7 @@ _Toolbar::RearrangeButtonItems(void)
                                __pItems.at(0)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap, (GetSizeF().height - itemHeight) / 2, blockWidth[0], itemHeight));
                                __pItems.at(1)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + dividerWidth, (GetSizeF().height - itemHeight) / 2, blockWidth[1], itemHeight));
                                __pItems.at(2)->SetBounds(FloatRectangle(tabLeftMargin + iconSize + itemButtonLeftGap + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
-                                               (GetSizeF().height - itemHeight) / 2, blockWidth[2], itemHeight));
+                                               (GetSizeF().height - itemHeight) / 2, blockWidth[2] + 2, itemHeight));
                        }
                }
 
@@ -8644,7 +9025,7 @@ _Toolbar::RearrangeButtonItems(void)
                __pItems.at(2)->SetBounds(FloatRectangle(tabLeftMargin + blockWidth[0] + blockWidth[1] + dividerWidth * 2,
                                (GetSizeF().height - itemHeight) / 2, blockWidth[2], itemHeight));
                __pItems.at(3)->SetBounds(FloatRectangle(tabLeftMargin + blockWidth[0] + blockWidth[1] + blockWidth[2] + dividerWidth * 3,
-                               (GetSizeF().height - itemHeight) / 2, blockWidth[3], itemHeight));
+                               (GetSizeF().height - itemHeight) / 2, blockWidth[3] + 1, itemHeight));
 
                for (int i = 0; i < __itemCount; i++)
                {
@@ -8675,7 +9056,7 @@ _Toolbar::RearrangeButtonItems(void)
                __pItems.at(3)->SetBounds(FloatRectangle(tabLeftMargin + blockWidth[0] + blockWidth[1] + blockWidth[2] + dividerWidth * 3,
                                (GetSizeF().height - itemHeight) / 2, blockWidth[3], itemHeight));
                __pItems.at(4)->SetBounds(FloatRectangle(tabLeftMargin + blockWidth[0] + blockWidth[1] + blockWidth[2] + blockWidth[3] + dividerWidth * 4,
-                               (GetSizeF().height - itemHeight) / 2, blockWidth[4], itemHeight));
+                               (GetSizeF().height - itemHeight) / 2, blockWidth[4] + 1, itemHeight));
 
                for (int i = 0; i < __itemCount; i++)
                {
index 53f5529..101b946 100644 (file)
@@ -368,7 +368,35 @@ _ToolbarPresenter::DrawDivider(void)
        pCanvas->SetBackgroundColor(backgroundColor);
        pCanvas->Clear();
 
-       if (style == TOOLBAR_TITLE || style == TOOLBAR_HEADER_SEGMENTED || style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE)
+       if (style == TOOLBAR_TITLE || style == TOOLBAR_HEADER_SEGMENTED)
+       {
+               if (__pToolbar->GetButton(RIGHT_BUTTON))
+               {
+                       if (__pToolbar->GetButton(LEFT_BUTTON))
+                       {
+                               DrawDividerLine(FloatPoint(bounds.width - __pToolbar->GetButton(RIGHT_BUTTON)->GetBoundsF().width - buttonItemGap,
+                                               (__pToolbar->GetBoundsF().height - dividerHeight) / 2), pCanvas);
+
+                               DrawDividerLine(FloatPoint(bounds.width - __pToolbar->GetButton(RIGHT_BUTTON)->GetBoundsF().width - buttonItemGap
+                                               - __pToolbar->GetButton(LEFT_BUTTON)->GetBoundsF().width - buttonItemGap,
+                                               (__pToolbar->GetBoundsF().height - dividerHeight) / 2), pCanvas);
+                       }
+                       else
+                       {
+                               DrawDividerLine(FloatPoint(bounds.width - __pToolbar->GetButton(RIGHT_BUTTON)->GetBoundsF().width - buttonItemGap,
+                                               (__pToolbar->GetBoundsF().height - dividerHeight) / 2), pCanvas);
+                       }
+               }
+               else
+               {
+                       if (__pToolbar->GetButton(LEFT_BUTTON))
+                       {
+                               DrawDividerLine(FloatPoint(bounds.width - __pToolbar->GetButton(LEFT_BUTTON)->GetBoundsF().width - buttonItemGap,
+                                               (__pToolbar->GetBoundsF().height - dividerHeight) / 2), pCanvas);
+                       }
+               }
+       }
+       else if (style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE)
        {
                if (__pToolbar->GetButton(RIGHT_BUTTON))
                {
@@ -401,13 +429,13 @@ _ToolbarPresenter::DrawDivider(void)
                if (__pToolbar->GetButton(RIGHT_BUTTON))
                {
                        DrawDividerLine(FloatPoint(bounds.width - __pToolbar->GetButton(RIGHT_BUTTON)->GetBoundsF().width - buttonItemGap,
-                                       dividerTopMargin + (dividerBaseHeight - dividerHeight) / 2), pCanvas);
+                                       (__pToolbar->GetBoundsF().height - dividerHeight) / 2), pCanvas);
                }
 
                if (__pToolbar->GetButton(LEFT_BUTTON))
                {
                        DrawDividerLine(FloatPoint(__pToolbar->GetButton(LEFT_BUTTON)->GetBoundsF().width,
-                                       dividerTopMargin + (dividerBaseHeight - dividerHeight) / 2), pCanvas);
+                                       (__pToolbar->GetBoundsF().height - dividerHeight) / 2), pCanvas);
                }
        }
 
@@ -2049,8 +2077,10 @@ _ToolbarPresenter::DrawTitleTextDimBitmap(void)
 
        float textDimWidth = 0.0f;
        float textDimHeight = 0.0f;
+       float leftMargin = 0.0f;
 
        GET_SHAPE_CONFIG(HEADER::TAB_TEXT_DIM_WIDTH, __pToolbar->GetOrientation(), textDimWidth);
+       GET_SHAPE_CONFIG(HEADER::LEFT_MARGIN, __pToolbar->GetOrientation(), leftMargin);
 
        ToolbarStyle style = __pToolbar->GetStyle();
 
@@ -2062,7 +2092,7 @@ _ToolbarPresenter::DrawTitleTextDimBitmap(void)
        {
                if (__pToolbar->GetDescriptionText() != L"")
                {
-                       textDimHeight = __titleRect.height;
+                       textDimHeight = __titleRect.height + __titleRect.y;
                }
                else
                {
@@ -2070,20 +2100,25 @@ _ToolbarPresenter::DrawTitleTextDimBitmap(void)
                }
        }
 
-       Color titleTextDimColor;
-       GET_COLOR_CONFIG(HEADER::TITLE_TEXT_DIM_NORMAL, titleTextDimColor);
+       //Color titleTextDimColor;
+       //GET_COLOR_CONFIG(HEADER::TITLE_TEXT_DIM_NORMAL, titleTextDimColor);
 
        Bitmap* pTitleTextDimLeftBitmap = null;
        GET_BITMAP_CONFIG_N(HEADER::TITLE_TEXT_DIM_EFFECT_LEFT, BITMAP_PIXEL_FORMAT_ARGB8888, pTitleTextDimLeftBitmap);
 
        Bitmap* pReColorTitleTextDimLeftBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTitleTextDimLeftBitmap,
-                       Color::GetColor(COLOR_ID_MAGENTA), titleTextDimColor);
+                       Color::GetColor(COLOR_ID_MAGENTA), __pToolbar->GetColor());
 
        if (pReColorTitleTextDimLeftBitmap)
        {
                Canvas* pCanvas = __pToolbar->GetCanvasN();
                FloatRectangle bounds = FloatRectangle(0.0f, 0.0f, textDimWidth, textDimHeight);
 
+               if (__pToolbar->GetTitleIcon() != null)
+               {
+                       bounds.x += __titleRect.x;
+               }
+
                if (pCanvas == null)
                {
                        SysLog(NID_UI_CTRL, "Cannot get a canvas.");
@@ -2109,13 +2144,18 @@ _ToolbarPresenter::DrawTitleTextDimBitmap(void)
        GET_BITMAP_CONFIG_N(HEADER::TITLE_TEXT_DIM_EFFECT_RIGHT, BITMAP_PIXEL_FORMAT_ARGB8888, pTitleTextDimRightBitmap);
 
        Bitmap* pReColorTitleTextDimRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTitleTextDimRightBitmap,
-                       Color::GetColor(COLOR_ID_MAGENTA), titleTextDimColor);
+                       Color::GetColor(COLOR_ID_MAGENTA), __pToolbar->GetColor());
 
        if (pReColorTitleTextDimRightBitmap)
        {
                Canvas* pCanvas = __pToolbar->GetCanvasN();
                FloatRectangle bounds = FloatRectangle(__titleRect.width, 0.0f, textDimWidth, textDimHeight);
 
+               if (__pToolbar->GetTitleIcon() != null)
+               {
+                       bounds.x += (__titleRect.x - leftMargin);
+               }
+
                if (pCanvas == null)
                {
                        SysLog(NID_UI_CTRL, "Cannot get a canvas.");
index a214134..48de954 100644 (file)
@@ -142,6 +142,8 @@ private:
        float __onOffHandlerPosition;
        bool __onOffHandlerPressed;
        bool __onOffHandlerMoved;
+       int __highlightedIndex;
+       bool __detailedPressed;
 }; // _CheckButtonPresenter
 
 }}} // Tizen::Ui::Controls
index 79660a1..8c0900a 100644 (file)
@@ -139,7 +139,7 @@ START_UI_CONFIG(HEADER);
        ADD_COLOR_CONFIG(TAB_TEXT_DIM_NORMAL, $B0514);
        ADD_COLOR_CONFIG(TAB_TEXT_DIM_TRANSLUCENT_NORMAL, $B013);
 
-       ADD_COLOR_CONFIG(TITLE_TEXT_DIM_NORMAL, $B0511);
+       //ADD_COLOR_CONFIG(TITLE_TEXT_DIM_NORMAL, $B0511);
        ADD_COLOR_CONFIG(TITLE_TEXT_DIM_TRANSLUCENT_NORMAL, $B013);
 
        ADD_COLOR_CONFIG(SUB_TITLE_EFFECT_NORMAL, $B0511);