result
_ToolbarPresenter::SetItemSelected(int itemIndex)
{
+ ToolbarStyle style = __pToolbar->GetStyle();
+
+ if ((style == TOOLBAR_TAB || style == TOOLBAR_TAB_WITH_TITLE) && __pToolbar->GetItemCount() > SEGMENTED_ITEM_MAX)
+ {
+ if (itemIndex <= __pToolbar->GetItemCount() - SEGMENTED_ITEM_MAX)
+ {
+ SetItemFit(itemIndex);
+ }
+ else
+ {
+ SetItemFit(__pToolbar->GetItemCount() - SEGMENTED_ITEM_MAX);
+ }
+ }
+
return __pToolbarModel->SetSelectedItemIndex(itemIndex);
}
}
else
{
- if ((style == TOOLBAR_TAB || style == TOOLBAR_TAB_WITH_TITLE) && __pToolbar->GetItemCount() > 4)
+ if ((style == TOOLBAR_TAB || style == TOOLBAR_TAB_WITH_TITLE) && __pToolbar->GetItemCount() > SEGMENTED_ITEM_MAX)
{
if (__pressedItemIndex != -1)
{
FloatRectangle itemBounds = pCurrentButton->GetBoundsF();
- if ((style == TOOLBAR_TAB || style == TOOLBAR_TAB_WITH_TITLE) && __pToolbar->GetItemCount() > 4)
+ if ((style == TOOLBAR_TAB || style == TOOLBAR_TAB_WITH_TITLE) && __pToolbar->GetItemCount() > SEGMENTED_ITEM_MAX)
{
if (itemBounds.Contains(touchPoint))
{
{
ToolbarStyle style = __pToolbar->GetStyle();
- if (!(style == TOOLBAR_TAB || style == TOOLBAR_TAB_WITH_TITLE) || __pToolbar->GetItemCount() <= 4 || __beingEdited == true || __tabMoved == false)
+ if (!(style == TOOLBAR_TAB || style == TOOLBAR_TAB_WITH_TITLE) || __pToolbar->GetItemCount() <= SEGMENTED_ITEM_MAX || __beingEdited == true || __tabMoved == false)
{
return true;
}
void
_ToolbarPresenter::SetItemFit(int index)
{
+ if (index < 0)
+ {
+ return ;
+ }
+
FloatPoint pt(0.0f, 0.0f);
FloatRectangle bounds(0.0f, 0.0f, 0.0f, 0.0f);