AddTextComponent method
Implementation
Widget AddTextComponent(child, EditImageProvider editImageProvider){
double containerWidth = editImageProvider.state.width;
double containerHeight = editImageProvider.state.height;
Offset offsetChange = applyDragTextRotationTransformation(currentTextOffset.value, editImageProvider);
return Stack(
children: [
Positioned(
child: Container(
width: containerWidth,
height: containerHeight,
child: child
),
),
Positioned(
left: offsetChange.dx,
top: offsetChange.dy,
child: Draggable(
child: Text(
currentText.value,
style: generateAddTextStyle(16, editImageProvider.state.selectedAddTextColor, boldCurrentText.value),
),
feedback: Material(
color: Colors.transparent,
child: Text(
currentText.value,
style: generateAddTextStyle(16, editImageProvider.state.selectedAddTextColor, boldCurrentText.value),
)
),
childWhenDragging: Container(),
onDraggableCanceled: (velocity, offset) {
RenderBox renderBox = context.findRenderObject() as RenderBox;
Offset localPosition = renderBox.globalToLocal(offset);
currentTextOffset.value = Offset(localPosition.dx - (getScreenWidth() - containerWidth) / 2, localPosition.dy - appBarHeight - (getScreenHeight() - containerHeight - appBarHeight - iconsListHeight.value) / 2);
},
onDragEnd: (details) {
Offset position = details.offset;
RenderBox renderBox = context.findRenderObject() as RenderBox;
Offset localPosition = renderBox.globalToLocal(position);
currentTextOffset.value = Offset(localPosition.dx - (getScreenWidth() - containerWidth) / 2, localPosition.dy - appBarHeight - (getScreenHeight() - containerHeight - appBarHeight - iconsListHeight.value) / 2);
},
),
),
],
);
}