FloatDimension GetTextExtentF(int startTextIndex, int textLength) const;
+ Dimension GetTextExtent(void) const;
+
+ FloatDimension GetTextExtentF(void) const;
+
result SetAction(TextObjectActionType action);
TextObjectActionType GetAction(void) const;
return textSize;
}
+Dimension
+TextObject::GetTextExtent(void) const
+{
+ return _CoordinateSystemUtils::ConvertToInteger(GetTextExtentF());
+}
+
+FloatDimension
+TextObject::GetTextExtentF(void) const
+{
+ IF_NOT_CONSTRUCTED(return FloatDimension(-1, -1));
+
+ TextLine* pTextLine = null;
+ FloatDimension textSize(0.0f, 0.0f);
+ FloatDimension lineSize(0.0f, 0.0f);
+ int lineCount = GetTotalLineCount();
+
+ for (int i = 0; i < lineCount; i++)
+ {
+ pTextLine = __pTextColumn->GetTextLine(i);
+ SysTryReturn(NID_GRP, pTextLine, FloatDimension(-1, -1), E_SYSTEM, "[E_SYSTEM] Fail to get text line.");
+
+ pTextLine->GetRegion(0, pTextLine->GetTextLength(), lineSize.width, lineSize.height);
+
+ if (textSize.width < lineSize.width)
+ {
+ textSize.width = lineSize.width;
+ }
+ }
+
+ textSize.height = GetTotalHeightF();
+
+ SetLastResult(E_SUCCESS);
+
+ return textSize;
+}
+
result
TextObject::AppendElement(TextElement& textElement)
{
TextObjectWrapType previousWrapType = pTextObject->GetWrap();
FloatRectangle previousRect = pTextObject->GetBoundsF();
+ pTextObject->SetBounds(FloatRectangle(0.0f, 0.0f, GetBoundsF().width - __leftMargin * 2, GetBoundsF().height - __topMargin * 2));
pTextObject->SetAction(TEXT_OBJECT_ACTION_TYPE_NONE);
pTextObject->SetWrap(TEXT_OBJECT_WRAP_TYPE_WORD);
pTextObject->Compose();
- dimension = pTextObject->GetTextExtentF(0, pTextObject->GetTextLength());
+ dimension = pTextObject->GetTextExtentF();
- contentRect.width = _ControlManager::GetInstance()->GetScreenSizeF().width;
+ _ControlOrientation orientation = GetOrientation();
+ if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
+ {
+ contentRect.width = _ControlManager::GetInstance()->GetScreenSizeF().width;
+ }
+ else
+ {
+ contentRect.width = _ControlManager::GetInstance()->GetScreenSizeF().height;
+ }
if (dimension.width > contentRect.width - GetBoundsF().x - __leftMargin * 2)
{
return dimension;
}
-
int
_Button::GetTextExtentSize(void) const
{
TextObjectWrapType previousWrapType = pTextObject->GetWrap();
FloatRectangle previousRect = pTextObject->GetBoundsF();
+ pTextObject->SetBounds(FloatRectangle(0.0f, 0.0f, GetBoundsF().width - __leftMargin * 2, GetBoundsF().height - __topMargin * 2));
pTextObject->SetAction(TEXT_OBJECT_ACTION_TYPE_NONE);
pTextObject->SetWrap(TEXT_OBJECT_WRAP_TYPE_WORD);
pTextObject->Compose();
- dimension = pTextObject->GetTextExtentF(0, pTextObject->GetTextLength());
+ dimension = pTextObject->GetTextExtentF();
_ControlOrientation orientation = GetOrientation();
if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
{
__pTextObject->SetFont(__pFont, 0, __pTextObject->GetTextLength());
}
+
return;
}