From 4eaf278956d3387ca8383e65116b8908ed8830b1 Mon Sep 17 00:00:00 2001 From: Ellet Date: Wed, 13 Dec 2023 00:48:14 +0300 Subject: [PATCH] Create configurations class for select header style button --- ...ct_header_style_button_configurations.dart | 28 +++++++++++++++++++ ..._header_style_buttons_configurations.dart} | 6 ++-- .../simple_toolbar_configurations.dart | 12 ++++++-- lib/src/widgets/toolbar/base_toolbar.dart | 1 + .../select_header_style_button.dart | 6 ++-- .../select_header_style_buttons.dart | 2 +- lib/src/widgets/toolbar/simple_toolbar.dart | 2 +- 7 files changed, 47 insertions(+), 10 deletions(-) create mode 100644 lib/src/models/config/toolbar/buttons/select_header_style_button_configurations.dart rename lib/src/models/config/toolbar/buttons/{select_header_style_configurations.dart => select_header_style_buttons_configurations.dart} (85%) diff --git a/lib/src/models/config/toolbar/buttons/select_header_style_button_configurations.dart b/lib/src/models/config/toolbar/buttons/select_header_style_button_configurations.dart new file mode 100644 index 00000000..7c4d01f6 --- /dev/null +++ b/lib/src/models/config/toolbar/buttons/select_header_style_button_configurations.dart @@ -0,0 +1,28 @@ +import '../../../../widgets/toolbar/base_toolbar.dart'; + +class QuillToolbarSelectHeaderStyleButtonExtraOptions + extends QuillToolbarBaseButtonExtraOptions { + const QuillToolbarSelectHeaderStyleButtonExtraOptions({ + required super.controller, + required super.context, + required super.onPressed, + }); +} + +class QuillToolbarSelectHeaderStyleButtonOptions + extends QuillToolbarBaseButtonOptions< + QuillToolbarSelectHeaderStyleButtonOptions, + QuillToolbarSelectHeaderStyleButtonExtraOptions> { + const QuillToolbarSelectHeaderStyleButtonOptions({ + super.afterButtonPressed, + super.childBuilder, + super.iconTheme, + super.tooltip, + this.iconSize, + this.iconButtonFactor, + }); + + /// By default we will the toolbar axis from [QuillSimpleToolbarConfigurations] + final double? iconSize; + final double? iconButtonFactor; +} diff --git a/lib/src/models/config/toolbar/buttons/select_header_style_configurations.dart b/lib/src/models/config/toolbar/buttons/select_header_style_buttons_configurations.dart similarity index 85% rename from lib/src/models/config/toolbar/buttons/select_header_style_configurations.dart rename to lib/src/models/config/toolbar/buttons/select_header_style_buttons_configurations.dart index 3d5860c9..a3e6b0c5 100644 --- a/lib/src/models/config/toolbar/buttons/select_header_style_configurations.dart +++ b/lib/src/models/config/toolbar/buttons/select_header_style_buttons_configurations.dart @@ -3,9 +3,9 @@ import 'package:flutter/widgets.dart' show Axis; import '../../../../widgets/toolbar/base_toolbar.dart'; import '../../../documents/attribute.dart'; -class QuillToolbarSelectHeaderStyleButtonExtraOptions +class QuillToolbarSelectHeaderStyleButtonsExtraOptions extends QuillToolbarBaseButtonExtraOptions { - const QuillToolbarSelectHeaderStyleButtonExtraOptions({ + const QuillToolbarSelectHeaderStyleButtonsExtraOptions({ required super.controller, required super.context, required super.onPressed, @@ -15,7 +15,7 @@ class QuillToolbarSelectHeaderStyleButtonExtraOptions class QuillToolbarSelectHeaderStyleButtonsOptions extends QuillToolbarBaseButtonOptions< QuillToolbarSelectHeaderStyleButtonsOptions, - QuillToolbarSelectHeaderStyleButtonExtraOptions> { + QuillToolbarSelectHeaderStyleButtonsExtraOptions> { const QuillToolbarSelectHeaderStyleButtonsOptions({ super.afterButtonPressed, super.childBuilder, diff --git a/lib/src/models/config/toolbar/simple_toolbar_configurations.dart b/lib/src/models/config/toolbar/simple_toolbar_configurations.dart index a5fa4636..ac71f29e 100644 --- a/lib/src/models/config/toolbar/simple_toolbar_configurations.dart +++ b/lib/src/models/config/toolbar/simple_toolbar_configurations.dart @@ -20,7 +20,8 @@ import 'buttons/link_style2_configurations.dart'; import 'buttons/link_style_configurations.dart'; import 'buttons/search_configurations.dart'; import 'buttons/select_alignment_configurations.dart'; -import 'buttons/select_header_style_configurations.dart'; +import 'buttons/select_header_style_button_configurations.dart'; +import 'buttons/select_header_style_buttons_configurations.dart'; import 'buttons/toggle_check_list_configurations.dart'; import 'buttons/toggle_style_configurations.dart'; import 'toolbar_shared_configurations.dart'; @@ -38,7 +39,7 @@ export 'buttons/link_style2_configurations.dart'; export 'buttons/link_style_configurations.dart'; export 'buttons/search_configurations.dart'; export 'buttons/select_alignment_configurations.dart'; -export 'buttons/select_header_style_configurations.dart'; +export 'buttons/select_header_style_buttons_configurations.dart'; export 'buttons/toggle_check_list_configurations.dart'; export 'buttons/toggle_style_configurations.dart'; @@ -254,6 +255,8 @@ class QuillToolbarButtonOptions extends Equatable { this.search = const QuillToolbarSearchButtonOptions(), this.selectHeaderStyleButtons = const QuillToolbarSelectHeaderStyleButtonsOptions(), + this.selectHeaderStyleButton = + const QuillToolbarSelectHeaderStyleButtonOptions(), this.linkStyle = const QuillToolbarLinkStyleButtonOptions(), this.linkStyle2 = const QuillToolbarLinkStyleButton2Options(), this.customButtons = const QuillToolbarCustomButtonOptions(), @@ -300,6 +303,11 @@ class QuillToolbarButtonOptions extends Equatable { /// can customize it and you also have child builder final QuillToolbarSelectHeaderStyleButtonsOptions selectHeaderStyleButtons; + /// The reason we call this buttons in the end because this is responsible + /// for all the header style buttons and not just one, you still + /// can customize it and you also have child builder + final QuillToolbarSelectHeaderStyleButtonOptions selectHeaderStyleButton; + final QuillToolbarLinkStyleButtonOptions linkStyle; final QuillToolbarLinkStyleButton2Options linkStyle2; diff --git a/lib/src/widgets/toolbar/base_toolbar.dart b/lib/src/widgets/toolbar/base_toolbar.dart index 03e31d78..09c5641b 100644 --- a/lib/src/widgets/toolbar/base_toolbar.dart +++ b/lib/src/widgets/toolbar/base_toolbar.dart @@ -14,6 +14,7 @@ export 'buttons/color/color_button.dart'; export 'buttons/custom_button_button.dart'; export 'buttons/font_family_button.dart'; export 'buttons/font_size_button.dart'; +export 'buttons/hearder_style/select_header_style_button.dart'; export 'buttons/hearder_style/select_header_style_buttons.dart'; export 'buttons/history_button.dart'; export 'buttons/indent_button.dart'; diff --git a/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_button.dart b/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_button.dart index f8cde7de..d1cd8f26 100644 --- a/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_button.dart +++ b/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_button.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import '../../../../../translations.dart'; import '../../../../extensions/quill_configurations_ext.dart'; -import '../../../../models/config/toolbar/buttons/select_header_style_configurations.dart'; +import '../../../../models/config/toolbar/buttons/select_header_style_button_configurations.dart'; import '../../../../models/documents/attribute.dart'; import '../../../quill/quill_controller.dart'; import '../../base_toolbar.dart'; @@ -17,12 +17,12 @@ enum _HeaderStyleOptions { class QuillToolbarSelectHeaderStyleButton extends StatefulWidget { const QuillToolbarSelectHeaderStyleButton({ required this.controller, - this.options = const QuillToolbarSelectHeaderStyleButtonsOptions(), + this.options = const QuillToolbarSelectHeaderStyleButtonOptions(), super.key, }); final QuillController controller; - final QuillToolbarSelectHeaderStyleButtonsOptions options; + final QuillToolbarSelectHeaderStyleButtonOptions options; @override State createState() => diff --git a/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_buttons.dart b/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_buttons.dart index 9f762aa0..f551f7a0 100644 --- a/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_buttons.dart +++ b/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_buttons.dart @@ -140,7 +140,7 @@ class QuillToolbarSelectHeaderStyleButtonsState iconTheme: iconTheme, tooltip: tooltip, ), - QuillToolbarSelectHeaderStyleButtonExtraOptions( + QuillToolbarSelectHeaderStyleButtonsExtraOptions( controller: controller, context: context, onPressed: () => _sharedOnPressed(attribute), diff --git a/lib/src/widgets/toolbar/simple_toolbar.dart b/lib/src/widgets/toolbar/simple_toolbar.dart index b9d09c88..7d3b7450 100644 --- a/lib/src/widgets/toolbar/simple_toolbar.dart +++ b/lib/src/widgets/toolbar/simple_toolbar.dart @@ -200,7 +200,7 @@ class QuillSimpleToolbar extends StatelessWidget QuillToolbarSelectHeaderStyleButton( controller: globalController, options: - toolbarConfigurations.buttonOptions.selectHeaderStyleButtons, + toolbarConfigurations.buttonOptions.selectHeaderStyleButton, ), if (configurations.showDividers && configurations.showHeaderStyle &&