AddTextComponent method

Widget AddTextComponent(
  1. dynamic child,
  2. EditImageProvider editImageProvider
)

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);
          },
        ),
      ),
    ],
  );
}