Time picker precursors (#116450)

* Make some minor changes in preparation for updating the Time Picker to M3

* Revert OutlineInputBorder.borderRadius type change

* Revert more OutlineInputBorder.borderRadius changes.
This commit is contained in:
Greg Spencer 2022-12-06 18:07:25 -08:00 committed by GitHub
parent fb9133b881
commit 31719941c0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 60 additions and 44 deletions

View File

@ -67,10 +67,6 @@ class _${blockName}DefaultsM3 extends SnackBarThemeData {
@override
bool get showCloseIcon => false;
@override
Color get iconColor => _colors.onInverseSurface;
}
''';
}

View File

@ -26,7 +26,7 @@ abstract class TokenTemplate {
/// Defaults to 'Theme.of(context).colorScheme.'
final String colorSchemePrefix;
/// Optional prefix prepended to text style definitians.
/// Optional prefix prepended to text style definitions.
///
/// Defaults to 'Theme.of(context).textTheme.'
final String textThemePrefix;
@ -145,13 +145,17 @@ abstract class TokenTemplate {
}
/// Generate the opacity value for the given token.
String? opacity(String token) {
final dynamic value = tokens[token];
String? opacity(String token) => _numToString(tokens[token]);
String? _numToString(Object? value, [int? digits]) {
if (value == null) {
return null;
}
if (value is double) {
return value.toString();
if (value is num) {
if (value == double.infinity) {
return 'double.infinity';
}
return digits == null ? value.toString() : value.toStringAsFixed(digits);
}
return tokens[value].toString();
}
@ -161,6 +165,24 @@ abstract class TokenTemplate {
return tokens[tokens['$componentToken.elevation']!]!.toString();
}
/// Generate a size value for the given component token.
///
/// Non-square sizes are specified as width and height.
String size(String componentToken) {
final String sizeToken = '$componentToken.size';
if (!tokens.containsKey(sizeToken)) {
final String widthToken = '$componentToken.width';
final String heightToken = '$componentToken.height';
if (!tokens.containsKey(widthToken) && !tokens.containsKey(heightToken)) {
throw Exception('Unable to find width, height, or size tokens for $componentToken');
}
final String? width = _numToString(tokens.containsKey(widthToken) ? tokens[widthToken]! as num : double.infinity, 0);
final String? height = _numToString(tokens.containsKey(heightToken) ? tokens[heightToken]! as num : double.infinity, 0);
return 'const Size($width, $height)';
}
return 'const Size.square(${_numToString(tokens[sizeToken])})';
}
/// Generate a shape constant for the given component token.
///
/// Currently supports family:

View File

@ -409,7 +409,6 @@ abstract class MaterialStateOutlinedBorder extends OutlinedBorder implements Mat
OutlinedBorder? resolve(Set<MaterialState> states);
}
/// Defines a [TextStyle] that is also a [MaterialStateProperty].
///
/// This class exists to enable widgets with [TextStyle] valued properties

View File

@ -3572,6 +3572,7 @@ class _MenuBarDefaultsM3 extends MenuStyle {
shape: const MaterialStatePropertyAll<OutlinedBorder>(_defaultMenuBorder),
alignment: AlignmentDirectional.bottomStart,
);
static const RoundedRectangleBorder _defaultMenuBorder =
RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(4.0)));
@ -3614,6 +3615,7 @@ class _MenuButtonDefaultsM3 extends ButtonStyle {
enableFeedback: true,
alignment: AlignmentDirectional.centerStart,
);
final BuildContext context;
late final ColorScheme _colors = Theme.of(context).colorScheme;
@ -3756,6 +3758,7 @@ class _MenuDefaultsM3 extends MenuStyle {
shape: const MaterialStatePropertyAll<OutlinedBorder>(_defaultMenuBorder),
alignment: AlignmentDirectional.topEnd,
);
static const RoundedRectangleBorder _defaultMenuBorder =
RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(4.0)));

View File

@ -883,10 +883,6 @@ class _SnackbarDefaultsM3 extends SnackBarThemeData {
@override
bool get showCloseIcon => false;
@override
Color get closeIconColor => _colors.onInverseSurface;
}
// END GENERATED TOKEN PROPERTIES - Snackbar

View File

@ -283,8 +283,8 @@ void main() {
final RenderObject renderObject = tester.renderObject(
find.descendant(
of: find.byKey(const Key('parent')),
matching: find.byType(CustomPaint),
).first,
matching: find.byKey(const ValueKey<String>('time-picker-dial')),
),
);
expect(renderObject.debugNeedsPaint, isTrue);
});