Files
PiliPlus/lib/common/widgets/button/toolbar_icon_button.dart
bggRGjQaUbCoE c491b5283b refa: dir
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-05-03 15:39:54 +08:00

41 lines
1.0 KiB
Dart

import 'package:flutter/material.dart';
class ToolbarIconButton extends StatelessWidget {
final VoidCallback? onPressed;
final Icon icon;
final bool selected;
final String? tooltip;
const ToolbarIconButton({
super.key,
this.onPressed,
required this.icon,
required this.selected,
this.tooltip,
});
@override
Widget build(BuildContext context) {
final ThemeData theme = Theme.of(context);
return SizedBox(
width: 36,
height: 36,
child: IconButton(
tooltip: tooltip,
onPressed: onPressed,
icon: icon,
highlightColor: theme.colorScheme.secondaryContainer,
color: selected
? theme.colorScheme.onSecondaryContainer
: theme.colorScheme.outline,
style: ButtonStyle(
padding: WidgetStateProperty.all(EdgeInsets.zero),
backgroundColor: WidgetStateProperty.resolveWith((states) {
return selected ? theme.colorScheme.secondaryContainer : null;
}),
),
),
);
}
}