showAddTextPopup method

void showAddTextPopup(
  1. BuildContext context,
  2. double degrees,
  3. EditImageProvider editImageProvider
)

Implementation

void showAddTextPopup(BuildContext context, double degrees, EditImageProvider editImageProvider) {
  showDialog(
    context: context,
    barrierDismissible: false,
    builder: (BuildContext context) {
      return StatefulBuilder(
        builder: (context, setState) {
          return AlertDialog(
            title: const Text('Add Text'),
            content: Column(
              mainAxisSize: MainAxisSize.min,
              children: [
                const Text('Enter the text:'),
                TextField(
                  controller: addTextController,
                ),
                Row(
                  children: [
                    Checkbox(
                      value: boldCurrentText.value,
                      onChanged: (newValue){
                        setState((){
                          boldCurrentText.value = newValue!;
                        });
                      },
                    ),
                    const Text('Bold text')
                  ]
                )
              ],
            ),
            actions: [
              ElevatedButton(
                child: const Text('Cancel'),
                onPressed: () {
                  Navigator.of(context).pop();
                },
              ),
              ValueListenableBuilder<bool>(
                valueListenable: inputsNotEmpty,
                builder: (BuildContext context, bool inputsNotEmpty, Widget? child) {
                  return ElevatedButton(
                    child: const Text('Generate'),
                    onPressed: inputsNotEmpty ? () {
                      currentText.value = addTextController.text;
                      addTextController.text = '';
                      if(degrees == 0){
                        currentTextOffset.value = const Offset(0, 0);
                      }else if(degrees == 90){
                        currentTextOffset.value = Offset((editImageProvider.state.width - editImageProvider.state.height) / 2, -(editImageProvider.state.width - editImageProvider.state.height) / 2);
                      }else if(degrees == 180){
                        currentTextOffset.value = const Offset(0, 0);
                      }else if(degrees == 270){
                        currentTextOffset.value = Offset((editImageProvider.state.width - editImageProvider.state.height) / 2, -(editImageProvider.state.width - editImageProvider.state.height) / 2);
                      }
                      Navigator.of(context).pop();
                    } : null,
                  );
                }
              )
            ],
          );
        }
      );
    },
  );
}