123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- import 'package:flowy_infra/image.dart';
- import 'package:flowy_infra/theme.dart';
- import 'package:flowy_infra_ui/style_widget/icon_button.dart';
- import 'package:flutter/material.dart';
- import 'package:flutter_quill/flutter_quill.dart';
- class StyleWidgetBuilder {
- static QuillCheckboxBuilder checkbox(AppTheme theme) {
- return EditorCheckboxBuilder(theme);
- }
- }
- class EditorCheckboxBuilder extends QuillCheckboxBuilder {
- final AppTheme theme;
- EditorCheckboxBuilder(this.theme);
- @override
- Widget build({required BuildContext context, required bool isChecked, required ValueChanged<bool> onChanged}) {
- return FlowyEditorCheckbox(
- theme: theme,
- isChecked: isChecked,
- onChanged: onChanged,
- );
- }
- }
- class FlowyEditorCheckbox extends StatefulWidget {
- final bool isChecked;
- final ValueChanged<bool> onChanged;
- final AppTheme theme;
- const FlowyEditorCheckbox({
- required this.theme,
- required this.isChecked,
- required this.onChanged,
- Key? key,
- }) : super(key: key);
- @override
- _FlowyEditorCheckboxState createState() => _FlowyEditorCheckboxState();
- }
- class _FlowyEditorCheckboxState extends State<FlowyEditorCheckbox> {
- late bool isChecked;
- @override
- void initState() {
- isChecked = widget.isChecked;
- super.initState();
- }
- @override
- Widget build(BuildContext context) {
- final icon = isChecked ? svgWidget('editor/editor_check') : svgWidget('editor/editor_uncheck');
- return Align(
- alignment: Alignment.centerLeft,
- child: FlowyIconButton(
- onPressed: () {
- isChecked = !isChecked;
- widget.onChanged(isChecked);
- setState(() {});
- },
- iconPadding: EdgeInsets.zero,
- icon: icon,
- width: 23,
- ),
- );
- }
- }
|