marco.pms.mobile/lib/widgets/size_observer.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

42 lines
880 B
Dart

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
typedef SizeCallback = void Function(Size size);
class _RenderSizeObserver extends RenderProxyBox {
_RenderSizeObserver({
RenderBox? child,
required this.onLayoutChangedCallback,
}) : super(child);
final SizeCallback onLayoutChangedCallback;
Size? _oldSize;
@override
void performLayout() {
super.performLayout();
if (size != _oldSize) {
onLayoutChangedCallback(size);
}
_oldSize = size;
}
}
class SizeObserver extends SingleChildRenderObjectWidget {
const SizeObserver({
super.key,
required Widget super.child,
required this.onSized,
});
final SizeCallback onSized;
@override
_RenderSizeObserver createRenderObject(BuildContext context) {
return _RenderSizeObserver(
onLayoutChangedCallback: onSized,
);
}
}