ToggleSwitchThemeData.standard constructor

ToggleSwitchThemeData.standard(
  1. ThemeData style
)

Implementation

factory ToggleSwitchThemeData.standard(ThemeData style) {
  final defaultThumbDecoration = BoxDecoration(shape: BoxShape.circle);

  final defaultDecoration = BoxDecoration(
    borderRadius: BorderRadius.circular(30),
  );

  return ToggleSwitchThemeData(
    cursor: style.inputMouseCursor,
    checkedDecoration: ButtonState.resolveWith((states) {
      return defaultDecoration.copyWith(
        color: ButtonThemeData.checkedInputColor(style, states),
        border: Border.all(style: BorderStyle.none),
      );
    }),
    uncheckedDecoration: ButtonState.resolveWith((states) {
      return defaultDecoration.copyWith(
        color: ButtonThemeData.uncheckedInputColor(style, states),
        border: Border.all(
          width: 0.8,
          color: states.isNone || states.isFocused
              ? style.inactiveColor
              : ButtonThemeData.uncheckedInputColor(style, states),
        ),
      );
    }),
    padding: const EdgeInsets.symmetric(horizontal: 3, vertical: 4),
    margin: const EdgeInsets.all(4),
    animationDuration: style.fastAnimationDuration,
    animationCurve: style.animationCurve,
    checkedThumbDecoration: ButtonState.resolveWith((states) {
      return defaultThumbDecoration.copyWith(
        color: states.isDisabled
            ? ButtonThemeData.checkedInputColor(
                style,
                states,
              ).basedOnLuminance()
            : style.brightness.isLight
                ? style.activeColor
                : style.inactiveColor,
      );
    }),
    uncheckedThumbDecoration: ButtonState.resolveWith((states) {
      return defaultThumbDecoration.copyWith(
        color: states.isDisabled
            ? ButtonThemeData.uncheckedInputColor(
                style,
                states,
              ).basedOnLuminance()
            : style.inactiveColor,
      );
    }),
  );
}