pTextObject->SetFont(pFont, 0, pTextObject->GetTextLength());
pTextObject->Compose();
- textSize = pTextObject->GetTextExtentF();
+ int displayLineCount = pTextObject->GetDisplayLineCount();
+ int offSet = pTextObject->GetFirstTextIndexAt(displayLineCount - 1);
+
+ if (displayLineCount == 1)
+ {
+ textSize = pTextObject->GetTextExtentF(offSet, pTextObject->GetTextLength() - offSet);
+ }
+ else
+ {
+ textSize = pTextObject->GetTextExtentF();
+ }
dimension.width = (textSize.width < bounds.width) ? textSize.width : bounds.width;
}
pTextObject->SetBounds(previousRect);
pTextObject->SetAction(previousActionType);
- dimension.width += __leftMargin * 4;
- dimension.height += __topMargin * 4;
+ dimension.width += __leftMargin * 2;
+ dimension.height += __topMargin * 2;
for (int i = 0; i < NUMBER_OF_BUTTON_STATUS; i++)
{
pTextObject->SetAction(TEXT_OBJECT_ACTION_TYPE_NONE);
pTextObject->Compose();
- textSize = pTextObject->GetTextExtentF();
+ int displayLineCount = pTextObject->GetDisplayLineCount();
+ int offSet = pTextObject->GetFirstTextIndexAt(displayLineCount - 1);
+
+ if (displayLineCount == 1)
+ {
+ textSize = pTextObject->GetTextExtentF(offSet, pTextObject->GetTextLength() - offSet);
+ }
+ else
+ {
+ textSize = pTextObject->GetTextExtentF();
+ }
dimension.width = (textSize.width < bounds.width) ? textSize.width : bounds.width;
}
if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
{
__pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
}
}
else if (__highlightedItemIndex == __itemCount + 1)
if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
{
__pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
}
}
}
if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
{
__pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
}
}
}
if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
{
__pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
}
}
}
if (__pItems.at(__highlightedItemIndex)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
{
__pItems.at(__highlightedItemIndex)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pItems.at(__highlightedItemIndex)->Invalidate();
}
}
}
if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
{
__pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
}
}
else if (__highlightedItemIndex == __itemCount + 1)
if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
{
__pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
}
}
}
if (__pButtonItems[LEFT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
{
__pButtonItems[LEFT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[LEFT_BUTTON]->Invalidate();
}
}
}
if (__pButtonItems[RIGHT_BUTTON]->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
{
__pButtonItems[RIGHT_BUTTON]->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+ __pButtonItems[RIGHT_BUTTON]->Invalidate();
}
}
}
if(selectedItemIndex != -1 && __pItems.at(selectedItemIndex))
{
__pItems.at(selectedItemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, false);
+ __pItems.at(selectedItemIndex)->Invalidate();
}
}
- Invalidate(true);
+ //Invalidate(true);//fix title slide restart
return;
} // OnFocusModeStateChanged
if (pTitleIcon)
{
- totalWidth += (pTitleIcon->GetWidthF() + usableArea.x);
+ totalWidth += (pTitleIcon->GetWidthF() + iconRightMargin);
}
if(__pTitleTextObject->GetAlignment() & TEXT_OBJECT_ALIGNMENT_CENTER)
{
- leftMargin = (__titleRect.width - titleTextDimension.width) / 2 - leftMargin;
+ leftMargin = (__titleRect.width - titleTextDimension.width) / 2;
}
else if(__pTitleTextObject->GetAlignment() & TEXT_OBJECT_ALIGNMENT_RIGHT)
{
- leftMargin = __titleRect.width - titleTextDimension.width - leftMargin * 3;
+ leftMargin = __titleRect.width - titleTextDimension.width - iconRightMargin * 2;
}
pCanvas->DrawBitmap(FloatPoint(leftMargin, headerTopMargin + (titleDisplayHeight - pTitleIcon->GetHeightF()) / 2), *(pTitleIcon));
titleBadgeIconTopMargin));
}
- __titleRect.width -= (pTitleIcon->GetWidthF() + usableArea.x);
+ __titleRect.width -= (pTitleIcon->GetWidthF() + iconRightMargin);
}
else
{