dartlangeditorflutterflutter-appsflutter-examplesflutter-packageflutter-widgetquillquill-deltaquilljsreactquillrich-textrich-text-editorwysiwygwysiwyg-editor
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.4 KiB
53 lines
1.4 KiB
import 'package:flutter/material.dart'; |
|
|
|
import '../../utils/widgets.dart'; |
|
|
|
class QuillIconButton extends StatelessWidget { |
|
const QuillIconButton({ |
|
required this.onPressed, |
|
this.afterPressed, |
|
this.icon, |
|
this.size = 40, |
|
this.fillColor, |
|
this.hoverElevation = 1, |
|
this.highlightElevation = 1, |
|
this.borderRadius = 2, |
|
this.tooltip, |
|
Key? key, |
|
}) : super(key: key); |
|
|
|
final VoidCallback? onPressed; |
|
final VoidCallback? afterPressed; |
|
final Widget? icon; |
|
final double size; |
|
final Color? fillColor; |
|
final double hoverElevation; |
|
final double highlightElevation; |
|
final double borderRadius; |
|
final String? tooltip; |
|
|
|
@override |
|
Widget build(BuildContext context) { |
|
return ConstrainedBox( |
|
constraints: BoxConstraints.tightFor(width: size, height: size), |
|
child: UtilityWidgets.maybeTooltip( |
|
message: tooltip, |
|
child: RawMaterialButton( |
|
visualDensity: VisualDensity.compact, |
|
shape: RoundedRectangleBorder( |
|
borderRadius: BorderRadius.circular(borderRadius), |
|
), |
|
fillColor: fillColor, |
|
elevation: 0, |
|
hoverElevation: hoverElevation, |
|
highlightElevation: hoverElevation, |
|
onPressed: () { |
|
onPressed?.call(); |
|
afterPressed?.call(); |
|
}, |
|
child: icon, |
|
), |
|
), |
|
); |
|
} |
|
}
|
|
|