76 lines
2.9 KiB
Dart
76 lines
2.9 KiB
Dart
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),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|