#include "FUiAnim_VisualElement.h"
#include "FUiCtrl_CheckButtonPresenter.h"
#include "FUiCtrl_CheckButtonModel.h"
-#include "FUiCtrl_CheckButton.h"
using namespace Tizen::Base;
using namespace Tizen::Graphics;
, __onOffHandlerPosition(0.0f)
, __onOffHandlerPressed(false)
, __onOffHandlerMoved(false)
+ , __focusPrevStatus(_CHECK_BUTTON_STATUS_NORMAL)
{
}
return;
}
+ Bitmap* pBackgroundBitmap = null;
Bitmap* pReplacementColorBackgroundBitmap = null;
- Bitmap* pBackgroundBitmap = __pCheckButton->GetBackgroundBitmap(__pCheckButton->GetGroupStyle(), __pCheckButton->GetCheckButtonStatus());
-
+ Bitmap* pHighlightedBackgroundBitmap = null;
+ Bitmap* pHighlightedReplacementColorBackgroundBitmap = null;
FloatDimension minDimension(0.0f, 0.0f);
FloatDimension minDimensionWithAnnex(0.0f, 0.0f);
}
else
{
+ pBackgroundBitmap = __pCheckButton->GetBackgroundBitmap(__pCheckButton->GetGroupStyle(), _CHECK_BUTTON_STATUS_NORMAL);
+
if (pBackgroundBitmap && _BitmapImpl::CheckNinePatchedBitmapStrictly(*pBackgroundBitmap))
{
pReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pBackgroundBitmap, Color::GetColor(COLOR_ID_MAGENTA),
}
else
{
+ pBackgroundBitmap = __pCheckButton->GetBackgroundBitmap(__pCheckButton->GetGroupStyle(), _CHECK_BUTTON_STATUS_DISABLED);
+
if (pBackgroundBitmap && _BitmapImpl::CheckNinePatchedBitmapStrictly(*pBackgroundBitmap))
{
pReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pBackgroundBitmap, Color::GetColor(COLOR_ID_MAGENTA),
}
else
{
+ pBackgroundBitmap = __pCheckButton->GetBackgroundBitmap(__pCheckButton->GetGroupStyle(), _CHECK_BUTTON_STATUS_PRESSED);
+
if (pBackgroundBitmap && _BitmapImpl::CheckNinePatchedBitmapStrictly(*pBackgroundBitmap))
{
pReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pBackgroundBitmap, Color::GetColor(COLOR_ID_MAGENTA),
}
else
{
+ pBackgroundBitmap = __pCheckButton->GetBackgroundBitmap(__pCheckButton->GetGroupStyle(), _CHECK_BUTTON_STATUS_NORMAL);
+
if (pBackgroundBitmap && _BitmapImpl::CheckNinePatchedBitmapStrictly(*pBackgroundBitmap))
{
pReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pBackgroundBitmap, Color::GetColor(COLOR_ID_MAGENTA),
- __pCheckButton->GetColor(_CHECK_BUTTON_STATUS_HIGHLIGHTED));
+ __pCheckButton->GetColor(_CHECK_BUTTON_STATUS_NORMAL));
if (pReplacementColorBackgroundBitmap)
{
pCanvas->DrawNinePatchedBitmap(bounds, *pReplacementColorBackgroundBitmap);
pCanvas->DrawBitmap(FloatRectangle(0.0f, 0.0f, bounds.width, bounds.height), *pBackgroundBitmap);
}
}
+
+ pHighlightedBackgroundBitmap = __pCheckButton->GetBackgroundBitmap(__pCheckButton->GetGroupStyle(), _CHECK_BUTTON_STATUS_HIGHLIGHTED);
+
+ pHighlightedReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pHighlightedBackgroundBitmap,
+ Color::GetColor(COLOR_ID_MAGENTA), __pCheckButton->GetColor(_CHECK_BUTTON_STATUS_HIGHLIGHTED));
+
+ if (pHighlightedReplacementColorBackgroundBitmap)
+ {
+ if (_BitmapImpl::CheckNinePatchedBitmapStrictly(*pHighlightedReplacementColorBackgroundBitmap))
+ {
+ pCanvas->DrawNinePatchedBitmap(bounds, *pHighlightedReplacementColorBackgroundBitmap);
+ }
+ else
+ {
+ pCanvas->DrawBitmap(bounds, *pHighlightedReplacementColorBackgroundBitmap,
+ FloatRectangle(0.0f, 0.0f, pHighlightedReplacementColorBackgroundBitmap->GetWidthF(), pHighlightedReplacementColorBackgroundBitmap->GetHeightF()));
+ }
+ }
}
}
else
}
else
{
+ pBackgroundBitmap = __pCheckButton->GetBackgroundBitmap(__pCheckButton->GetGroupStyle(), __pCheckButton->GetCheckButtonStatus());
+
if (pBackgroundBitmap && _BitmapImpl::CheckNinePatchedBitmapStrictly(*pBackgroundBitmap))
{
pReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pBackgroundBitmap, Color::GetColor(COLOR_ID_MAGENTA),
}
else if (checkStatus == _CHECK_BUTTON_STATUS_HIGHLIGHTED)
{
+ Bitmap* pMarkBgNormalBitmap = __pCheckButton->GetMarkBgBitmap(_CHECK_BUTTON_STATUS_NORMAL);
Bitmap* pMarkBgHighlightedBitmap = __pCheckButton->GetMarkBgBitmap(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
+ if (pMarkBgNormalBitmap)
+ {
+ pCanvas->DrawBitmap(FloatPoint(__defaultButtonBounds.x, __defaultButtonBounds.y), *pMarkBgNormalBitmap);
+ }
+
if (pMarkBgHighlightedBitmap)
{
- pCanvas->DrawBitmap(FloatPoint(__defaultButtonBounds.x, __defaultButtonBounds.y), *pMarkBgHighlightedBitmap);
+ pReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pMarkBgHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedHighlightedBackgroundColor);
+ }
+
+ if (pReplacementColorBackgroundBitmap)
+ {
+ pCanvas->DrawBitmap(FloatPoint(__defaultButtonBounds.x, __defaultButtonBounds.y), *pReplacementColorBackgroundBitmap);
}
if (checkStyle == CHECK_BUTTON_STYLE_MARK_WITH_DETAILED_BUTTON)
{
+ Bitmap* pCircleNormalBitmap = __pCheckButton->GetCircleBitmap(_CHECK_BUTTON_STATUS_NORMAL);
Bitmap* pCircleHighlightedBitmap = __pCheckButton->GetCircleBitmap(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
Bitmap* pDetailedRightHighlightedBitmap = __pCheckButton->GetDetailedRightBitmap(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
- if (pCircleHighlightedBitmap)
+ if (pCircleNormalBitmap)
{
- pReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedHighlightedBackgroundColor);
+ pReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedNormalBackgroundColor);
}
if (pDetailedRightHighlightedBitmap)
pCanvas->DrawBitmap(FloatPoint(__detailedButtonBounds.x, __detailedButtonBounds.y), *pCirclePressedEffectBitmap);
}
}
+
+ if (pCircleHighlightedBitmap)
+ {
+ pReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedHighlightedBackgroundColor);
+ }
+
+ if (pReplacementColorBackgroundBitmap)
+ {
+ pCanvas->DrawBitmap(FloatPoint(__detailedButtonBounds.x, __detailedButtonBounds.y), *pReplacementColorBackgroundBitmap);
+ }
}
}
else if (checkStatus == _CHECK_BUTTON_STATUS_SELECTED)
{
if (checkStyle == CHECK_BUTTON_STYLE_RADIO_WITH_DETAILED_BUTTON)
{
+ Bitmap* pCircleNormalBitmap = __pCheckButton->GetCircleBitmap(_CHECK_BUTTON_STATUS_NORMAL);
Bitmap* pCircleHighlightedBitmap = __pCheckButton->GetCircleBitmap(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
Bitmap* pDetailedRightHighlightedBitmap = __pCheckButton->GetDetailedRightBitmap(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
- if (pCircleHighlightedBitmap)
+ if (pCircleNormalBitmap)
{
- pReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedHighlightedBackgroundColor);
+ pReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedNormalBackgroundColor);
}
if (pDetailedRightHighlightedBitmap)
pCanvas->DrawBitmap(FloatPoint(__detailedButtonBounds.x, __detailedButtonBounds.y), *pCirclePressedEffectBitmap);
}
}
+
+ if (pCircleHighlightedBitmap)
+ {
+ pReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pCircleHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedHighlightedBackgroundColor);
+ }
+
+ if (pReplacementColorBackgroundBitmap)
+ {
+ pCanvas->DrawBitmap(FloatPoint(__detailedButtonBounds.x, __detailedButtonBounds.y), *pReplacementColorBackgroundBitmap);
+ }
}
}
else if (checkStatus == _CHECK_BUTTON_STATUS_SELECTED)
}
else if (checkStatus == _CHECK_BUTTON_STATUS_HIGHLIGHTED)
{
+ Bitmap* pOnOffBgNormalBitmap = __pCheckButton->GetOnOffBgBitmap(_CHECK_BUTTON_STATUS_NORMAL);
Bitmap* pOnOffBgHighlightedBitmap = __pCheckButton->GetOnOffBgBitmap(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
- if (pOnOffBgHighlightedBitmap)
+ if (pOnOffBgNormalBitmap)
{
- pCanvas->DrawBitmap(FloatPoint(__defaultButtonBounds.x, __defaultButtonBounds.y), *pOnOffBgHighlightedBitmap);
+ pCanvas->DrawBitmap(FloatPoint(__defaultButtonBounds.x, __defaultButtonBounds.y), *pOnOffBgNormalBitmap);
}
Bitmap* pOnOffHighlightedBitmap = __pCheckButton->GetOnOffBitmap(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
{
pCanvas->DrawBitmap(FloatPoint(__defaultButtonBounds.x, __defaultButtonBounds.y), *pOnOffHighlightedBitmap);
}
+
+ if (pOnOffBgHighlightedBitmap)
+ {
+ pReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pOnOffBgHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), detailedHighlightedBackgroundColor);
+ }
+
+ if (pReplacementColorBackgroundBitmap)
+ {
+ pCanvas->DrawBitmap(FloatPoint(__defaultButtonBounds.x, __defaultButtonBounds.y), *pReplacementColorBackgroundBitmap);
+ }
}
else if (checkStatus == _CHECK_BUTTON_STATUS_SELECTED)
{
return;
}
+ Bitmap* pReplacementColorBackgroundBitmap = null;
+
+ Color detailedHighlightedBackgroundColor;
+ GET_COLOR_CONFIG(CHECKBUTTON::DETAILED_ICON_BG_HIGHLIGHTED, detailedHighlightedBackgroundColor);
+
float handlerMargin = 0.0f;
float handlerWidth = 0.0f;
pCanvas->DrawBitmap(FloatPoint(__onOffSlidingButtonBounds.x, __onOffSlidingButtonBounds.y), *pOnOffSlidingOffHighlightedBitmap);
}
+ Bitmap* pOnOffSlidingHandlerNormalBitmap = __pCheckButton->GetOnOffSlidingHandlerBitmap(_CHECK_BUTTON_STATUS_NORMAL);
+
+ if (pOnOffSlidingHandlerNormalBitmap)
+ {
+ pCanvas->DrawBitmap(FloatPoint(handlerPosition, __onOffSlidingButtonBounds.y - handlerMargin), *pOnOffSlidingHandlerNormalBitmap);
+ }
+
Bitmap* pOnOffSlidingHandlerHighlightedBitmap = __pCheckButton->GetOnOffSlidingHandlerBitmap(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
if (pOnOffSlidingHandlerHighlightedBitmap)
{
- pCanvas->DrawBitmap(FloatPoint(handlerPosition, __onOffSlidingButtonBounds.y - handlerMargin), *pOnOffSlidingHandlerHighlightedBitmap);
+ pReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pOnOffSlidingHandlerHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA),
+ detailedHighlightedBackgroundColor);
+ }
+
+ if (pReplacementColorBackgroundBitmap)
+ {
+ pCanvas->DrawBitmap(FloatPoint(handlerPosition, __onOffSlidingButtonBounds.y - handlerMargin), *pReplacementColorBackgroundBitmap);
}
}
else if (checkStatus == _CHECK_BUTTON_STATUS_SELECTED)
pCanvas->DrawBitmap(FloatPoint(__onOffSlidingButtonBounds.x, __onOffSlidingButtonBounds.y), *pOnOffSlidingOnHighlightedBitmap);
}
+ Bitmap* pOnOffSlidingHandlerNormalBitmap = __pCheckButton->GetOnOffSlidingHandlerBitmap(_CHECK_BUTTON_STATUS_NORMAL);
+
+ if (pOnOffSlidingHandlerNormalBitmap)
+ {
+ pCanvas->DrawBitmap(FloatPoint(handlerPosition, __onOffSlidingButtonBounds.y - handlerMargin), *pOnOffSlidingHandlerNormalBitmap);
+ }
+
Bitmap* pOnOffSlidingHandlerHighlightedBitmap = __pCheckButton->GetOnOffSlidingHandlerBitmap(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
if (pOnOffSlidingHandlerHighlightedBitmap)
{
- pCanvas->DrawBitmap(FloatPoint(handlerPosition, __onOffSlidingButtonBounds.y - handlerMargin), *pOnOffSlidingHandlerHighlightedBitmap);
+ pReplacementColorBackgroundBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pOnOffSlidingHandlerHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA),
+ detailedHighlightedBackgroundColor);
+ }
+
+ if (pReplacementColorBackgroundBitmap)
+ {
+ pCanvas->DrawBitmap(FloatPoint(handlerPosition, __onOffSlidingButtonBounds.y - handlerMargin), *pReplacementColorBackgroundBitmap);
}
}
else if (checkStatus == _CHECK_BUTTON_STATUS_SELECTED)
}
delete pCanvas;
+ delete pReplacementColorBackgroundBitmap;
return;
}
}
bool
+_CheckButtonPresenter::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
+{
+ return false;
+}
+
+bool
+_CheckButtonPresenter::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
+{
+ _KeyCode keyCode = keyInfo.GetKeyCode();
+
+ if (keyCode == _KEY_ENTER)
+ {
+ CheckButtonStyle checkStyle = __pCheckButton->GetCheckButtonStyle();
+
+ 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)
+ {
+ StartCheckAnimationTimer();
+ __ratio = 0;
+ }
+
+ __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
+ __pCheckButton->Invalidate();
+
+ PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP);
+
+ __pCheckButton->FireActionEvent();
+
+ if (__pCheckButton->GetRadioGroup() != null)
+ {
+ __pCheckButton->SendTouchReleasedEvent(*__pCheckButton);
+ }
+
+ if (checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING_WITH_DIVIDER || checkStyle == CHECK_BUTTON_STYLE_ONOFF_SLIDING)
+ {
+ AdjustHandlerPosition();
+
+ __onOffHandlerPressed = false;
+ __onOffHandlerMoved = false;
+ }
+ }
+
+ return false;
+}
+
+bool
_CheckButtonPresenter::IsEnabledStateChanged(void)
{
bool __currentEnabledState = __pCheckButton->GetEnableState();
}
void
+_CheckButtonPresenter::OnDrawFocus(void)
+{
+ return;
+}
+
+void
+_CheckButtonPresenter::OnChildControlFocusMoved(const _Control& control)
+{
+ return;
+}
+
+bool
+_CheckButtonPresenter::IsChildControlFocusManage(void) const
+{
+ return true;
+}
+
+void
+_CheckButtonPresenter::OnFocusableStateChanged(bool focusalbeState)
+{
+ return;
+}
+
+void
+_CheckButtonPresenter::OnFocusModeStateChanged(void)
+{
+ __pCheckButton->SetCheckButtonStatus(__focusPrevStatus);
+ __pCheckButton->Invalidate();
+
+ return;
+}
+
+bool
+_CheckButtonPresenter::OnFocusGained(const _Control& source)
+{
+ __focusPrevStatus = __pCheckButton->GetCheckButtonStatus();
+ __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
+ __pCheckButton->Invalidate();
+
+ return true;
+}
+
+bool
+_CheckButtonPresenter::OnFocusLost(const _Control& source)
+{
+ __pCheckButton->SetCheckButtonStatus(__focusPrevStatus);
+ __pCheckButton->Invalidate();
+
+ return true;
+}
+void
_CheckButtonPresenter::DrawMarkAnimation(void)
{
Canvas* pCanvas = __pCheckButton->GetCanvasN();
, __style(TOOLBAR_TITLE)
, __transparent(false)
, __isUserBackgroundBitmap(false)
+ , __highlightedItemIndex(0)
, __titleTextArea(FloatRectangle(0.0f, 0.0f, 0.0f, 0.0f))
, __itemArea(FloatRectangle(0.0f, 0.0f, 0.0f, 0.0f))
, __pTitleTextElement(null)
result r = E_SUCCESS;
+ if (__highlightedItemIndex < __itemCount)
+ {
+ if (itemIndex != -1 && __pItems.at(__highlightedItemIndex) != null)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Draw();
+ }
+ }
+
int currentSelectedItemIndex = 0;
currentSelectedItemIndex = GetSelectedItemIndex();
}
__pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, fire);
__pItems.at(itemIndex)->Draw();
+
+ __highlightedItemIndex = itemIndex;
+
_AccessibilityElement* pElement = __pItems.at(currentSelectedItemIndex)->GetAccessibilityContainer()->GetChildElement(0);
if (pElement)
{
PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP);
}
__pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, fire);
+
+ __highlightedItemIndex = itemIndex;
+
_AccessibilityElement* pElement = __pItems.at(itemIndex)->GetAccessibilityContainer()->GetChildElement(0);
if (pElement)
{
__descriptionText = L"";
+ __highlightedItemIndex = 0;
+
if (__style == TOOLBAR_TITLE || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE)
{
if(__pTitleTextElement)
pButtonElement = pButtonContainer->GetChildElement(L"ButtonText");
}
- if(pButtonElement)
+ if(pButtonElement)
+ {
+ pButtonElement->SetName(name);
+
+ if (position == BACK_BUTTON)
+ {
+ pButtonElement->SetLabel("Back");
+ pButtonElement->SetTrait("Button");
+ }
+ else
+ {
+ pButtonElement->SetTrait(L"Button");
+ }
+ FloatRectangle floatRect = GetButtonBoundsF(position);
+ pButtonElement->SetBounds(FloatRectangle(0,floatRect.y, pButton->GetBoundsF().width, floatRect.height));
+ }
+}
+
+void
+_Toolbar::AddAccessibilityElement(_Button* pButton)
+{
+ _AccessibilityContainer* pContainer = GetAccessibilityContainer();
+ if(pContainer == null)
+ {
+ return;
+ }
+
+ int priorty = 0;
+ if(__header == true)
+ {
+ priorty = ACCESSIBILITY_PRIORITY_TOP;
+ }
+ else
+ {
+ priorty = ACCESSIBILITY_PRIORITY_BOTTOM;
+ }
+ pContainer->SetPriority(priorty);
+
+ ToolbarStyle style = GetStyle();
+ String trait = L"";
+ String name = L"";
+ switch (style)
+ {
+ case TOOLBAR_HEADER_SEGMENTED:
+ //fall through
+ case TOOLBAR_HEADER_SEGMENTED_WITH_TITLE:
+ //fall through
+ case TOOLBAR_SEGMENTED:
+ name = L"Segment" + Integer::ToString(__itemCount);
+ name.Append(L"Text");
+ trait = L"Segmented control";
+ break;
+ case TOOLBAR_TAB_WITH_TITLE:
+ //fall through
+ case TOOLBAR_TAB:
+ name = L"Tab" + Integer::ToString(__itemCount);
+ name.Append(L"Text");
+ trait = L"Tab";
+ break;
+ default:
+ name = L"Button" + Integer::ToString(__itemCount);
+ name.Append(L"Text");
+ trait = L"Button";
+ break;
+ }
+
+ if (pButton != null)
+ {
+ _AccessibilityElement* pElement = null;
+ _AccessibilityContainer* pButtonContainer = pButton->GetAccessibilityContainer();
+
+ if (pButtonContainer)
+ {
+ pButtonContainer->SetPriority(priorty);
+ pContainer->AddChildContainer(*pButtonContainer);
+ pElement = pButtonContainer->GetChildElement(L"ButtonText");
+ }
+
+ if(pElement)
+ {
+ pElement->SetName(name);
+ pElement->SetTrait(trait);
+ if(style == TOOLBAR_HEADER_SEGMENTED || style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE
+ || style == TOOLBAR_SEGMENTED || style == TOOLBAR_TAB_WITH_TITLE
+ || style == TOOLBAR_TAB)
+ {
+ pElement->SetHint(L"Double tap to move to contents");
+ pButton->GetAccessibilityContainer()->AddListener(*__pAccessibilityListener);
+ }
+ }
+ }
+
+ return;
+}
+
+void
+_Toolbar::OnBoundsChanged(void)
+{
+ RearrangeItems();
+
+ if(__pTitleTextElement)
+ {
+ if( __descriptionText.IsEmpty())
+ {
+ __pTitleTextElement->SetBounds(FloatRectangle(__pToolbarPresenter->GetTitleTextBoundsF()));
+ }
+ else
+ {
+ FloatRectangle descriptionBounds = __pToolbarPresenter->GetDescriptionBoundsF();
+ FloatRectangle titleBounds = __pToolbarPresenter->GetTitleTextBoundsF();
+
+ __pTitleTextElement->SetBounds(FloatRectangle(titleBounds.x, titleBounds.y, titleBounds.width, titleBounds.height + descriptionBounds.height));
+ }
+ }
+ return;
+}
+
+void
+_Toolbar::OnFontChanged(Font* pFont)
+{
+ __pToolbarPresenter->OnFontChanged(pFont);
+
+ return;
+}
+
+void
+_Toolbar::OnFontInfoRequested(unsigned long& style, int& size)
+{
+ __pToolbarPresenter->OnFontInfoRequested(style, size);
+
+ return;
+}
+
+void
+_Toolbar::OnAncestorVisibleStateChanged(const _Control& control)
+{
+ __pToolbarPresenter->OnAncestorVisibleStateChanged(control);
+
+ _Control::OnAncestorVisibleStateChanged(control);
+ return;
+}
+
+void
+_Toolbar::OnDrawFocus(void)
+{
+ __pToolbarPresenter->OnDrawFocus();
+
+ return;
+}
+
+void
+_Toolbar::OnChildControlFocusMoved(const _Control& control)
+{
+ __pToolbarPresenter->OnChildControlFocusMoved(control);
+
+ return;
+}
+
+bool
+_Toolbar::IsChildControlFocusManage(void) const
+{
+ __pToolbarPresenter->IsChildControlFocusManage();
+
+ return true;
+}
+
+void
+_Toolbar::OnFocusableStateChanged(bool focusalbeState)
+{
+ __pToolbarPresenter->OnFocusableStateChanged(focusalbeState);
+
+ return;
+}
+
+void
+_Toolbar::OnFocusModeStateChanged(void)
+{
+ if (__itemCount == 0)
+ {
+ if (__pButtonItems[LEFT_BUTTON])
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[LEFT_BUTTON])
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount + 1 && __pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount + 1 && __pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ else
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[LEFT_BUTTON])
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ else
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount && __pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ }
+ else // __itemCount != 0
+ {
+ if (__highlightedItemIndex < __itemCount)
+ {
+ if(__pItems.at(__highlightedItemIndex))
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ }
+ else
+ {
+ if (__pButtonItems[LEFT_BUTTON])
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[LEFT_BUTTON])
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount + 1 && __pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount + 1 && __pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ else
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[LEFT_BUTTON])
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ else
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount && __pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ }
+
+ int selectedItemIndex = GetSelectedItemIndex();
+
+ if(selectedItemIndex != -1 && __pItems.at(selectedItemIndex))
+ {
+ __pItems.at(selectedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(selectedItemIndex)->Invalidate();
+ }
+ }
+
+ return;
+}
+
+bool
+_Toolbar::OnFocusGained(const _Control& source)
+{
+ if (__itemCount == 0)
+ {
+ if (__pButtonItems[LEFT_BUTTON])
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[LEFT_BUTTON])
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount + 1 && __pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount + 1 && __pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ else
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[LEFT_BUTTON])
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ else
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount && __pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ }
+ else
+ {
+ if (__highlightedItemIndex < __itemCount)
+ {
+ if(__pItems.at(__highlightedItemIndex))
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ }
+ else
+ {
+ if (__pButtonItems[LEFT_BUTTON])
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[LEFT_BUTTON])
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount + 1 && __pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount + 1 && __pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ else
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[LEFT_BUTTON])
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ else
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount && __pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ }
+ }
+
+ return true;
+}
+
+bool
+_Toolbar::OnFocusLost(const _Control& source)
+{
+ if (__itemCount == 0)
+ {
+ if (__pButtonItems[LEFT_BUTTON])
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[LEFT_BUTTON])
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount + 1 && __pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount + 1 && __pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ else
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[LEFT_BUTTON])
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ else
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount && __pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ }
+ else // __itemCount != 0
+ {
+ if (__highlightedItemIndex < __itemCount)
+ {
+ if(__pItems.at(__highlightedItemIndex))
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ }
+ else
+ {
+ if (__pButtonItems[LEFT_BUTTON])
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[LEFT_BUTTON])
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount + 1 && __pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount + 1 && __pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ else
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[LEFT_BUTTON])
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ else
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+ {
+ if (__highlightedItemIndex == __itemCount && __pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount && __pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ }
+
+ int selectedItemIndex = GetSelectedItemIndex();
+
+ if(selectedItemIndex != -1 && __pItems.at(selectedItemIndex))
+ {
+ __pItems.at(selectedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(selectedItemIndex)->Invalidate();
+ }
+ }
+
+ return true;
+}
+
+bool
+_Toolbar::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
+{
+ _KeyCode keyCode = keyInfo.GetKeyCode();
+
+ int selectedItemIndex = GetSelectedItemIndex();
+
+ if (keyCode == _KEY_RIGHT)
+ {
+ if (__header == true && __style != TOOLBAR_TEXT) // right align
+ {
+ if (__itemCount != 0)
+ {
+ if (__highlightedItemIndex < (__itemCount - 1))
+ {
+ if (__pItems.at(__highlightedItemIndex) != null)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+
+ __highlightedItemIndex++;
+
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+
+ if (__highlightedItemIndex - __pToolbarPresenter->GetFirstLoadedItemIndex() == SEGMENTED_ITEM_MAX)
+ {
+ __pToolbarPresenter->SetItemFit(__highlightedItemIndex - (SEGMENTED_ITEM_MAX - 1));
+ }
+ }
+ }
+ else
+ {
+ if (__pButtonItems[LEFT_BUTTON] || __pButtonItems[RIGHT_BUTTON])
+ {
+ if (__highlightedItemIndex < __itemCount)
+ {
+ if (__pItems.at(__highlightedItemIndex) != null)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ if (__highlightedItemIndex < __itemCount)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ if (__highlightedItemIndex < __itemCount - 1)
+ {
+ if (__pItems.at(__highlightedItemIndex) != null)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ if (__highlightedItemIndex < __itemCount)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ }
+
+ if (__highlightedItemIndex - __pToolbarPresenter->GetFirstLoadedItemIndex() == SEGMENTED_ITEM_MAX)
+ {
+ __pToolbarPresenter->SetItemFit(__highlightedItemIndex - (SEGMENTED_ITEM_MAX - 1));
+ }
+ }
+ }
+ }
+
+ if (__pButtonItems[LEFT_BUTTON])
+ {
+ if (__pButtonItems[RIGHT_BUTTON])
+ {
+ if (__highlightedItemIndex == __itemCount - 1)
+ {
+ __highlightedItemIndex++;
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount)
+ {
+ __highlightedItemIndex++;
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ else
+ {
+ if (__highlightedItemIndex == __itemCount - 1)
+ {
+ __highlightedItemIndex++;
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ else
+ {
+ if (__pButtonItems[RIGHT_BUTTON])
+ {
+ if (__highlightedItemIndex == __itemCount - 1)
+ {
+ __highlightedItemIndex++;
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ }
+ }
+ else // itemCount == 0
+ {
+ if (__pButtonItems[LEFT_BUTTON])
+ {
+ if (__pButtonItems[RIGHT_BUTTON])
+ {
+ if (__highlightedItemIndex == 0)
+ {
+ __highlightedItemIndex++;
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ }
+ }
+ else // footer // right key
+ {
+ if (__itemCount != 0)
+ {
+ if (__pButtonItems[LEFT_BUTTON])
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON]) // L Item R
+ {
+ if (__highlightedItemIndex == __itemCount)
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+
+ __highlightedItemIndex = 0;
+
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else if (__highlightedItemIndex < __itemCount - 1)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+
+ __highlightedItemIndex++;
+
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount -1)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+
+ __highlightedItemIndex = __itemCount + 1;
+
+ if (__pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ else // L Item
+ {
+ if (__highlightedItemIndex == __itemCount)
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+
+ __highlightedItemIndex = 0;
+
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else if (__highlightedItemIndex < __itemCount - 1)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+
+ __highlightedItemIndex++;
+
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ }
+ }
+ else // __pButtonItems[LEFT_BUTTON] is null
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON]) // Item R
+ {
+ if (__highlightedItemIndex < __itemCount - 1)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+
+ __highlightedItemIndex++;
+
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount -1)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+
+ __highlightedItemIndex++;
+
+ if (__pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ else // Item
+ {
+ if (__highlightedItemIndex < __itemCount - 1)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+
+ __highlightedItemIndex++;
+
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+
+ if (__highlightedItemIndex - __pToolbarPresenter->GetFirstLoadedItemIndex() == SEGMENTED_ITEM_MAX)
+ {
+ __pToolbarPresenter->SetItemFit(__highlightedItemIndex - (SEGMENTED_ITEM_MAX - 1));
+ }
+ }
+ }
+ }
+ }
+ else // __itemCount = 0
+ {
+ if (__pButtonItems[LEFT_BUTTON])
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+ {
+ if (__highlightedItemIndex == 0)
+ {
+ __highlightedItemIndex++;
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+
+ if (__pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (keyCode == _KEY_LEFT)
+ {
+ if (__header == true && __style != TOOLBAR_TEXT) // right align
+ {
+ if (__itemCount != 0)
+ {
+ if (__highlightedItemIndex == __itemCount + 1)
+ {
+ __highlightedItemIndex--;
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount)
+ {
+ __highlightedItemIndex--;
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else if (__highlightedItemIndex > 0)
+ {
+ if (__pItems.at(__highlightedItemIndex) != null)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+
+ __highlightedItemIndex--;
+
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+
+ if (__pToolbarPresenter->GetFirstLoadedItemIndex() > __highlightedItemIndex)
+ {
+ __pToolbarPresenter->SetItemFit(__highlightedItemIndex);
+ }
+ }
+ }
+ }
+ else // __itemCount == 0
+ {
+ if (__highlightedItemIndex == __itemCount + 1)
+ {
+ __highlightedItemIndex--;
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ else // footer << leftkey
+ {
+ if (__itemCount != 0)
+ {
+ if (__pButtonItems[LEFT_BUTTON])
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON]) // L Item R
+ {
+ if (__highlightedItemIndex == 0)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+
+ __highlightedItemIndex = __itemCount;
+
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex < __itemCount)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+
+ __highlightedItemIndex--;
+
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount + 1)
+ {
+ if (__pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+
+ __highlightedItemIndex = __itemCount - 1;
+
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ }
+ else // L Item
+ {
+ if (__highlightedItemIndex == 0)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+
+ __highlightedItemIndex = __itemCount;
+
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ else if (__highlightedItemIndex < __itemCount)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+
+ __highlightedItemIndex--;
+
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ }
+ }
+ else // __pButtonItems[LEFT_BUTTON] is null
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON]) // Item R
+ {
+ if (__highlightedItemIndex == 0)
+ {
+ // empty
+ }
+ else if (__highlightedItemIndex < __itemCount)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+
+ __highlightedItemIndex--;
+
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else if (__highlightedItemIndex == __itemCount)
+ {
+ if (__pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+
+ __highlightedItemIndex--;
+
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ }
+ else // Item
+ {
+ if (__highlightedItemIndex == 0)
+ {
+ // empty
+ }
+ else if (__highlightedItemIndex < __itemCount)
+ {
+ if (__highlightedItemIndex == selectedItemIndex)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+ }
+
+ __highlightedItemIndex--;
+
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
+
+ if (__pToolbarPresenter->GetFirstLoadedItemIndex() > __highlightedItemIndex)
+ {
+ __pToolbarPresenter->SetItemFit(__highlightedItemIndex);
+ }
+ }
+ }
+ }
+ }
+ else // __itemCount == 0
+ {
+ if (__pButtonItems[LEFT_BUTTON])
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON])
+ {
+ if (__highlightedItemIndex == __itemCount)
+ {
+ if (__pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[BACK_BUTTON]->Invalidate();
+ }
+ else if (__pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
+ }
+
+ __highlightedItemIndex--;
+
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (keyCode == _KEY_ENTER)
{
- pButtonElement->SetName(name);
-
- if (position == BACK_BUTTON)
- {
- pButtonElement->SetLabel("Back");
- pButtonElement->SetTrait("Button");
- }
- else
+ if (__itemCount != 0)
{
- pButtonElement->SetTrait(L"Button");
- }
- FloatRectangle floatRect = GetButtonBoundsF(position);
- pButtonElement->SetBounds(FloatRectangle(0,floatRect.y, pButton->GetBoundsF().width, floatRect.height));
- }
-}
+ if (__pButtonItems[LEFT_BUTTON])
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON]) // L Item R
+ {
+ if (__highlightedItemIndex < __itemCount)
+ {
+ if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
+ || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE)
+ {
+ SetItemSelected(__highlightedItemIndex, true, false);
+ //__pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED);
-void
-_Toolbar::AddAccessibilityElement(_Button* pButton)
-{
- _AccessibilityContainer* pContainer = GetAccessibilityContainer();
- if(pContainer == null)
- {
- return;
- }
+ if (__pItems.empty() == false)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ }
+ else if (__highlightedItemIndex == __itemCount)
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_SELECTED);
- int priorty = 0;
- if(__header == true)
- {
- priorty = ACCESSIBILITY_PRIORITY_TOP;
- }
- else
- {
- priorty = ACCESSIBILITY_PRIORITY_BOTTOM;
- }
- pContainer->SetPriority(priorty);
+ if (__pButtonItems[LEFT_BUTTON] != null)
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ else if (__highlightedItemIndex == __itemCount + 1)
+ {
+ if (__pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_SELECTED);
- ToolbarStyle style = GetStyle();
- String trait = L"";
- String name = L"";
- switch (style)
- {
- case TOOLBAR_HEADER_SEGMENTED:
- //fall through
- case TOOLBAR_HEADER_SEGMENTED_WITH_TITLE:
- //fall through
- case TOOLBAR_SEGMENTED:
- name = L"Segment" + Integer::ToString(__itemCount);
- name.Append(L"Text");
- trait = L"Segmented control";
- break;
- case TOOLBAR_TAB_WITH_TITLE:
- //fall through
- case TOOLBAR_TAB:
- name = L"Tab" + Integer::ToString(__itemCount);
- name.Append(L"Text");
- trait = L"Tab";
- break;
- default:
- name = L"Button" + Integer::ToString(__itemCount);
- name.Append(L"Text");
- trait = L"Button";
- break;
- }
+ if (__pButtonItems[BACK_BUTTON] != null)
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ else if (__pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_SELECTED);
- if (pButton != null)
- {
- _AccessibilityElement* pElement = null;
- _AccessibilityContainer* pButtonContainer = pButton->GetAccessibilityContainer();
+ if (__pButtonItems[RIGHT_BUTTON] != null)
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ }
+ }
+ else // L Item
+ {
+ if (__highlightedItemIndex < __itemCount)
+ {
+ if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
+ || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE)
+ {
+ SetItemSelected(__highlightedItemIndex, true, false);
+ //__pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED);
- if (pButtonContainer)
- {
- pButtonContainer->SetPriority(priorty);
- pContainer->AddChildContainer(*pButtonContainer);
- pElement = pButtonContainer->GetChildElement(L"ButtonText");
- }
+ if (__pItems.empty() == false)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ }
+ else if (__highlightedItemIndex == __itemCount)
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_SELECTED);
- if(pElement)
- {
- pElement->SetName(name);
- pElement->SetTrait(trait);
- if(style == TOOLBAR_HEADER_SEGMENTED || style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE
- || style == TOOLBAR_SEGMENTED || style == TOOLBAR_TAB_WITH_TITLE
- || style == TOOLBAR_TAB)
- {
- pElement->SetHint(L"Double tap to move to contents");
- pButton->GetAccessibilityContainer()->AddListener(*__pAccessibilityListener);
+ if (__pButtonItems[LEFT_BUTTON] != null)
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ }
}
- }
- }
+ else // __pButtonItems[LEFT_BUTTON] is null
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON]) // Item R
+ {
+ if (__highlightedItemIndex < __itemCount)
+ {
+ if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
+ || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE)
+ {
+ SetItemSelected(__highlightedItemIndex, true, false);
+ //__pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED);
- return;
-}
+ if (__pItems.empty() == false)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ }
+ else if (__highlightedItemIndex == __itemCount)
+ {
+ if (__pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_SELECTED);
-void
-_Toolbar::OnBoundsChanged(void)
-{
- RearrangeItems();
+ if (__pButtonItems[BACK_BUTTON] != null)
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ else if (__pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_SELECTED);
- if(__pTitleTextElement)
- {
- if( __descriptionText.IsEmpty())
- {
- __pTitleTextElement->SetBounds(FloatRectangle(__pToolbarPresenter->GetTitleTextBoundsF()));
+ if (__pButtonItems[RIGHT_BUTTON] != null)
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ }
+ }
+ else // Item
+ {
+ if (__highlightedItemIndex < __itemCount)
+ {
+ if (__style == TOOLBAR_HEADER_SEGMENTED || __style ==TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_SEGMENTED
+ || __style == TOOLBAR_TAB || __style == TOOLBAR_TAB_WITH_TITLE)
+ {
+ SetItemSelected(__highlightedItemIndex, true, false);
+ //__pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ else
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED);
+
+ if (__pItems.empty() == false)
+ {
+ __pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ }
+ }
+ }
}
- else
+ else // __itemCount == 0
{
- FloatRectangle descriptionBounds = __pToolbarPresenter->GetDescriptionBoundsF();
- FloatRectangle titleBounds = __pToolbarPresenter->GetTitleTextBoundsF();
+ if (__pButtonItems[LEFT_BUTTON])
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON]) // L R
+ {
+ if (__highlightedItemIndex == 0)
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_SELECTED);
- __pTitleTextElement->SetBounds(FloatRectangle(titleBounds.x, titleBounds.y, titleBounds.width, titleBounds.height + descriptionBounds.height));
- }
- }
- return;
-}
+ if (__pButtonItems[LEFT_BUTTON] != null)
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ else if (__highlightedItemIndex == 1)
+ {
+ if (__pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_SELECTED);
-void
-_Toolbar::OnFontChanged(Font* pFont)
-{
- __pToolbarPresenter->OnFontChanged(pFont);
+ if (__pButtonItems[BACK_BUTTON] != null)
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ else if (__pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_SELECTED);
- return;
-}
+ if (__pButtonItems[RIGHT_BUTTON] != null)
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ }
+ }
+ else // L
+ {
+ if (__highlightedItemIndex == 0)
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_SELECTED);
-void
-_Toolbar::OnFontInfoRequested(unsigned long& style, int& size)
-{
- __pToolbarPresenter->OnFontInfoRequested(style, size);
+ if (__pButtonItems[LEFT_BUTTON] != null)
+ {
+ __pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ }
+ }
+ else // __pButtonItems[LEFT_BUTTON] is null
+ {
+ if (__pButtonItems[RIGHT_BUTTON] || __pButtonItems[BACK_BUTTON]) // R
+ {
+ if (__highlightedItemIndex == 0)
+ {
+ if (__pButtonItems[BACK_BUTTON])
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_SELECTED);
- return;
-}
+ if (__pButtonItems[BACK_BUTTON] != null)
+ {
+ __pButtonItems[BACK_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ else if (__pButtonItems[RIGHT_BUTTON])
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_SELECTED);
-void
-_Toolbar::OnAncestorVisibleStateChanged(const _Control& control)
-{
- __pToolbarPresenter->OnAncestorVisibleStateChanged(control);
+ if (__pButtonItems[RIGHT_BUTTON] != null)
+ {
+ __pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
- _Control::OnAncestorVisibleStateChanged(control);
- return;
+ return false;
}
void
return __pToolbarPresenter->OnTouchCanceled(source, touchinfo);
}
+bool
+_Toolbar::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
+{
+ return false;
+}
+
void
_Toolbar::AddActionEventListener(const Controls::_IActionEventListener& listener)
{
}
}
+ for (int i = 0; i < __itemCount; i++)
+ {
+ if (__pItems.at(i) != null)
+ {
+ if (__pBaseBackgroundBitmap)
+ {
+ SetColorReplacedBitmap(__pItems.at(i), _BUTTON_STATUS_HIGHLIGHTED, __itemBackgroundColor[_BUTTON_STATUS_HIGHLIGHTED], __pBaseBackgroundBitmap);
+ }
+ }
+ }
+
delete __pBaseBackgroundBitmap;
return E_SUCCESS;