Implementation
Widget getWeatherScene(WeatherScene weatherScene) {
switch (weatherScene) {
case WeatherScene.weatherEvery:
return const WrapperScene(
sizeCanvas: Size(350.0, 540.0),
isLeftCornerGradient: true,
colors: [
Color(0xff1976d2),
Color(0xffe1f5fe),
],
children: [
SunWidget(
sunConfig: SunConfig(
width: 360.0,
blurSigma: 13.0,
blurStyle: BlurStyle.solid,
isLeftLocation: true,
coreColor: Color(0xffff9800),
midColor: Color(0xffffee58),
outColor: Color(0xffffa726),
animMidMill: 1500,
animOutMill: 1500),
),
WindWidget(
windConfig: WindConfig(
width: 6.0,
y: 300.0,
windGap: 14.0,
blurSigma: 13.0,
color: Color(0xff607d8b),
slideXStart: 0.0,
slideXEnd: 350.0,
pauseStartMill: 50,
pauseEndMill: 6000,
slideDurMill: 1000,
blurStyle: BlurStyle.solid),
),
RainWidget(
rainConfig: RainConfig(
count: 10,
lengthDrop: 12.0,
widthDrop: 4.0,
color: Color(0x9978909c),
isRoundedEndsDrop: true,
widgetRainDrop: null,
fallRangeMinDurMill: 500,
fallRangeMaxDurMill: 1500,
areaXStart: 120.0,
areaXEnd: 190.0,
areaYStart: 215.0,
areaYEnd: 540.0,
slideX: 2.0,
slideY: 0.0,
slideDurMill: 2000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00),
fallCurve: Cubic(0.55, 0.09, 0.68, 0.53),
fadeCurve: Cubic(0.95, 0.05, 0.80, 0.04)),
),
SnowWidget(
snowConfig: SnowConfig(
count: 20,
size: 20.0,
color: Color(0xb3ffffff),
icon: IconData(57399, fontFamily: 'MaterialIcons'),
widgetSnowflake: null,
areaXStart: 90.0,
areaXEnd: 230.0,
areaYStart: 200.0,
areaYEnd: 540.0,
waveRangeMin: 20.0,
waveRangeMax: 110.0,
waveMinSec: 5,
waveMaxSec: 20,
waveCurve: Cubic(0.45, 0.05, 0.55, 0.95),
fadeCurve: Cubic(0.60, 0.04, 0.98, 0.34),
fallMinSec: 10,
fallMaxSec: 60),
),
CloudWidget(
cloudConfig: CloudConfig(
size: 250.0,
color: Color(0xaaffffff),
icon: IconData(63056, fontFamily: 'MaterialIcons'),
widgetCloud: null,
x: 70.0,
y: 5.0,
scaleBegin: 1.0,
scaleEnd: 1.1,
scaleCurve: Cubic(0.40, 0.00, 0.20, 1.00),
slideX: 11.0,
slideY: 5.0,
slideDurMill: 2000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00)),
),
ThunderWidget(
thunderConfig: ThunderConfig(
thunderWidth: 10.0,
blurSigma: 13.0,
blurStyle: BlurStyle.solid,
color: Color(0x99ffee58),
flashStartMill: 50,
flashEndMill: 300,
pauseStartMill: 50,
pauseEndMill: 6000,
points: [Offset(110.0, 210.0), Offset(120.0, 240.0)]),
),
],
);
case WeatherScene.scorchingSun:
return const WrapperScene(
sizeCanvas: Size(350.0, 540.0),
isLeftCornerGradient: false,
colors: [
Color(0xffd50000),
Color(0xffffd54f),
],
children: [
SunWidget(
sunConfig: SunConfig(
width: 360.0,
blurSigma: 17.0,
blurStyle: BlurStyle.solid,
isLeftLocation: true,
coreColor: Color(0xfff57c00),
midColor: Color(0xffffee58),
outColor: Color(0xffffa726),
animMidMill: 1500,
animOutMill: 1500),
),
],
);
case WeatherScene.sunset:
return const WrapperScene(
sizeCanvas: Size(350.0, 540.0),
isLeftCornerGradient: true,
colors: [
Color(0xff283593),
Color(0xffff8a65),
],
children: [
SunWidget(
sunConfig: SunConfig(
width: 262.0,
blurSigma: 10.0,
blurStyle: BlurStyle.solid,
isLeftLocation: true,
coreColor: Color(0xffffa726),
midColor: Color(0xd6ffee58),
outColor: Color(0xffff9800),
animMidMill: 2000,
animOutMill: 2000),
),
WindWidget(
windConfig: WindConfig(
pauseStartMill: 50,
pauseEndMill: 6000,
slideDurMill: 1000,
slideXStart: 0.0,
slideXEnd: 350.0,
color: Color(0xff607d8b),
width: 5.0,
y: 208.0,
windGap: 10.0,
blurSigma: 6.0,
blurStyle: BlurStyle.solid),
),
CloudWidget(
cloudConfig: CloudConfig(
size: 250.0,
color: Color(0x65212121),
icon: IconData(63056, fontFamily: 'MaterialIcons'),
widgetCloud: null,
x: 20.0,
y: 35.0,
scaleBegin: 1.0,
scaleEnd: 1.08,
scaleCurve: Cubic(0.40, 0.00, 0.20, 1.00),
slideX: 20.0,
slideY: 0.0,
slideDurMill: 3000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00)),
),
CloudWidget(
cloudConfig: CloudConfig(
size: 160.0,
color: Color(0x77212121),
icon: IconData(63056, fontFamily: 'MaterialIcons'),
widgetCloud: null,
x: 140.0,
y: 130.0,
scaleBegin: 1.0,
scaleEnd: 1.1,
scaleCurve: Cubic(0.40, 0.00, 0.20, 1.00),
slideX: 20.0,
slideY: 4.0,
slideDurMill: 2000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00)),
),
WindWidget(
windConfig: WindConfig(
pauseStartMill: 50,
pauseEndMill: 6000,
slideDurMill: 1000,
slideXStart: 0.0,
slideXEnd: 350.0,
color: Color(0xff607d8b),
width: 7.0,
y: 300.0,
windGap: 15.0,
blurSigma: 7.0,
blurStyle: BlurStyle.solid),
),
],
);
case WeatherScene.frosty:
return const WrapperScene(
sizeCanvas: Size(350.0, 540.0),
isLeftCornerGradient: true,
colors: [
Color(0xff303f9f),
Color(0xff1e88e5),
Color(0xffbdbdbd),
],
children: [
SunWidget(
sunConfig: SunConfig(
width: 300.0,
blurSigma: 8.0,
blurStyle: BlurStyle.solid,
isLeftLocation: true,
coreColor: Color(0xffffb74d),
midColor: Color(0xffffff8d),
outColor: Color(0xffffd180),
animMidMill: 2000,
animOutMill: 2000),
),
SnowWidget(
snowConfig: SnowConfig(
count: 30,
size: 20.0,
color: Color(0xb3ffffff),
icon: IconData(57399, fontFamily: 'MaterialIcons'),
widgetSnowflake: null,
areaXStart: 42.0,
areaXEnd: 240.0,
areaYStart: 200.0,
areaYEnd: 540.0,
waveRangeMin: 20.0,
waveRangeMax: 70.0,
waveMinSec: 5,
waveMaxSec: 20,
waveCurve: Cubic(0.45, 0.05, 0.55, 0.95),
fadeCurve: Cubic(0.60, 0.04, 0.98, 0.34),
fallMinSec: 10,
fallMaxSec: 60),
),
CloudWidget(
cloudConfig: CloudConfig(
size: 250.0,
color: Color(0xa8fafafa),
icon: IconData(63056, fontFamily: 'MaterialIcons'),
widgetCloud: null,
x: 20.0,
y: 3.0,
scaleBegin: 1.0,
scaleEnd: 1.08,
scaleCurve: Cubic(0.40, 0.00, 0.20, 1.00),
slideX: 20.0,
slideY: 0.0,
slideDurMill: 3000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00)),
),
CloudWidget(
cloudConfig: CloudConfig(
size: 160.0,
color: Color(0xa8fafafa),
icon: IconData(63056, fontFamily: 'MaterialIcons'),
widgetCloud: null,
x: 140.0,
y: 97.0,
scaleBegin: 1.0,
scaleEnd: 1.1,
scaleCurve: Cubic(0.40, 0.00, 0.20, 1.00),
slideX: 20.0,
slideY: 4.0,
slideDurMill: 2000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00)),
),
],
);
case WeatherScene.snowfall:
return const WrapperScene(
sizeCanvas: Size(350.0, 540.0),
isLeftCornerGradient: true,
colors: [
Color(0xff3949ab),
Color(0xff90caf9),
Color(0xffd6d6d6),
],
children: [
SnowWidget(
snowConfig: SnowConfig(
count: 30,
size: 20.0,
color: Color(0xb3ffffff),
icon: IconData(57399, fontFamily: 'MaterialIcons'),
widgetSnowflake: null,
areaXStart: 42.0,
areaXEnd: 240.0,
areaYStart: 200.0,
areaYEnd: 540.0,
waveRangeMin: 20.0,
waveRangeMax: 70.0,
waveMinSec: 5,
waveMaxSec: 20,
waveCurve: Cubic(0.45, 0.05, 0.55, 0.95),
fadeCurve: Cubic(0.60, 0.04, 0.98, 0.34),
fallMinSec: 10,
fallMaxSec: 60),
),
CloudWidget(
cloudConfig: CloudConfig(
size: 250.0,
color: Color(0xa8fafafa),
icon: IconData(63056, fontFamily: 'MaterialIcons'),
widgetCloud: null,
x: 20.0,
y: 3.0,
scaleBegin: 1.0,
scaleEnd: 1.08,
scaleCurve: Cubic(0.40, 0.00, 0.20, 1.00),
slideX: 20.0,
slideY: 0.0,
slideDurMill: 3000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00)),
),
CloudWidget(
cloudConfig: CloudConfig(
size: 160.0,
color: Color(0xa8fafafa),
icon: IconData(63056, fontFamily: 'MaterialIcons'),
widgetCloud: null,
x: 140.0,
y: 97.0,
scaleBegin: 1.0,
scaleEnd: 1.1,
scaleCurve: Cubic(0.40, 0.00, 0.20, 1.00),
slideX: 20.0,
slideY: 4.0,
slideDurMill: 2000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00)),
),
],
);
case WeatherScene.showerSleet:
return const WrapperScene(
sizeCanvas: Size(350.0, 540.0),
isLeftCornerGradient: true,
colors: [
Color(0xff37474f),
Color(0xff546e7a),
Color(0xffbdbdbd),
Color(0xff90a4ae),
Color(0xff78909c),
],
children: [
WindWidget(
windConfig: WindConfig(
pauseStartMill: 50,
pauseEndMill: 6000,
slideDurMill: 1000,
slideXStart: 0.0,
slideXEnd: 350.0,
color: Color(0xff607d8b),
width: 5.0,
y: 208.0,
windGap: 10.0,
blurSigma: 6.0,
blurStyle: BlurStyle.solid),
),
CloudWidget(
cloudConfig: CloudConfig(
size: 250.0,
color: Color(0xa8fafafa),
icon: IconData(63056, fontFamily: 'MaterialIcons'),
widgetCloud: null,
x: 20.0,
y: 3.0,
scaleBegin: 1.0,
scaleEnd: 1.08,
scaleCurve: Cubic(0.40, 0.00, 0.20, 1.00),
slideX: 20.0,
slideY: 0.0,
slideDurMill: 3000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00)),
),
WindWidget(
windConfig: WindConfig(
pauseStartMill: 50,
pauseEndMill: 6000,
slideDurMill: 1000,
slideXStart: 0.0,
slideXEnd: 350.0,
color: Color(0xff607d8b),
width: 7.0,
y: 300.0,
windGap: 15.0,
blurSigma: 7.0,
blurStyle: BlurStyle.solid),
),
SnowWidget(
snowConfig: SnowConfig(
count: 30,
size: 20.0,
color: Color(0xb3ffffff),
icon: IconData(57399, fontFamily: 'MaterialIcons'),
widgetSnowflake: null,
areaXStart: 21.0,
areaXEnd: 195.0,
areaYStart: 200.0,
areaYEnd: 540.0,
waveRangeMin: 20.0,
waveRangeMax: 70.0,
waveMinSec: 5,
waveMaxSec: 20,
waveCurve: Cubic(0.45, 0.05, 0.55, 0.95),
fadeCurve: Cubic(0.60, 0.04, 0.98, 0.34),
fallMinSec: 10,
fallMaxSec: 60),
),
RainWidget(
rainConfig: RainConfig(
count: 10,
color: Color(0x9978909c),
lengthDrop: 13.0,
widthDrop: 4.0,
isRoundedEndsDrop: true,
widgetRainDrop: null,
fallRangeMinDurMill: 500,
fallRangeMaxDurMill: 1500,
areaXStart: 160.0,
areaXEnd: 150.0,
areaYStart: 230.0,
areaYEnd: 620.0,
slideX: 2.0,
slideY: 0.0,
slideDurMill: 2000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00),
fallCurve: Cubic(0.55, 0.09, 0.68, 0.53),
fadeCurve: Cubic(0.95, 0.05, 0.80, 0.04)),
),
CloudWidget(
cloudConfig: CloudConfig(
size: 160.0,
color: Color(0xa8fafafa),
icon: IconData(63056, fontFamily: 'MaterialIcons'),
widgetCloud: null,
x: 140.0,
y: 97.0,
scaleBegin: 1.0,
scaleEnd: 1.1,
scaleCurve: Cubic(0.40, 0.00, 0.20, 1.00),
slideX: 20.0,
slideY: 4.0,
slideDurMill: 2000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00)),
),
],
);
case WeatherScene.stormy:
return const WrapperScene(
sizeCanvas: Size(350.0, 540.0),
isLeftCornerGradient: false,
colors: [
Color(0xff263238),
Color(0xff78909c),
],
children: [
WindWidget(
windConfig: WindConfig(
pauseStartMill: 50,
pauseEndMill: 6000,
slideDurMill: 1000,
slideXStart: 0.0,
slideXEnd: 350.0,
color: Color(0xff607d8b),
width: 5.0,
y: 208.0,
windGap: 10.0,
blurSigma: 6.0,
blurStyle: BlurStyle.solid),
),
RainWidget(
rainConfig: RainConfig(
count: 40,
color: Color(0x9978909c),
lengthDrop: 13.0,
widthDrop: 4.0,
isRoundedEndsDrop: true,
widgetRainDrop: null,
fallRangeMinDurMill: 500,
fallRangeMaxDurMill: 1500,
areaXStart: 41.0,
areaXEnd: 264.0,
areaYStart: 208.0,
areaYEnd: 620.0,
slideX: 2.0,
slideY: 0.0,
slideDurMill: 2000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00),
fallCurve: Cubic(0.55, 0.09, 0.68, 0.53),
fadeCurve: Cubic(0.95, 0.05, 0.80, 0.04)),
),
ThunderWidget(
thunderConfig: ThunderConfig(
thunderWidth: 11.0,
color: Color(0x99ffee58),
flashStartMill: 50,
flashEndMill: 300,
pauseStartMill: 50,
pauseEndMill: 6000,
blurStyle: BlurStyle.solid,
blurSigma: 28.0,
points: [Offset(110.0, 210.0), Offset(120.0, 240.0)]),
),
CloudWidget(
cloudConfig: CloudConfig(
size: 250.0,
color: Color(0xad90a4ae),
icon: IconData(63056, fontFamily: 'MaterialIcons'),
widgetCloud: null,
x: 20.0,
y: 3.0,
scaleBegin: 1.0,
scaleEnd: 1.08,
scaleCurve: Cubic(0.40, 0.00, 0.20, 1.00),
slideX: 20.0,
slideY: 0.0,
slideDurMill: 3000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00)),
),
WindWidget(
windConfig: WindConfig(
pauseStartMill: 50,
pauseEndMill: 6000,
slideDurMill: 1000,
slideXStart: 0.0,
slideXEnd: 350.0,
color: Color(0xff607d8b),
width: 7.0,
y: 300.0,
windGap: 15.0,
blurSigma: 7.0,
blurStyle: BlurStyle.solid),
),
CloudWidget(
cloudConfig: CloudConfig(
size: 160.0,
color: Color(0xb1607d8b),
icon: IconData(63056, fontFamily: 'MaterialIcons'),
widgetCloud: null,
x: 140.0,
y: 97.0,
scaleBegin: 1.0,
scaleEnd: 1.1,
scaleCurve: Cubic(0.40, 0.00, 0.20, 1.00),
slideX: 20.0,
slideY: 4.0,
slideDurMill: 2000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00)),
),
],
);
case WeatherScene.rainyOvercast:
return const WrapperScene(
sizeCanvas: Size(350.0, 540.0),
isLeftCornerGradient: true,
colors: [
Color(0xff424242),
Color(0xffcfd8dc),
],
children: [
RainWidget(
rainConfig: RainConfig(
count: 30,
color: Color(0xff9e9e9e),
lengthDrop: 13.0,
widthDrop: 4.0,
isRoundedEndsDrop: true,
widgetRainDrop: null,
fallRangeMinDurMill: 500,
fallRangeMaxDurMill: 1500,
areaXStart: 41.0,
areaXEnd: 264.0,
areaYStart: 208.0,
areaYEnd: 620.0,
slideX: 2.0,
slideY: 0.0,
slideDurMill: 2000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00),
fallCurve: Cubic(0.55, 0.09, 0.68, 0.53),
fadeCurve: Cubic(0.95, 0.05, 0.80, 0.04)),
),
CloudWidget(
cloudConfig: CloudConfig(
size: 270.0,
color: Color(0xcdbdbdbd),
icon: IconData(63056, fontFamily: 'MaterialIcons'),
widgetCloud: null,
x: 119.0,
y: -50.0,
scaleBegin: 1.0,
scaleEnd: 1.1,
scaleCurve: Cubic(0.40, 0.00, 0.20, 1.00),
slideX: 11.0,
slideY: 13.0,
slideDurMill: 4000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00)),
),
CloudWidget(
cloudConfig: CloudConfig(
size: 250.0,
color: Color(0x92fafafa),
icon: IconData(63056, fontFamily: 'MaterialIcons'),
widgetCloud: null,
x: 20.0,
y: 3.0,
scaleBegin: 1.0,
scaleEnd: 1.08,
scaleCurve: Cubic(0.40, 0.00, 0.20, 1.00),
slideX: 20.0,
slideY: 0.0,
slideDurMill: 3000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00)),
),
CloudWidget(
cloudConfig: CloudConfig(
size: 160.0,
color: Color(0xb5fafafa),
icon: IconData(63056, fontFamily: 'MaterialIcons'),
widgetCloud: null,
x: 140.0,
y: 97.0,
scaleBegin: 1.0,
scaleEnd: 1.1,
scaleCurve: Cubic(0.40, 0.00, 0.20, 1.00),
slideX: 20.0,
slideY: 4.0,
slideDurMill: 2000,
slideCurve: Cubic(0.40, 0.00, 0.20, 1.00)),
),
],
);
}
}