37 lines
1.1 KiB
Dart
37 lines
1.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
/// A widget that represents a toggle icon.
|
|
class ToggleIcon extends StatelessWidget {
|
|
/// Creates a [ToggleIcon].
|
|
///
|
|
/// - [value] parameter specifies whether the icon is currently toggled on or off.
|
|
/// - [onPressed] parameter is a callback function that is called when the icon is pressed.
|
|
/// - [onIcon] parameter specifies the widget to display when the icon is toggled on.
|
|
/// - [offIcon] parameter specifies the widget to display when the icon is toggled off.
|
|
const ToggleIcon({
|
|
super.key,
|
|
required this.value,
|
|
required this.onPressed,
|
|
required this.onIcon,
|
|
required this.offIcon,
|
|
});
|
|
|
|
/// Whether the icon is currently toggled on or off.
|
|
final bool value;
|
|
|
|
/// A callback function that is called when the icon is pressed.
|
|
final Function() onPressed;
|
|
|
|
/// The widget to display when the icon is toggled on.
|
|
final Widget onIcon;
|
|
|
|
/// The widget to display when the icon is toggled off.
|
|
final Widget offIcon;
|
|
|
|
@override
|
|
Widget build(BuildContext context) => IconButton(
|
|
onPressed: onPressed,
|
|
icon: value ? onIcon : offIcon,
|
|
);
|
|
}
|