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