Skip to content

Commit 6ca2ef0

Browse files
authored
Merge pull request ethanblake4#96 from Zverik/flutter_3_27
Updates for Flutter 3.27
2 parents 8456274 + 4c36791 commit 6ca2ef0

File tree

8 files changed

+301
-12
lines changed

8 files changed

+301
-12
lines changed

lib/flutter_eval.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import 'package:flutter_eval/src/material/list_tile.dart';
3333
import 'package:flutter_eval/src/material/page.dart';
3434
import 'package:flutter_eval/src/material/scaffold.dart';
3535
import 'package:flutter_eval/src/material/snack_bar.dart';
36+
import 'package:flutter_eval/src/material/switch_list_tile.dart';
3637
import 'package:flutter_eval/src/material/text_button.dart';
3738
import 'package:flutter_eval/src/material/text_field.dart';
3839
import 'package:flutter_eval/src/material/text_theme.dart';
@@ -187,6 +188,7 @@ class FlutterEvalPlugin implements EvalPlugin {
187188
$Card.$declaration,
188189
$Drawer.$declaration,
189190
$ListTile.$declaration,
191+
$SwitchListTile.$declaration,
190192
$Image.$declaration,
191193
$ImageProvider.$declaration,
192194
$NetworkImage.$declaration,
@@ -494,8 +496,14 @@ class FlutterEvalPlugin implements EvalPlugin {
494496
'Image.network', $Image.$network)
495497
..registerBridgeFunc('package:flutter/src/widgets/image.dart',
496498
'Image.asset', $Image.$asset)
499+
..registerBridgeFunc('package:flutter/src/widgets/image.dart',
500+
'Image.file', $Image.$file)
501+
..registerBridgeFunc('package:flutter/src/widgets/image.dart',
502+
'Image.memory', $Image.$memory)
497503
..registerBridgeFunc('package:flutter/src/material/list_tile.dart',
498504
'ListTile.', $ListTile.$new)
505+
..registerBridgeFunc('package:flutter/src/material/switch_list_tile.dart',
506+
'SwitchListTile.', $SwitchListTile.$new)
499507
..registerBridgeFunc('package:flutter/src/material/page.dart',
500508
'MaterialPageRoute.', $MaterialPageRoute.$new)
501509
..registerBridgeFunc('package:flutter/src/material/scaffold.dart',

lib/src/material.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export 'src/material/floating_action_button.dart';
1212
export 'src/material/icons.dart';
1313
export 'src/material/icon_button.dart';
1414
export 'src/material/list_tile.dart';
15+
export 'src/material/switch_list_tile.dart';
1516
export 'src/material/page.dart';
1617
export 'src/material/scaffold.dart';
1718
export 'src/material/snack_bar.dart';
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
import 'package:dart_eval/dart_eval_bridge.dart';
2+
import 'package:dart_eval/stdlib/core.dart';
3+
import 'package:flutter/material.dart';
4+
import 'package:flutter_eval/src/foundation/key.dart';
5+
import 'package:flutter_eval/src/painting/edge_insets.dart';
6+
import 'package:flutter_eval/src/sky_engine/ui/painting.dart';
7+
import 'package:flutter_eval/src/widgets/framework.dart';
8+
9+
class $SwitchListTile implements $Instance {
10+
static const $type = BridgeTypeRef(BridgeTypeSpec(
11+
'package:flutter/src/material/switch_list_tile.dart', 'SwitchListTile'));
12+
13+
static const $declaration = BridgeClassDef(
14+
BridgeClassType($type,
15+
isAbstract: false, $extends: $StatelessWidget$bridge.$type),
16+
constructors: {
17+
'': BridgeConstructorDef(BridgeFunctionDef(
18+
returns: BridgeTypeAnnotation($type),
19+
namedParams: [
20+
BridgeParameter('key', BridgeTypeAnnotation($Key.$type), true),
21+
BridgeParameter('value',
22+
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.bool)), false),
23+
BridgeParameter(
24+
'onChanged',
25+
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.function),
26+
nullable: true),
27+
false),
28+
BridgeParameter(
29+
'title', BridgeTypeAnnotation($Widget.$type), true),
30+
BridgeParameter(
31+
'subtitle', BridgeTypeAnnotation($Widget.$type), true),
32+
BridgeParameter('isThreeLine',
33+
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.bool)), true),
34+
BridgeParameter('dense',
35+
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.bool)), true),
36+
BridgeParameter('contentPadding',
37+
BridgeTypeAnnotation($EdgeInsetsGeometry.$type), true),
38+
BridgeParameter('selected',
39+
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.bool)), true),
40+
BridgeParameter(
41+
'activeColor', BridgeTypeAnnotation($Color.$type), true),
42+
BridgeParameter(
43+
'secondary', BridgeTypeAnnotation($Widget.$type), true),
44+
]))
45+
},
46+
wrap: true);
47+
48+
late final _superclass = $StatelessWidget.wrap($value);
49+
50+
$SwitchListTile.wrap(this.$value);
51+
52+
@override
53+
final SwitchListTile $value;
54+
55+
static $Value? $new(Runtime runtime, $Value? target, List<$Value?> args) {
56+
return $SwitchListTile.wrap(SwitchListTile(
57+
key: args[0]?.$value,
58+
value: args[1]!.$value,
59+
onChanged: args[2] == null
60+
? null
61+
: (value) =>
62+
(args[2] as EvalCallable).call(runtime, null, [$bool(value)]),
63+
title: args[3]?.$value,
64+
subtitle: args[4]?.$value,
65+
isThreeLine: args[5]?.$value ?? false,
66+
dense: args[6]?.$value ?? false,
67+
contentPadding: args[7]?.$value,
68+
selected: args[8]?.$value ?? false,
69+
activeColor: args[9]?.$value,
70+
secondary: args[10]?.$value,
71+
));
72+
}
73+
74+
@override
75+
$Value? $getProperty(Runtime runtime, String identifier) {
76+
return _superclass.$getProperty(runtime, identifier);
77+
}
78+
79+
@override
80+
get $reified => $value;
81+
82+
@override
83+
int $getRuntimeType(Runtime runtime) => runtime.lookupType($type.spec!);
84+
85+
@override
86+
void $setProperty(Runtime runtime, String identifier, $Value value) {
87+
return _superclass.$setProperty(runtime, identifier, value);
88+
}
89+
}

