Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
141 changes: 2 additions & 139 deletions packages/material_ui/lib/src/checkbox.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import 'debug.dart';
import 'theme.dart';
import 'theme_data.dart';

part 'generated/checkbox_defaults_m3.g.dart';

// Examples can assume:
// bool _throwShotAway = false;
// late StateSetter setState;
Expand Down Expand Up @@ -928,142 +930,3 @@ class _CheckboxDefaultsM2 extends CheckboxThemeData {
OutlinedBorder get shape =>
const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(1.0)));
}

// BEGIN GENERATED TOKEN PROPERTIES - Checkbox

// Do not edit by hand. The code between the "BEGIN GENERATED" and
// "END GENERATED" comments are generated from data in the Material
// Design token database by the script:
// dev/tools/gen_defaults/bin/gen_defaults.dart.

// dart format off
class _CheckboxDefaultsM3 extends CheckboxThemeData {
_CheckboxDefaultsM3(BuildContext context)
: _theme = Theme.of(context),
_colors = Theme.of(context).colorScheme;

final ThemeData _theme;
final ColorScheme _colors;

@override
WidgetStateBorderSide? get side {
return WidgetStateBorderSide.resolveWith((Set<WidgetState> states) {
if (states.contains(WidgetState.disabled)) {
if (states.contains(WidgetState.selected)) {
return const BorderSide(width: 2.0, color: Colors.transparent);
}
return BorderSide(width: 2.0, color: _colors.onSurface.withOpacity(0.38));
}
if (states.contains(WidgetState.selected)) {
return const BorderSide(width: 0.0, color: Colors.transparent);
}
if (states.contains(WidgetState.error)) {
return BorderSide(width: 2.0, color: _colors.error);
}
if (states.contains(WidgetState.pressed)) {
return BorderSide(width: 2.0, color: _colors.onSurface);
}
if (states.contains(WidgetState.hovered)) {
return BorderSide(width: 2.0, color: _colors.onSurface);
}
if (states.contains(WidgetState.focused)) {
return BorderSide(width: 2.0, color: _colors.onSurface);
}
return BorderSide(width: 2.0, color: _colors.onSurfaceVariant);
});
}

@override
WidgetStateProperty<Color> get fillColor {
return WidgetStateProperty.resolveWith((Set<WidgetState> states) {
if (states.contains(WidgetState.disabled)) {
if (states.contains(WidgetState.selected)) {
return _colors.onSurface.withOpacity(0.38);
}
return Colors.transparent;
}
if (states.contains(WidgetState.selected)) {
if (states.contains(WidgetState.error)) {
return _colors.error;
}
return _colors.primary;
}
return Colors.transparent;
});
}

@override
WidgetStateProperty<Color> get checkColor {
return WidgetStateProperty.resolveWith((Set<WidgetState> states) {
if (states.contains(WidgetState.disabled)) {
if (states.contains(WidgetState.selected)) {
return _colors.surface;
}
return Colors.transparent; // No icons available when the checkbox is unselected.
}
if (states.contains(WidgetState.selected)) {
if (states.contains(WidgetState.error)) {
return _colors.onError;
}
return _colors.onPrimary;
}
return Colors.transparent; // No icons available when the checkbox is unselected.
});
}

@override
WidgetStateProperty<Color> get overlayColor {
return WidgetStateProperty.resolveWith((Set<WidgetState> states) {
if (states.contains(WidgetState.error)) {
if (states.contains(WidgetState.pressed)) {
return _colors.error.withOpacity(0.1);
}
if (states.contains(WidgetState.hovered)) {
return _colors.error.withOpacity(0.08);
}
if (states.contains(WidgetState.focused)) {
return _colors.error.withOpacity(0.1);
}
}
if (states.contains(WidgetState.selected)) {
if (states.contains(WidgetState.pressed)) {
return _colors.onSurface.withOpacity(0.1);
}
if (states.contains(WidgetState.hovered)) {
return _colors.primary.withOpacity(0.08);
}
if (states.contains(WidgetState.focused)) {
return _colors.primary.withOpacity(0.1);
}
return Colors.transparent;
}
if (states.contains(WidgetState.pressed)) {
return _colors.primary.withOpacity(0.1);
}
if (states.contains(WidgetState.hovered)) {
return _colors.onSurface.withOpacity(0.08);
}
if (states.contains(WidgetState.focused)) {
return _colors.onSurface.withOpacity(0.1);
}
return Colors.transparent;
});
}

@override
double get splashRadius => 40.0 / 2;

@override
MaterialTapTargetSize get materialTapTargetSize => _theme.materialTapTargetSize;

@override
VisualDensity get visualDensity => VisualDensity.standard;

@override
OutlinedBorder get shape => const RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(2.0)),
);
}
// dart format on

