import 'package:flutter/material.dart'; import '../../../../models/documents/attribute.dart'; import '../../../quill/quill_controller.dart'; import '../../base_toolbar.dart'; enum _AlignmentOptions { left(attribute: Attribute.leftAlignment), center(attribute: Attribute.centerAlignment), right(attribute: Attribute.rightAlignment), justifyMinWidth(attribute: Attribute.justifyAlignment); const _AlignmentOptions({required this.attribute}); final Attribute attribute; } class QuillToolbarSelectAlignmentButtons extends StatelessWidget { const QuillToolbarSelectAlignmentButtons({ required this.controller, this.options = const QuillToolbarSelectAlignmentButtonOptions(), this.showLeftAlignment, this.showCenterAlignment, this.showRightAlignment, this.showJustifyAlignment, this.padding, super.key, }); final QuillController controller; final QuillToolbarSelectAlignmentButtonOptions options; final bool? showLeftAlignment; final bool? showCenterAlignment; final bool? showRightAlignment; final bool? showJustifyAlignment; final EdgeInsetsGeometry? padding; @override Widget build(BuildContext context) { return Row( mainAxisSize: MainAxisSize.min, children: _AlignmentOptions.values .map((e) => QuillToolbarToggleStyleButton( controller: controller, attribute: e.attribute, options: QuillToolbarToggleStyleButtonOptions( iconData: options.iconData, iconSize: options.iconSize, iconButtonFactor: options.iconButtonFactor, afterButtonPressed: options.afterButtonPressed, iconTheme: options.iconTheme, tooltip: options.tooltip, ), )) .toList(), ); } }