From 463ecaba6ee2ddcee5511049da2a4345bc95de42 Mon Sep 17 00:00:00 2001 From: Pramod <55017687+pramod51@users.noreply.github.com> Date: Mon, 19 Jun 2023 10:17:20 +0530 Subject: [PATCH] added custom button widget in toolbar --- .../models/themes/quill_custom_button.dart | 5 +++- lib/src/widgets/toolbar.dart | 28 ++++++++++++------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/lib/src/models/themes/quill_custom_button.dart b/lib/src/models/themes/quill_custom_button.dart index 0dbac618..aadd28e8 100644 --- a/lib/src/models/themes/quill_custom_button.dart +++ b/lib/src/models/themes/quill_custom_button.dart @@ -1,11 +1,14 @@ import 'package:flutter/material.dart'; class QuillCustomButton { - const QuillCustomButton({this.icon, this.onTap}); + const QuillCustomButton({this.icon, this.onTap, this.child}); ///The icon widget final IconData? icon; ///The function when the icon is tapped final VoidCallback? onTap; + + ///The customButton placeholder + final Widget? child; } diff --git a/lib/src/widgets/toolbar.dart b/lib/src/widgets/toolbar.dart index 9f11eaf5..0889596d 100644 --- a/lib/src/widgets/toolbar.dart +++ b/lib/src/widgets/toolbar.dart @@ -485,16 +485,24 @@ class QuillToolbar extends StatelessWidget implements PreferredSizeWidget { endIndent: 12, color: Colors.grey.shade400, ), - for (var customButton in customButtons) - QuillIconButton( - highlightElevation: 0, - hoverElevation: 0, - size: toolbarIconSize * kIconButtonFactor, - icon: Icon(customButton.icon, size: toolbarIconSize), - borderRadius: iconTheme?.borderRadius ?? 2, - onPressed: customButton.onTap, - afterPressed: afterButtonPressed, - ), + for (var customButton in customButtons) ...[ + if (customButton.child != null) ...[ + InkWell( + onTap: customButton.onTap, + child: customButton.child, + ), + ] else ...[ + QuillIconButton( + highlightElevation: 0, + hoverElevation: 0, + size: toolbarIconSize * kIconButtonFactor, + icon: Icon(customButton.icon, size: toolbarIconSize), + borderRadius: iconTheme?.borderRadius ?? 2, + onPressed: customButton.onTap, + afterPressed: afterButtonPressed, + ), + ], + ], ], ); }