* @brief This is the implementation file for the _EditCopyPasteManager class.
*/
+#include "FUiAnim_ControlVisualElement.h"
+#include "FUiAnim_VisualElementImpl.h"
#include <appsvc/appsvc.h>
#include <FApp_AppControlManager.h>
#include <FApp_AppMessageImpl.h>
float adjustPosY = 0.0f;
FloatRectangle cursorBounds(0.0f, 0.0f, 0.0f, 0.0f);
FloatRectangle captureBounds(0.0f, 0.0f, 0.0f, 0.0f);
+ _VisualElementImpl* pEditVisualElementImpl = null;
_Edit* pEdit = __pCopyPasteManager->GetEdit();
SysTryReturnVoidResult(NID_UI_CTRL, pEdit, E_INVALID_STATE, "[E_INVALID_STATE] pEdit is null.");
+ _VisualElement* pEditVisualElement = pEdit->GetVisualElement();
+ SysTryReturnVoidResult(NID_UI_CTRL, pEditVisualElement, E_INVALID_STATE, "[E_INVALID_STATE] pEditVisualElement is null.");
+
_EditPresenter* pEditPresenter = pEdit->GetPresenter();
SysTryReturnVoidResult(NID_UI_CTRL, pEditPresenter, E_INVALID_STATE, "[E_INVALID_STATE] pEditPresenter is null.");
- pEditPresenter->CalculateCursorBounds(pEditPresenter->GetTextBoundsF(), cursorBounds, __handlerCursorPos);
+ pEditPresenter->CalculateCursorBounds(pEditPresenter->GetTextBoundsF(), cursorBounds,__handlerCursorPos);
GET_SHAPE_CONFIG(EDIT::COPYPASTE_MAGNIFIER_CAPTURE_WIDTH, pEdit->GetOrientation(), captureWidth);
GET_SHAPE_CONFIG(EDIT::COPYPASTE_MAGNIFIER_CAPTURE_HEIGHT, pEdit->GetOrientation(), captureHeight);
adjustPosY = captureHeight - captureBounds.height;
}
- Bitmap* pOriginalBitmp = pEdit->GetCapturedBitmapN(true);
- SysTryReturnVoidResult(NID_UI_CTRL, pOriginalBitmp, E_INVALID_STATE, "[E_INVALID_STATE] pOriginalBitmp is null.");
+ Bitmap* pOriginalBitmp = null;
+ Canvas* pCanvas = new (std::nothrow) Canvas;
+ SysTryReturnVoidResult(NID_UI_CTRL, pCanvas, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
- Bitmap bitmap;
- r = bitmap.Construct(FloatRectangle(0, 0, captureBounds.width, captureBounds.height));
- SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+ r = pCanvas->Construct(FloatRectangle(0, 0, captureBounds.width, captureBounds.height));
+ SysTryCatch(NID_UI, r == E_SUCCESS, , r, "[%s] Propagated.", GetErrorMessage(r));
- r = bitmap.Merge(FloatPoint(0.0f, 0.0f), *pOriginalBitmp, CoordinateSystem::AlignToDevice(FloatRectangle(captureBounds.x, captureBounds.y, captureBounds.width, captureBounds.height)));
- SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+ pEditVisualElementImpl = _VisualElementImpl::GetInstance(*pEditVisualElement);
+
+ pEditVisualElementImpl->Capture(*pCanvas, CoordinateSystem::AlignToDevice(FloatRectangle(0, 0, captureBounds.width, captureBounds.height)), CoordinateSystem::AlignToDevice(captureBounds), true);
- r = bitmap.SetScalingQuality(BITMAP_SCALING_QUALITY_HIGH);
+ pOriginalBitmp = new (std::nothrow) Bitmap;
+ SysTryCatch(NID_UI, pOriginalBitmp != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ r = pOriginalBitmp->Construct(*pCanvas, CoordinateSystem::AlignToDevice(FloatRectangle(0, 0, captureBounds.width, captureBounds.height)));
+
+ r = pOriginalBitmp->SetScalingQuality(BITMAP_SCALING_QUALITY_HIGH);
SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
- r = bitmap.Scale(CoordinateSystem::AlignToDevice(FloatDimension(bitmap.GetActualWidth()*1.5f, bitmap.GetActualHeight()*1.5f)));
+ r = pOriginalBitmp->Scale(CoordinateSystem::AlignToDevice(FloatDimension(pOriginalBitmp->GetActualWidth()*1.5f, pOriginalBitmp->GetActualHeight()*1.5f)));
SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
- canvas.DrawBitmap(CoordinateSystem::AlignToDevice(FloatPoint(capturePosX + adjustPosX*1.5f, capturePosY + adjustPosY*1.5f)), bitmap);
+ canvas.DrawBitmap(CoordinateSystem::AlignToDevice(FloatPoint(capturePosX + adjustPosX*1.5f, capturePosY + adjustPosY*1.5f)), *pOriginalBitmp);
+ delete pCanvas;
delete pOriginalBitmp;
return;
CATCH:
+ delete pCanvas;
delete pOriginalBitmp;
return;