__verticalAlignment = TEXT_ALIGNMENT_VERTICAL_MIN;
__horizontalAlignment = TEXT_ALIGNMENT_HORIZONTAL_MIN;
__elementVerticalAlignment = TEXT_ALIGNMENT_VERTICAL_MIN;
+ __pTextObject = null;
__pLinkedListTextElementList = null;
__pTextElement = null;
__isCopiedEnrichedText = false;
delete __pLinkedListTextElementList;
__pLinkedListTextElementList = null;
}
+
+ if (__pTextObject)
+ {
+ delete __pTextObject;
+ __pTextObject = null;
+ }
}
result
__lineSpace = 0.0f;
__pLinkedListTextElementList = new (std::nothrow) Tizen::Base::Collection::LinkedList;
- SysTryCatch(NID_GRP
- , __pLinkedListTextElementList
- , r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[%s] Fails to create a element list.", GetErrorMessage(r));
+ SysTryCatch(NID_GRP, __pLinkedListTextElementList, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY
+ , "[%s] Fails to create a element list.", GetErrorMessage(r));
__pTextElement = new (std::nothrow) TextElement();
- SysTryCatch(NID_GRP
- , __pTextElement
- , r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[%s] Fails to create a element.", GetErrorMessage(r));
+ SysTryCatch(NID_GRP, __pTextElement, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY
+ , "[%s] Fails to create a element.", GetErrorMessage(r));
- __pTextObject.reset(new (std::nothrow)TextObject);
- SysTryCatch(NID_GRP
- , __pTextObject
- , r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[%s] Fails to create a TextObject.", GetErrorMessage(r));
+ __pTextObject = new (std::nothrow)TextObject;
+ SysTryCatch(NID_GRP, __pTextObject, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY
+ , "[%s] Fails to create a TextObject.", GetErrorMessage(r));
__pTextObject->Construct();
__pTextObject->SetBounds(FloatRectangle(0.0f, 0.0f, __width, __height));
, E_INVALID_ARG, E_INVALID_ARG
, "[E_INVALID_ARG] The argument is invalid.");
- if (__pTextObject.use_count() > 1)
- {
- return E_SUCCESS;
- }
-
result r = E_SUCCESS;
int count = GetTextElementCount();
TextElement* pTextElement = null;
SysTryReturn(NID_GRP, __pTextObject != null, E_OPERATION_FAILED, E_OPERATION_FAILED
, "[E_OPERATION_FAILED] This instance is not constructed yet.");
- if (__pTextObject.use_count() > 1)
- {
- return E_SUCCESS;
- }
-
int textElementIndex = 0;
result r = E_SUCCESS;
TextElement* pTextElement = null;
result
_EnrichedTextImpl::Add(Tizen::Graphics::TextElement& element)
{
- SysTryReturn(NID_GRP, __pTextObject != null, E_OPERATION_FAILED, E_OPERATION_FAILED, "[E_OPERATION_FAILED] This instance is not constructed yet.");
+ SysTryReturn(NID_GRP, __pTextObject != null, E_OPERATION_FAILED, E_OPERATION_FAILED
+ , "[E_OPERATION_FAILED] This instance is not constructed yet.");
result r = E_SUCCESS;
result
_EnrichedTextImpl::RemoveAllTextElements(bool deallocate)
{
- SysTryReturn(NID_GRP, __pTextObject != null, E_OPERATION_FAILED, E_OPERATION_FAILED, "[E_OPERATION_FAILED] This instance is not constructed yet.");
+ SysTryReturn(NID_GRP, __pTextObject != null, E_OPERATION_FAILED, E_OPERATION_FAILED
+ , "[E_OPERATION_FAILED] This instance is not constructed yet.");
result r = E_SUCCESS;
int elementCount = __pLinkedListTextElementList->GetCount();
result
_EnrichedTextImpl::RemoveAll(bool deallocate)
{
- SysTryReturn(NID_GRP, __pTextObject != null, E_OPERATION_FAILED, E_OPERATION_FAILED, "[E_OPERATION_FAILED] This instance is not constructed yet.");
+ SysTryReturn(NID_GRP, __pTextObject != null, E_OPERATION_FAILED, E_OPERATION_FAILED
+ , "[E_OPERATION_FAILED] This instance is not constructed yet.");
result r = E_SUCCESS;
{
SysTryReturn(NID_GRP, __pTextObject != null, E_OPERATION_FAILED, E_OPERATION_FAILED
, "[E_OPERATION_FAILED] This instance is not constructed yet.");
- SysTryReturn(NID_GRP, lineSpace > 0, E_INVALID_ARG, E_INVALID_ARG
+ SysTryReturn(NID_GRP, lineSpace >= 0, E_INVALID_ARG, E_INVALID_ARG
, "[E_INVALID_ARG] The argument is invalid.");
__lineSpace = _CoordinateSystemUtils::ConvertToFloat(lineSpace);
{
SysTryReturn(NID_GRP, __pTextObject != null, E_OPERATION_FAILED, E_OPERATION_FAILED
, "[E_OPERATION_FAILED] This instance is not constructed yet.");
- SysTryReturn(NID_GRP, lineSpace > 0.0f, E_INVALID_ARG, E_INVALID_ARG
+ SysTryReturn(NID_GRP, lineSpace >= 0.0f, E_INVALID_ARG, E_INVALID_ARG
, "[E_INVALID_ARG] The argument is invalid.");
__lineSpace = lineSpace;
}
r = pNewBitmap->Construct(*pBitmap, FloatRectangle(0, 0, pBitmap->GetWidthF(), pBitmap->GetHeightF()));
- SysTryCatch(NID_GRP
- , r == E_SUCCESS
- , , r, "[%s] Fails to append image.", GetErrorMessage(r));
+ SysTryCatch(NID_GRP, r == E_SUCCESS, , r, "[%s] Fails to append image.", GetErrorMessage(r));
__pTextObject->AppendElement(*pNewBitmap, TEXT_ELEMENT_SOURCE_TYPE_EXTERNAL);
__pTextObject->Compose();
r = __pLinkedListTextElementList->Add(*pNewBitmap);
- SysTryCatch(NID_GRP
- , r == E_SUCCESS
- , , r, "[%s] Fails to add image.", GetErrorMessage(r));
+ SysTryCatch(NID_GRP, r == E_SUCCESS, , r, "[%s] Fails to add image.", GetErrorMessage(r));
if (__isCopiedEnrichedText == false)
{
TextObject*
_EnrichedTextImpl::GetTextObject(void) const
{
- return __pTextObject.get();
+ return __pTextObject;
}
TextElementType
, "[E_OPERATION_FAILED] This instance is not constructed yet.");
result r = E_SUCCESS;
+
_EnrichedTextImpl* pNewEnrichedTextImpl = null;
+ TextElement* pNewElement = null;
+ TextElement* pSrcElement = null;
+ Bitmap* pBitmap = null;
+ Font* pFont = null;
+ Color bgColor;
+ Color fgColor;
+ Color outColor;
+ TextElementType type = TEXT_ELEMENT_TYPE_NONE;
- pNewEnrichedTextImpl = new (std::nothrow)_EnrichedTextImpl(*this);
- r = GetLastResult();
- SysTryReturn(NID_GRP, pNewEnrichedTextImpl, null, r, "[%s] Propagating.", GetErrorMessage(r));
+ Dimension dim = this->GetSize();
+ TextVerticalAlignment verticalAlignment = this->GetElementVerticalAlignment();
+ TextHorizontalAlignment horizontalAlignment = this->GetHorizontalAlignment();
+ TextVerticalAlignment elementVerticalAlignment = this->GetElementVerticalAlignment();
+ TextWrap wrap = this->GetTextWrapStyle();
+ bool abbreviationEnable = this->IsTextAbbreviationEnabled();
+ float lineSpacing = this->GetLineSpaceF();
+ int elementCount = this->GetTextElementCount();
+
+ pNewEnrichedTextImpl = new (std::nothrow)_EnrichedTextImpl();
+ SysTryReturn(NID_GRP, pNewEnrichedTextImpl, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Fail to create a EnrichedTextImpl.");
+
+ r = pNewEnrichedTextImpl->Construct(dim);
+ SysTryCatch(NID_GRP, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] Failed to duplicate the EnrichedTextImpl.");
+
+ pNewEnrichedTextImpl->__isCopiedEnrichedText = true;
+ pNewEnrichedTextImpl->SetVerticalAlignment(verticalAlignment);
+ pNewEnrichedTextImpl->SetHorizontalAlignment(horizontalAlignment);
+ pNewEnrichedTextImpl->SetElementVerticalAlignment(elementVerticalAlignment);
+ pNewEnrichedTextImpl->SetTextWrapStyle(wrap);
+ pNewEnrichedTextImpl->SetTextAbbreviationEnabled(abbreviationEnable);
+ pNewEnrichedTextImpl->SetLineSpace(lineSpacing);
- return pNewEnrichedTextImpl;
-}
+ for (int i = 0; i < elementCount; i++)
+ {
+ if (this->GetTextElementAt(i) == null) // For Bitmap
+ {
+ type = (this->GetTypeFromIndex(i));
+ if (type == TEXT_ELEMENT_TYPE_IMAGE)
+ {
+ pBitmap = (Bitmap*)(this->__pLinkedListTextElementList->GetAt(i));
+ SysTryCatch(NID_GRP, pBitmap != null, , E_SYSTEM, "[E_SYSTEM] Failed to duplicate the EnrichedTextImpl.");
-_EnrichedTextImpl::_EnrichedTextImpl(const _EnrichedTextImpl& rhs)
-{
- SysTryReturnVoidResult(NID_GRP, rhs.__pTextObject, E_OPERATION_FAILED, "[E_OPERATION_FAILED] This instance is not initialized.");
+ r = pNewEnrichedTextImpl->Add(*pBitmap);
+ SysTryCatch(NID_GRP, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] Failed to duplicate the EnrichedTextImpl.");
+ }
+ }
+ else // For TextElement
+ {
+ pNewElement = new (std::nothrow) TextElement();
+ SysTryCatch(NID_GRP, pNewElement, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Fail to create a TextElement.");
- result r = E_SUCCESS;
- FloatDimension size = rhs.GetSizeF();
+ pSrcElement = (TextElement*)(this->__pLinkedListTextElementList->GetAt(i));
+ SysTryCatch(NID_GRP, pSrcElement, , E_SYSTEM, "[E_SYSTEM] Failed to duplicate the EnrichedTextImpl.");
- __width = size.width;
- __height = size.height;
- __lineSpace = GetLineSpaceF();
- __count = 0;
- __verticalAlignment = rhs.GetVerticalAlignment();
- __horizontalAlignment = rhs.GetHorizontalAlignment();
- __elementVerticalAlignment = rhs.GetElementVerticalAlignment();
- __pLinkedListTextElementList = null;
- __pTextElement = null;
- __isCopiedEnrichedText = true;
- __pTextObject = rhs.__pTextObject;
+ bgColor = pSrcElement->GetBackgroundColor();
+ fgColor = pSrcElement->GetTextColor();
+ outColor = pSrcElement->GetOutlineColor();
+ _TextElementImpl* pSrcTextElementImpl = _TextElementImpl::GetInstance(*pSrcElement);
- __pLinkedListTextElementList = new (std::nothrow) Tizen::Base::Collection::LinkedList;
- if (__pLinkedListTextElementList == null)
- {
- SetLastResult(E_OUT_OF_MEMORY);
- SysLog(NID_GRP, "[E_OUT_OF_MEMORY] Fail to create element list.");
- }
+ if (pSrcElement->GetLinkType() == LINK_TYPE_NONE)
+ {
+ r = pNewElement->Construct(pSrcElement->GetText());
+ SysTryCatch(NID_GRP, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] Failed to duplicate the EnrichedTextImpl.");
+ }
+ else
+ {
+ if (pSrcTextElementImpl->IsAuto() == true)
+ {
+ r = pNewElement->Construct(pSrcElement->GetText(), pSrcTextElementImpl->GetAutoLink());
+ SysTryCatch(NID_GRP, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] Failed to duplicate the EnrichedTextImpl.");
+ }
+ else
+ {
+ r = pNewElement->Construct(pSrcElement->GetText(), pSrcElement->GetLinkType(), pSrcElement->GetLink());
+ SysTryCatch(NID_GRP, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] Failed to duplicate the EnrichedTextImpl.");
+ }
+ }
- __pTextElement = new (std::nothrow) TextElement();
- if (__pTextElement == null)
- {
- delete __pLinkedListTextElementList;
+ pNewElement->SetTextColor(fgColor);
+ if (pSrcTextElementImpl->IsBackgoundColorEnable() == true)
+ {
+ pNewElement->SetBackgroundColor(bgColor);
+ }
- SetLastResult(E_OUT_OF_MEMORY);
- SysLog(NID_GRP, "[E_OUT_OF_MEMORY] Fail to create element.");
+ if (pSrcTextElementImpl->IsOutlineColorEnable() == true)
+ {
+ pNewElement->SetOutlineColor(outColor);
+ }
+
+ pFont = const_cast < Font* >(pSrcTextElementImpl->GetFont());
+ if (pFont != null)
+ {
+ r = pNewElement->SetFont(*pFont);
+ SysTryCatch(NID_GRP, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] Failed to duplicate the EnrichedTextImpl.");
+ }
+
+ r = pNewEnrichedTextImpl->Add(*pNewElement);
+ SysTryCatch(NID_GRP, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] Failed to duplicate the EnrichedTextImpl.");
+ }
}
- r = __pTextElement->Construct();
- if (r != E_SUCCESS)
+ return pNewEnrichedTextImpl;
+
+CATCH:
+ if (pNewEnrichedTextImpl)
{
- delete __pLinkedListTextElementList;
- delete __pTextElement;
+ pNewEnrichedTextImpl->RemoveAll(true);
+ delete pNewEnrichedTextImpl;
+ pNewEnrichedTextImpl = null;
+ }
- SysLog(NID_GRP, "[%s] Fail to construct text element.", GetErrorMessage(r));
+ if (pNewElement)
+ {
+ delete pNewElement;
+ pNewElement = null;
}
+
+ return null;
}
_EnrichedTextImpl*