Separate floor and ceiling into widgets with painters

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
2026-09-13 17:19:29 +02:00
parent 53f1f2004e
commit 2e6f3b047c
+34 -14
View File
@@ -557,27 +557,33 @@ class Background extends StatelessWidget {
super.key,
});
@override
Widget build(BuildContext context) {
return const Stack(
textDirection: TextDirection.ltr,
children: [
Ceiling(),
Floor(),
],
);
}
}
class Ceiling extends StatelessWidget {
const new({super.key});
@override
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, constraints) => Stack(
textDirection: TextDirection.ltr,
children: [
CustomPaint(
size: constraints.biggest,
painter: Ceiling(),
),
CustomPaint(
size: constraints.biggest,
painter: Floor(),
),
],
builder: (context, constraints) => CustomPaint(
size: constraints.biggest,
painter: CeilingPainter(),
),
);
}
}
class Ceiling extends CustomPainter {
class CeilingPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
final Rect rect = Offset.zero & size;
@@ -610,7 +616,21 @@ class Ceiling extends CustomPainter {
bool shouldRebuildSemantics(covariant oldDelegate) => false;
}
class Floor extends CustomPainter {
class Floor extends StatelessWidget {
const new({super.key});
@override
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, constraints) => CustomPaint(
size: constraints.biggest,
painter: FloorPainter(),
),
);
}
}
class FloorPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
final Rect rect = Offset.zero & size;