diff --git a/AUTHORS b/AUTHORS index fb6ebe35ed..04d14ccf3d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -69,3 +69,4 @@ Terrence Addison Tandijono(flotilla) YeungKC Nobuhiro Tabuki nt4f04uNd +Anurag Roy diff --git a/packages/flutter/lib/src/material/chip.dart b/packages/flutter/lib/src/material/chip.dart index d274115343..73a0be1845 100644 --- a/packages/flutter/lib/src/material/chip.dart +++ b/packages/flutter/lib/src/material/chip.dart @@ -258,7 +258,15 @@ abstract class DeletableChipAttributes { /// [IconThemeData.color]. Color? get deleteIconColor; + /// Whether to use a tooltip on the chip's delete button showing the + /// [deleteButtonTooltipMessage]. + /// + /// Must not be null. Defaults to true. + bool get useDeleteButtonTooltip; + /// The message to be used for the chip's delete button tooltip. + /// + /// This will be shown only if [useDeleteButtonTooltip] is true. String? get deleteButtonTooltipMessage; } @@ -566,6 +574,7 @@ class Chip extends StatelessWidget implements ChipAttributes, DeletableChipAttri this.deleteIcon, this.onDeleted, this.deleteIconColor, + this.useDeleteButtonTooltip = true, this.deleteButtonTooltipMessage, this.shape, this.clipBehavior = Clip.none, @@ -581,6 +590,7 @@ class Chip extends StatelessWidget implements ChipAttributes, DeletableChipAttri assert(autofocus != null), assert(clipBehavior != null), assert(elevation == null || elevation >= 0.0), + assert(useDeleteButtonTooltip != null), super(key: key); @override @@ -612,6 +622,8 @@ class Chip extends StatelessWidget implements ChipAttributes, DeletableChipAttri @override final Color? deleteIconColor; @override + final bool useDeleteButtonTooltip; + @override final String? deleteButtonTooltipMessage; @override final MaterialTapTargetSize? materialTapTargetSize; @@ -631,6 +643,7 @@ class Chip extends StatelessWidget implements ChipAttributes, DeletableChipAttri deleteIcon: deleteIcon, onDeleted: onDeleted, deleteIconColor: deleteIconColor, + useDeleteButtonTooltip: useDeleteButtonTooltip, deleteButtonTooltipMessage: deleteButtonTooltipMessage, tapEnabled: false, shape: shape, @@ -722,6 +735,7 @@ class InputChip extends StatelessWidget this.deleteIcon, this.onDeleted, this.deleteIconColor, + this.useDeleteButtonTooltip = true, this.deleteButtonTooltipMessage, this.onPressed, this.pressElevation, @@ -749,6 +763,7 @@ class InputChip extends StatelessWidget assert(autofocus != null), assert(pressElevation == null || pressElevation >= 0.0), assert(elevation == null || elevation >= 0.0), + assert(useDeleteButtonTooltip != null), super(key: key); @override @@ -772,6 +787,8 @@ class InputChip extends StatelessWidget @override final Color? deleteIconColor; @override + final bool useDeleteButtonTooltip; + @override final String? deleteButtonTooltipMessage; @override final VoidCallback? onPressed; @@ -823,6 +840,7 @@ class InputChip extends StatelessWidget deleteIcon: deleteIcon, onDeleted: onDeleted, deleteIconColor: deleteIconColor, + useDeleteButtonTooltip: useDeleteButtonTooltip, deleteButtonTooltipMessage: deleteButtonTooltipMessage, onSelected: onSelected, onPressed: onPressed, @@ -1448,6 +1466,7 @@ class RawChip extends StatefulWidget Widget? deleteIcon, this.onDeleted, this.deleteIconColor, + this.useDeleteButtonTooltip = true, this.deleteButtonTooltipMessage, this.onPressed, this.onSelected, @@ -1477,6 +1496,7 @@ class RawChip extends StatefulWidget assert(autofocus != null), assert(pressElevation == null || pressElevation >= 0.0), assert(elevation == null || elevation >= 0.0), + assert(useDeleteButtonTooltip != null), deleteIcon = deleteIcon ?? _kDefaultDeleteIcon, super(key: key); @@ -1495,6 +1515,8 @@ class RawChip extends StatefulWidget @override final Color? deleteIconColor; @override + final bool useDeleteButtonTooltip; + @override final String? deleteButtonTooltipMessage; @override final ValueChanged? onSelected; @@ -1767,6 +1789,9 @@ class _RawChipState extends State with TickerProviderStateMixin