d3b6026bfd
- Filled empty libs/hbb_common/ submodule (cloned from rustdesk/hbb_common) - Patched Flutter 3.44 / Dart 3.12 compatibility: * flutter/lib/generated_bridge.dart: asTypedList with cast<>, DartPort=Int64 * flutter/lib/common.dart: DialogTheme->DialogThemeData, TabBarTheme->TabBarThemeData * flutter/pubspec.yaml: extended_text 14.0.0->15.0.2, google_fonts override 5.0.0 * flutter/macos/Runner/Configs/Release.xcconfig: EXCLUDED_ARCHS=x86_64 - Build verified: cargo check + cargo build --features flutter + cargo build --release --features flutter - Verified flutter build macos --debug and --release both produce working .app - Verified .dmg installer (27MB arm64) created via hdiutil - Build deps: Xcode 26.5, CocoaPods 1.16.2, Flutter 3.44, VCPKG arm64-osx
53 lines
1.5 KiB
Dart
53 lines
1.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
class DraggableDivider extends StatefulWidget {
|
|
final Axis axis;
|
|
final double thickness;
|
|
final Color color;
|
|
final Function(double)? onPointerMove;
|
|
final VoidCallback? onHover;
|
|
final EdgeInsets padding;
|
|
const DraggableDivider({
|
|
super.key,
|
|
this.axis = Axis.horizontal,
|
|
this.thickness = 1.0,
|
|
this.color = const Color.fromARGB(200, 177, 175, 175),
|
|
this.onPointerMove,
|
|
this.padding = const EdgeInsets.symmetric(horizontal: 1.0),
|
|
this.onHover,
|
|
});
|
|
|
|
@override
|
|
State<DraggableDivider> createState() => _DraggableDividerState();
|
|
}
|
|
|
|
class _DraggableDividerState extends State<DraggableDivider> {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Listener(
|
|
onPointerMove: (event) {
|
|
final dl = widget.axis == Axis.horizontal
|
|
? event.localDelta.dy
|
|
: event.localDelta.dx;
|
|
widget.onPointerMove?.call(dl);
|
|
},
|
|
onPointerHover: (event) => widget.onHover?.call(),
|
|
child: MouseRegion(
|
|
cursor: SystemMouseCursors.resizeLeftRight,
|
|
child: Padding(
|
|
padding: widget.padding,
|
|
child: Container(
|
|
decoration: BoxDecoration(color: widget.color),
|
|
width: widget.axis == Axis.horizontal
|
|
? double.infinity
|
|
: widget.thickness,
|
|
height: widget.axis == Axis.horizontal
|
|
? widget.thickness
|
|
: double.infinity,
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|