diff --git a/lib/src/widgets/toolbar.dart b/lib/src/widgets/toolbar.dart index 715941c8..b901f74f 100644 --- a/lib/src/widgets/toolbar.dart +++ b/lib/src/widgets/toolbar.dart @@ -22,6 +22,7 @@ import 'toolbar/link_style_button.dart'; import 'toolbar/quill_font_family_button.dart'; import 'toolbar/quill_font_size_button.dart'; import 'toolbar/quill_icon_button.dart'; +import 'toolbar/search_button.dart'; import 'toolbar/select_alignment_button.dart'; import 'toolbar/select_header_style_button.dart'; import 'toolbar/toggle_check_list_button.dart'; @@ -110,6 +111,7 @@ class QuillToolbar extends StatelessWidget implements PreferredSizeWidget { bool showVideoButton = true, bool showCameraButton = true, bool showDirection = false, + bool showSearchButton = true, OnImagePickCallback? onImagePickCallback, OnVideoPickCallback? onVideoPickCallback, MediaPickSettingSelector? mediaPickSettingSelector, @@ -158,7 +160,7 @@ class QuillToolbar extends StatelessWidget implements PreferredSizeWidget { showHeaderStyle, showListNumbers || showListBullets || showListCheck || showCodeBlock, showQuote || showIndent, - showLink + showLink || showSearchButton ]; //default font size values @@ -494,6 +496,14 @@ class QuillToolbar extends StatelessWidget implements PreferredSizeWidget { iconTheme: iconTheme, dialogTheme: dialogTheme, ), + if (showSearchButton) + SearchButton( + icon: Icons.search, + iconSize: toolbarIconSize, + controller: controller, + iconTheme: iconTheme, + dialogTheme: dialogTheme, + ), if (customButtons.isNotEmpty) if (showDividers) VerticalDivider( diff --git a/lib/src/widgets/toolbar/search_button.dart b/lib/src/widgets/toolbar/search_button.dart new file mode 100644 index 00000000..a3e912c8 --- /dev/null +++ b/lib/src/widgets/toolbar/search_button.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; + +import '../../models/themes/quill_dialog_theme.dart'; +import '../../models/themes/quill_icon_theme.dart'; +import '../controller.dart'; +import '../toolbar.dart'; + +class SearchButton extends StatelessWidget { + const SearchButton({ + required this.icon, + required this.controller, + this.iconSize = kDefaultIconSize, + this.iconTheme, + this.dialogTheme, + Key? key, + }) : super(key: key); + + final IconData icon; + final double iconSize; + + final QuillController controller; + + final QuillIconTheme? iconTheme; + + final QuillDialogTheme? dialogTheme; + + @override + Widget build(BuildContext context) { + // TODO: implement floating search bar + return const SizedBox(); + } +}