import 'package:flutter/material.dart'; import 'package:flutter_quill/flutter_quill.dart'; import 'package:flutter_quill_extensions/flutter_quill_extensions.dart'; /// Custom toolbar that uses the buttons of [`flutter_quill`](https://pub.dev/packages/flutter_quill). /// /// See also: [Custom toolbar](https://github.com/singerdmx/flutter-quill/blob/master/doc/custom_toolbar.md). class CustomToolbar extends StatelessWidget { const CustomToolbar({super.key, required this.controller}); final QuillController controller; @override Widget build(BuildContext context) { return SingleChildScrollView( scrollDirection: Axis.horizontal, child: Wrap( children: [ QuillToolbarHistoryButton(isUndo: true, controller: controller), QuillToolbarHistoryButton(isUndo: false, controller: controller), QuillToolbarToggleStyleButton( options: const QuillToolbarToggleStyleButtonOptions(), controller: controller, attribute: Attribute.bold, ), QuillToolbarToggleStyleButton( options: const QuillToolbarToggleStyleButtonOptions(), controller: controller, attribute: Attribute.italic, ), QuillToolbarToggleStyleButton( controller: controller, attribute: Attribute.underline, ), QuillToolbarClearFormatButton(controller: controller), const VerticalDivider(), QuillToolbarImageButton(controller: controller), QuillToolbarCameraButton(controller: controller), QuillToolbarVideoButton(controller: controller), const VerticalDivider(), QuillToolbarColorButton(controller: controller, isBackground: false), QuillToolbarColorButton(controller: controller, isBackground: true), const VerticalDivider(), QuillToolbarSelectHeaderStyleDropdownButton(controller: controller), const VerticalDivider(), QuillToolbarSelectLineHeightStyleDropdownButton( controller: controller, ), const VerticalDivider(), QuillToolbarToggleCheckListButton(controller: controller), QuillToolbarToggleStyleButton( controller: controller, attribute: Attribute.ol, ), QuillToolbarToggleStyleButton( controller: controller, attribute: Attribute.ul, ), QuillToolbarToggleStyleButton( controller: controller, attribute: Attribute.inlineCode, ), QuillToolbarToggleStyleButton( controller: controller, attribute: Attribute.blockQuote, ), QuillToolbarIndentButton(controller: controller, isIncrease: true), QuillToolbarIndentButton(controller: controller, isIncrease: false), const VerticalDivider(), QuillToolbarLinkStyleButton(controller: controller), ], ), ); } }