mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2024-11-21 15:00:40 +00:00
implemented topbar shape
This commit is contained in:
parent
15e187384e
commit
c70fd29cfc
1 changed files with 48 additions and 0 deletions
48
lib/screens/metering/components/topbar/topbar_shape.dart
Normal file
48
lib/screens/metering/components/topbar/topbar_shape.dart
Normal file
|
@ -0,0 +1,48 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class TopBarShape extends CustomPainter {
|
||||
final Color color;
|
||||
final Size appendixSize;
|
||||
final double radius;
|
||||
|
||||
TopBarShape({
|
||||
required this.color,
|
||||
required this.appendixSize,
|
||||
required this.radius,
|
||||
});
|
||||
|
||||
@override
|
||||
void paint(Canvas canvas, Size size) {
|
||||
final paint = Paint()..color = color;
|
||||
final path = Path();
|
||||
final circularRadius = Radius.circular(radius);
|
||||
path.moveTo(size.width, 0);
|
||||
path.lineTo(size.width, size.height - radius);
|
||||
path.arcToPoint(
|
||||
Offset(size.width - radius, size.height),
|
||||
radius: circularRadius,
|
||||
);
|
||||
path.lineTo(size.width - appendixSize.width + radius, size.height);
|
||||
path.arcToPoint(
|
||||
Offset(size.width - appendixSize.width, size.height - radius),
|
||||
radius: circularRadius,
|
||||
);
|
||||
path.lineTo(size.width - appendixSize.width, size.height - appendixSize.height + radius);
|
||||
path.arcToPoint(
|
||||
Offset(size.width - appendixSize.width - radius, size.height - appendixSize.height),
|
||||
radius: circularRadius,
|
||||
clockwise: false,
|
||||
);
|
||||
path.lineTo(radius, size.height - appendixSize.height);
|
||||
path.arcToPoint(
|
||||
Offset(0, size.height - appendixSize.height - radius),
|
||||
radius: circularRadius,
|
||||
);
|
||||
path.lineTo(0, 0);
|
||||
path.close();
|
||||
canvas.drawPath(path, paint);
|
||||
}
|
||||
|
||||
@override
|
||||
bool shouldRepaint(CustomPainter oldDelegate) => false;
|
||||
}
|
Loading…
Reference in a new issue