- Created CMakeLists.txt for Flutter and runner components. - Implemented resource script (Runner.rc) for application metadata. - Developed main entry point (main.cpp) for the Windows application. - Added FlutterWindow class to manage the Flutter view within a Win32 window. - Implemented utility functions for console management and command line argument parsing. - Established Win32Window class for high DPI-aware window handling. - Included application icon and manifest for proper Windows integration. - Set up build configurations and dependencies for the Flutter application on Windows.
42 lines
880 B
Dart
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,
|
|
);
|
|
}
|
|
}
|