// END GENERATED TOKEN PROPERTIES - Checkbox
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Do not edit by hand. The code is generated from data in the Material
// Design token database by the script:
// packages/material_ui/tool/gen_defaults/bin/gen_defaults.dart.
part of '../checkbox.dart';

class _CheckboxDefaultsM3 extends CheckboxThemeData {
_CheckboxDefaultsM3(BuildContext context)
: _theme = Theme.of(context),
Expand Down
4 changes: 2 additions & 2 deletions packages/material_ui/tool/gen_defaults/bin/gen_defaults.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ import '../templates/banner_template.dart';
import '../templates/bottom_sheet_template.dart';
import '../templates/button_template.dart';
import '../templates/card_template.dart';
import '../templates/checkbox_template.dart';

// import '../templates/checkbox_template.dart';
// import '../templates/chip_template.dart';
// import '../templates/color_scheme_template.dart';
// import '../templates/date_picker_template.dart';
Expand Down Expand Up @@ -78,7 +78,7 @@ Future<void> main(List<String> args) async {
const CardTemplateM3('Card').generateFile(verbose: verbose);
const CardTemplateM3('Filled Card').generateFile(verbose: verbose);
const CardTemplateM3('Outlined Card').generateFile(verbose: verbose);
// const CheckboxTemplateM3().generateFile(verbose: verbose);
const CheckboxTemplateM3().generateFile(verbose: verbose);
// const ChipTemplateM3().generateFile(verbose: verbose);
// const ColorSchemeTemplateM3().generateFile(verbose: verbose);
// const DatePickerTemplateM3().generateFile(verbose: verbose);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
// Copyright 2013 The Flutter Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import '../data/checkbox.dart';
import 'template.dart';

class CheckboxTemplateM3 extends TokenTemplateM3 {
const CheckboxTemplateM3();

@override
String get name => 'Checkbox';

@override
String get parentFilePath => 'checkbox.dart';

String _borderSide(double width, String color, {bool isConst = false}) {
return '${isConst ? 'const ' : ''}BorderSide(width: ${number(width)}, color: $color)';
}

@override
String generateContents(String className) =>
'''
class $className extends CheckboxThemeData {
$className(BuildContext context)
: _theme = Theme.of(context),
_colors = Theme.of(context).colorScheme;

final ThemeData _theme;
final ColorScheme _colors;

@override
WidgetStateBorderSide? get side {
return WidgetStateBorderSide.resolveWith((Set<WidgetState> states) {
if (states.contains(WidgetState.disabled)) {
if (states.contains(WidgetState.selected)) {
return ${_borderSide(TokenCheckbox.unselectedDisabledOutlineWidth, 'Colors.transparent', isConst: true)};
}
return ${_borderSide(TokenCheckbox.unselectedDisabledOutlineWidth, colorWithOpacity(TokenCheckbox.unselectedDisabledOutlineColor, TokenCheckbox.unselectedDisabledContainerOpacity, '_colors'))};
}
if (states.contains(WidgetState.selected)) {
return ${_borderSide(TokenCheckbox.selectedOutlineWidth, 'Colors.transparent', isConst: true)};
}
if (states.contains(WidgetState.error)) {
return ${_borderSide(TokenCheckbox.unselectedOutlineWidth, color(TokenCheckbox.unselectedErrorOutlineColor, '_colors'))};
}
if (states.contains(WidgetState.pressed)) {
return ${_borderSide(TokenCheckbox.unselectedPressedOutlineWidth, color(TokenCheckbox.unselectedPressedOutlineColor, '_colors'))};
}
if (states.contains(WidgetState.hovered)) {
return ${_borderSide(TokenCheckbox.unselectedHoverOutlineWidth, color(TokenCheckbox.unselectedHoverOutlineColor, '_colors'))};
}
if (states.contains(WidgetState.focused)) {
return ${_borderSide(TokenCheckbox.unselectedFocusOutlineWidth, color(TokenCheckbox.unselectedFocusOutlineColor, '_colors'))};
}
return ${_borderSide(TokenCheckbox.unselectedOutlineWidth, color(TokenCheckbox.unselectedOutlineColor, '_colors'))};
});
}

@override
WidgetStateProperty<Color> get fillColor {
return WidgetStateProperty.resolveWith((Set<WidgetState> states) {
if (states.contains(WidgetState.disabled)) {
if (states.contains(WidgetState.selected)) {
return ${colorWithOpacity(TokenCheckbox.selectedDisabledContainerColor, TokenCheckbox.selectedDisabledContainerOpacity, '_colors')};
}
return Colors.transparent;
}
if (states.contains(WidgetState.selected)) {
if (states.contains(WidgetState.error)) {
return ${color(TokenCheckbox.selectedErrorContainerColor, '_colors')};
}
return ${color(TokenCheckbox.selectedContainerColor, '_colors')};
}
return Colors.transparent;
});
}

@override
WidgetStateProperty<Color> get checkColor {
return WidgetStateProperty.resolveWith((Set<WidgetState> states) {
if (states.contains(WidgetState.disabled)) {
if (states.contains(WidgetState.selected)) {
return ${color(TokenCheckbox.selectedDisabledIconColor, '_colors')};
}
return Colors.transparent; // No icons available when the checkbox is unselected.
}
if (states.contains(WidgetState.selected)) {
if (states.contains(WidgetState.error)) {
return ${color(TokenCheckbox.selectedErrorIconColor, '_colors')};
}
return ${color(TokenCheckbox.selectedIconColor, '_colors')};
}
return Colors.transparent; // No icons available when the checkbox is unselected.
});
}

@override
WidgetStateProperty<Color> get overlayColor {
return WidgetStateProperty.resolveWith((Set<WidgetState> states) {
if (states.contains(WidgetState.error)) {
if (states.contains(WidgetState.pressed)) {
return ${colorWithOpacity(TokenCheckbox.errorPressedStateLayerColor, TokenCheckbox.errorPressedStateLayerOpacity, '_colors')};
}
if (states.contains(WidgetState.hovered)) {
return ${colorWithOpacity(TokenCheckbox.errorHoverStateLayerColor, TokenCheckbox.errorHoverStateLayerOpacity, '_colors')};
}
if (states.contains(WidgetState.focused)) {
return ${colorWithOpacity(TokenCheckbox.errorFocusStateLayerColor, TokenCheckbox.errorFocusStateLayerOpacity, '_colors')};
}
}
if (states.contains(WidgetState.selected)) {
if (states.contains(WidgetState.pressed)) {
return ${colorWithOpacity(TokenCheckbox.selectedPressedStateLayerColor, TokenCheckbox.selectedPressedStateLayerOpacity, '_colors')};
}
if (states.contains(WidgetState.hovered)) {
return ${colorWithOpacity(TokenCheckbox.selectedHoverStateLayerColor, TokenCheckbox.selectedHoverStateLayerOpacity, '_colors')};
}
if (states.contains(WidgetState.focused)) {
return ${colorWithOpacity(TokenCheckbox.selectedFocusStateLayerColor, TokenCheckbox.selectedFocusStateLayerOpacity, '_colors')};
}
return Colors.transparent;
}
if (states.contains(WidgetState.pressed)) {
return ${colorWithOpacity(TokenCheckbox.unselectedPressedStateLayerColor, TokenCheckbox.unselectedPressedStateLayerOpacity, '_colors')};
}
if (states.contains(WidgetState.hovered)) {
return ${colorWithOpacity(TokenCheckbox.unselectedHoverStateLayerColor, TokenCheckbox.unselectedHoverStateLayerOpacity, '_colors')};
}
if (states.contains(WidgetState.focused)) {
return ${colorWithOpacity(TokenCheckbox.unselectedFocusStateLayerColor, TokenCheckbox.unselectedFocusStateLayerOpacity, '_colors')};
}
return Colors.transparent;
});
}

@override
double get splashRadius => ${number(TokenCheckbox.stateLayerSize)} / 2;

@override
MaterialTapTargetSize get materialTapTargetSize => _theme.materialTapTargetSize;

@override
VisualDensity get visualDensity => VisualDensity.standard;

@override
OutlinedBorder get shape => ${shape(TokenCheckbox.containerShape)};
}
''';
}
Loading
Loading