lib/src/sky_engine/ui/painting.dart

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import 'dart:ui';
2+
13
import 'package:dart_eval/dart_eval_bridge.dart';
24
import 'package:flutter/painting.dart';
35

@@ -14,6 +16,20 @@ class $Color implements Color, $Instance {
1416
BridgeParameter('value',
1517
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.int)), false)
1618
])),
19+
'from': BridgeConstructorDef(BridgeFunctionDef(
20+
returns: BridgeTypeAnnotation($type),
21+
namedParams: [
22+
BridgeParameter('alpha',
23+
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.int)), false),
24+
BridgeParameter('red',
25+
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.int)), false),
26+
BridgeParameter('green',
27+
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.int)), false),
28+
BridgeParameter('blue',
29+
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.int)), false),
30+
BridgeParameter(
31+
'colorSpace', BridgeTypeAnnotation($ColorSpace.$type), true)
32+
])),
1733
'fromARGB': BridgeConstructorDef(
1834
BridgeFunctionDef(returns: BridgeTypeAnnotation($type), params: [
1935
BridgeParameter(
@@ -37,6 +53,17 @@ class $Color implements Color, $Instance {
3753
'o', BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.int)), false)
3854
]))
3955
},
56+
fields: {
57+
'a': BridgeFieldDef(
58+
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.double))),
59+
'r': BridgeFieldDef(
60+
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.double))),
61+
'g': BridgeFieldDef(
62+
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.double))),
63+
'b': BridgeFieldDef(
64+
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.double))),
65+
'colorSpace': BridgeFieldDef(BridgeTypeAnnotation($ColorSpace.$type))
66+
},
4067
wrap: true);
4168

4269
/// Wrap a [Color] in an [$Color]
@@ -65,6 +92,21 @@ class $Color implements Color, $Instance {
6592
throw UnimplementedError();
6693
}
6794

95+
@override
96+
double get a => $value.a;
97+
98+
@override
99+
double get r => $value.r;
100+
101+
@override
102+
double get g => $value.g;
103+
104+
@override
105+
double get b => $value.b;
106+
107+
@override
108+
ColorSpace get colorSpace => $value.colorSpace;
109+
68110
@override
69111
int get alpha => $value.alpha;
70112

@@ -100,6 +142,21 @@ class $Color implements Color, $Instance {
100142

101143
@override
102144
Color withRed(int r) => $value.withRed(r);
145+
146+
@override
147+
Color withValues(
148+
{double? alpha,
149+
double? red,
150+
double? green,
151+
double? blue,
152+
ColorSpace? colorSpace}) =>
153+
$value.withValues(
154+
alpha: alpha,
155+
red: red,
156+
green: green,
157+
blue: blue,
158+
colorSpace: colorSpace,
159+
);
103160
}
104161

