marco.pms.mobile/lib/helpers/widgets/my_page_reveal.dart
Vaibhav Surve 99902e743c Flutter application
- Created generated_plugin_registrant.cc and generated_plugin_registrant.h to manage plugin registration.
- Added generated_plugins.cmake for plugin configuration in CMake.
- Implemented CMakeLists.txt for the Windows runner, defining build settings and dependencies.
- Created Runner.rc for application resources including versioning and icons.
- Developed flutter_window.cpp and flutter_window.h to manage the Flutter window lifecycle.
- Implemented main.cpp as the entry point for the Windows application.
- Added resource.h for resource definitions.
- Included app icon in resources.
- Created runner.exe.manifest for application settings.
- Developed utils.cpp and utils.h for console management and command line argument handling.
- Implemented win32_window.cpp and win32_window.h for high DPI-aware window management.
2025-04-17 12:30:38 +05:30

44 lines
1013 B
Dart

import 'dart:math';
import 'package:flutter/material.dart';
class MyPageReveal extends StatelessWidget {
final double? revealPercent;
final Widget? child;
MyPageReveal({super.key, this.revealPercent, this.child});
@override
Widget build(BuildContext context) {
return ClipOval(
clipper: CircleRevealClipper(revealPercent),
child: child,
);
}
}
class CircleRevealClipper extends CustomClipper<Rect> {
final double? revealPercent;
CircleRevealClipper(this.revealPercent);
@override
Rect getClip(Size size) {
final epicenter = Offset(size.width / 2, size.height * 0.9);
double theta = atan(epicenter.dy / epicenter.dx);
final distanceToCorner = epicenter.dy / sin(theta);
final radius = distanceToCorner * revealPercent!;
final diameter = 2 * radius;
return Rect.fromLTWH(
epicenter.dx - radius, epicenter.dy - radius, diameter, diameter);
}
@override
bool shouldReclip(CustomClipper<Rect> oldClipper) {
return true;
}
}