import 'dart:ffi';

import 'package:flutter/material.dart';
import 'package:dotted_border/dotted_border.dart';

class DottedBorderBox extends StatelessWidget {
  final Widget? child;
  final Color color;
  final double strokeWidth;
  final List<double> dashPattern;
  final BorderRadius borderRadius;
  final EdgeInsets padding;
  final StrokeCap strokeCap;

  const DottedBorderBox({
    super.key,
    this.child,
    this.color = Colors.black26,
    this.strokeWidth = 1.5,
    this.dashPattern = const [6, 3],
    this.borderRadius = const BorderRadius.all(Radius.circular(8)),
    this.padding = const EdgeInsets.all(8),
    this.strokeCap = StrokeCap.butt,
  });

  @override
  Widget build(BuildContext context) {
    return DottedBorder(
      options: RoundedRectDottedBorderOptions(
        // 控制内边距（虚线与外部的间隔）
        borderPadding: EdgeInsets.zero,
        // 控制虚线与 child 的间距（虚线内侧留白）
        padding: padding,
        color: color,
        strokeWidth: strokeWidth,
        dashPattern: dashPattern,
        strokeCap: strokeCap, radius: Radius.circular(0),
        // 如果需要，可以传 gradient 等
      ),
      child: ClipRRect(
        borderRadius: borderRadius,
        child: child ?? const SizedBox.shrink(),
      ),
    );
  }
}