105162
/// dart_eval wrapper for [Clip]
@@ -144,3 +201,35 @@ class $Clip implements $Instance {
144201
throw UnimplementedError();
145202
}
146203
}
204+
205+
class $ColorSpace implements $Instance {
206+
static const $type = BridgeTypeRef(BridgeTypeSpec('dart:ui', 'ColorSpace'));
207+
208+
static const $declaration = BridgeEnumDef($type,
209+
values: ['sRGB', 'extendedSRGB', 'displayP3'], fields: {});
210+
211+
static final $values = ColorSpace.values
212+
.asNameMap()
213+
.map((key, value) => MapEntry(key, $ColorSpace.wrap(value)));
214+
215+
const $ColorSpace.wrap(this.$value);
216+
217+
@override
218+
final ColorSpace $value;
219+
220+
@override
221+
ColorSpace get $reified => $value;
222+
223+
@override
224+
$Value? $getProperty(Runtime runtime, String identifier) {
225+
throw UnimplementedError();
226+
}
227+
228+
@override
229+
int $getRuntimeType(Runtime runtime) => runtime.lookupType($type.spec!);
230+
231+
@override
232+
void $setProperty(Runtime runtime, String identifier, $Value value) {
233+
throw UnimplementedError();
234+
}
235+
}

lib/src/widgets/container.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,11 +178,13 @@ class $Container implements Container, $Instance {
178178
String toStringDeep(
179179
{String prefixLineOne = '',
180180
String? prefixOtherLines,
181-
DiagnosticLevel minLevel = DiagnosticLevel.debug}) =>
181+
DiagnosticLevel minLevel = DiagnosticLevel.debug,
182+
int wrapWidth = 65}) =>
182183
$value.toStringDeep(
183184
prefixLineOne: prefixLineOne,
184185
prefixOtherLines: prefixOtherLines,
185-
minLevel: minLevel);
186+
minLevel: minLevel,
187+
wrapWidth: wrapWidth);
186188

187189
@override
188190
String toStringShallow(

lib/src/widgets/framework.dart

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,13 @@ class $Widget implements Widget, $Instance {
7171
String toStringDeep(
7272
{String prefixLineOne = '',
7373
String? prefixOtherLines,
74-
DiagnosticLevel minLevel = DiagnosticLevel.debug}) =>
74+
DiagnosticLevel minLevel = DiagnosticLevel.debug,
75+
int wrapWidth = 65}) =>
7576
$value.toStringDeep(
7677
prefixLineOne: prefixLineOne,
7778
prefixOtherLines: prefixOtherLines,
78-
minLevel: minLevel);
79+
minLevel: minLevel,
80+
wrapWidth: wrapWidth);
7981

8082
@override
8183
String toStringShallow(
@@ -146,11 +148,13 @@ class $StatelessWidget implements StatelessWidget, $Instance {
146148
String toStringDeep(
147149
{String prefixLineOne = '',
148150
String? prefixOtherLines,
149-
DiagnosticLevel minLevel = DiagnosticLevel.debug}) =>
151+
DiagnosticLevel minLevel = DiagnosticLevel.debug,
152+
int wrapWidth = 65}) =>
150153
$value.toStringDeep(
151154
prefixLineOne: prefixLineOne,
152155
prefixOtherLines: prefixOtherLines,
153-
minLevel: minLevel);
156+
minLevel: minLevel,
157+
wrapWidth: wrapWidth);
154158

155159
@override
156160
String toStringShallow(
@@ -259,11 +263,13 @@ class $StatelessWidget$bridge extends StatelessWidget
259263
String toStringDeep(
260264
{String prefixLineOne = '',
261265
String? prefixOtherLines,
262-
DiagnosticLevel minLevel = DiagnosticLevel.debug}) =>
266+
DiagnosticLevel minLevel = DiagnosticLevel.debug,
267+
int wrapWidth = 65}) =>
263268
$_invoke('toStringDeep', [
264269
$String(prefixLineOne),
265270
prefixOtherLines == null ? const $null() : $String(prefixOtherLines),
266-
$DiagnosticLevel.wrap(minLevel)
271+
$DiagnosticLevel.wrap(minLevel),
272+
$int(wrapWidth)
267273
]);
268274

269275
@override

0 commit comments

Comments
 (0)