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: (state) => defaultDecoration.copyWith(
      color: ButtonThemeData.checkedInputColor(style, state),
      border: Border.all(style: BorderStyle.none),
    ),
    uncheckedDecoration: (state) {
      return defaultDecoration.copyWith(
        color: ButtonThemeData.uncheckedInputColor(style, state),
        border: Border.all(
          width: 0.8,
          color: state.isNone || state.isFocused
              ? style.inactiveColor
              : ButtonThemeData.uncheckedInputColor(style, state),
        ),
      );
    },
    padding: EdgeInsets.symmetric(horizontal: 3, vertical: 4),
    margin: EdgeInsets.all(4),
    animationDuration: style.fastAnimationDuration,
    animationCurve: style.animationCurve,
    checkedThumbDecoration: (_) => defaultThumbDecoration.copyWith(color: () {
      if (style.brightness == Brightness.light)
        return style.activeColor;
      else
        return style.inactiveColor;
    }()),
    uncheckedThumbDecoration: (_) => defaultThumbDecoration.copyWith(
      color: style.inactiveColor,
    ),
  );
}