Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
a490a6a1
Unverified
Commit
a490a6a1
authored
Aug 31, 2022
by
Qun Cheng
Committed by
GitHub
Aug 31, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Migrated `Checkbox` to Material 3 Colors (#110537)
parent
c213fd9b
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
550 additions
and
125 deletions
+550
-125
gen_defaults.dart
dev/tools/gen_defaults/bin/gen_defaults.dart
+2
-0
checkbox_template.dart
dev/tools/gen_defaults/lib/checkbox_template.dart
+119
-0
checkbox.dart
packages/flutter/lib/src/material/checkbox.dart
+200
-32
checkbox_test.dart
packages/flutter/test/material/checkbox_test.dart
+229
-93
No files found.
dev/tools/gen_defaults/bin/gen_defaults.dart
View file @
a490a6a1
...
...
@@ -20,6 +20,7 @@ import 'dart:io';
import
'package:gen_defaults/app_bar_template.dart'
;
import
'package:gen_defaults/button_template.dart'
;
import
'package:gen_defaults/card_template.dart'
;
import
'package:gen_defaults/checkbox_template.dart'
;
import
'package:gen_defaults/chip_action_template.dart'
;
import
'package:gen_defaults/chip_filter_template.dart'
;
import
'package:gen_defaults/chip_input_template.dart'
;
...
...
@@ -108,6 +109,7 @@ Future<void> main(List<String> args) async {
ButtonTemplate
(
'md.comp.outlined-button'
,
'OutlinedButton'
,
'
$materialLib
/outlined_button.dart'
,
tokens
).
updateFile
();
ButtonTemplate
(
'md.comp.text-button'
,
'TextButton'
,
'
$materialLib
/text_button.dart'
,
tokens
).
updateFile
();
CardTemplate
(
'Card'
,
'
$materialLib
/card.dart'
,
tokens
).
updateFile
();
CheckboxTemplate
(
'Checkbox'
,
'
$materialLib
/checkbox.dart'
,
tokens
).
updateFile
();
ChipActionTemplate
(
'ActionChip'
,
'
$materialLib
/chip_action.dart'
,
tokens
).
updateFile
();
ChipFilterTemplate
(
'FilterChip'
,
'
$materialLib
/chip_filter.dart'
,
tokens
).
updateFile
();
ChipFilterTemplate
(
'FilterChip'
,
'
$materialLib
/chip_choice.dart'
,
tokens
).
updateFile
();
...
...
dev/tools/gen_defaults/lib/checkbox_template.dart
0 → 100644
View file @
a490a6a1
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'template.dart'
;
class
CheckboxTemplate
extends
TokenTemplate
{
const
CheckboxTemplate
(
super
.
blockName
,
super
.
fileName
,
super
.
tokens
,
{
super
.
colorSchemePrefix
=
'_colors.'
,
});
@override
String
generate
()
=>
'''
class _
${blockName}
DefaultsM3 extends CheckboxThemeData {
_
${blockName}
DefaultsM3(BuildContext context)
: _theme = Theme.of(context),
_colors = Theme.of(context).colorScheme;
final ThemeData _theme;
final ColorScheme _colors;
@override
MaterialStateProperty<Color> get fillColor {
return MaterialStateProperty.resolveWith((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) {
if (states.contains(MaterialState.selected)) {
return
${componentColor('md.comp.checkbox.selected.disabled.container')}
;
}
return
${componentColor('md.comp.checkbox.unselected.disabled.outline')}
.withOpacity(
${opacity('md.comp.checkbox.unselected.disabled.container.opacity')}
);
}
if (states.contains(MaterialState.selected)) {
if (states.contains(MaterialState.pressed)) {
return
${componentColor('md.comp.checkbox.selected.pressed.container')}
;
}
if (states.contains(MaterialState.hovered)) {
return
${componentColor('md.comp.checkbox.selected.hover.container')}
;
}
if (states.contains(MaterialState.focused)) {
return
${componentColor('md.comp.checkbox.selected.focus.container')}
;
}
return
${componentColor('md.comp.checkbox.selected.container')}
;
}
if (states.contains(MaterialState.pressed)) {
return
${componentColor('md.comp.checkbox.unselected.pressed.outline')}
;
}
if (states.contains(MaterialState.hovered)) {
return
${componentColor('md.comp.checkbox.unselected.hover.outline')}
;
}
if (states.contains(MaterialState.focused)) {
return
${componentColor('md.comp.checkbox.unselected.focus.outline')}
;
}
return
${componentColor('md.comp.checkbox.unselected.outline')}
;
});
}
@override
MaterialStateProperty<Color> get checkColor {
return MaterialStateProperty.resolveWith((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) {
if (states.contains(MaterialState.selected)) {
return
${componentColor('md.comp.checkbox.selected.disabled.icon')}
;
}
return Colors.transparent; // No icons available when the checkbox is unselected.
}
if (states.contains(MaterialState.selected)) {
if (states.contains(MaterialState.pressed)) {
return
${componentColor('md.comp.checkbox.selected.pressed.icon')}
;
}
if (states.contains(MaterialState.hovered)) {
return
${componentColor('md.comp.checkbox.selected.hover.icon')}
;
}
if (states.contains(MaterialState.focused)) {
return
${componentColor('md.comp.checkbox.selected.focus.icon')}
;
}
return
${componentColor('md.comp.checkbox.selected.icon')}
;
}
return Colors.transparent; // No icons available when the checkbox is unselected.
});
}
@override
MaterialStateProperty<Color> get overlayColor {
return MaterialStateProperty.resolveWith((Set<MaterialState> states) {
if (states.contains(MaterialState.selected)) {
if (states.contains(MaterialState.pressed)) {
return
${componentColor('md.comp.checkbox.selected.pressed.state-layer')}
;
}
if (states.contains(MaterialState.hovered)) {
return
${componentColor('md.comp.checkbox.selected.hover.state-layer')}
;
}
if (states.contains(MaterialState.focused)) {
return
${componentColor('md.comp.checkbox.selected.focus.state-layer')}
;
}
return Colors.transparent;
}
if (states.contains(MaterialState.pressed)) {
return
${componentColor('md.comp.checkbox.unselected.pressed.state-layer')}
;
}
if (states.contains(MaterialState.hovered)) {
return
${componentColor('md.comp.checkbox.unselected.hover.state-layer')}
;
}
if (states.contains(MaterialState.focused)) {
return
${componentColor('md.comp.checkbox.unselected.focus.state-layer')}
;
}
return Colors.transparent;
});
}
@override
double get splashRadius =>
${tokens['md.comp.checkbox.state-layer.size']}
/ 2;
@override
MaterialTapTargetSize get materialTapTargetSize => _theme.materialTapTargetSize;
@override
VisualDensity get visualDensity => _theme.visualDensity;
}
'''
;
}
packages/flutter/lib/src/material/checkbox.dart
View file @
a490a6a1
This diff is collapsed.
Click to expand it.
packages/flutter/test/material/checkbox_test.dart
View file @
a490a6a1
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment