configure method

void configure({
  1. List<MyFloatPanelIconBtn>? items,
  2. bool? visible,
  3. bool? enablePersistence,
  4. bool? dockToAllEdges,
  5. HorizontalExpandMode? horizontalExpandMode,
  6. Color? borderColor,
  7. IconData? initialPanelIcon,
  8. int? panelAnimDuration,
  9. Curve? panelAnimCurve,
  10. int? dockAnimDuration,
  11. Curve? dockAnimCurve,
})

Implementation

void configure({
  List<MyFloatPanelIconBtn>? items,
  bool? visible,
  // 停靠与持久化
  bool? enablePersistence,
  bool? dockToAllEdges,
  HorizontalExpandMode? horizontalExpandMode,
  // 样式与动画
  Color? borderColor,
  IconData? initialPanelIcon,
  int? panelAnimDuration,
  Curve? panelAnimCurve,
  int? dockAnimDuration,
  Curve? dockAnimCurve,
}) {
  if (items != null) this.items.value = items;
  if (visible != null) this.visible.value = visible;
  if (enablePersistence != null) {
    this.enablePersistence.value = enablePersistence;
  }
  if (dockToAllEdges != null) this.dockToAllEdges.value = dockToAllEdges;
  if (horizontalExpandMode != null) {
    this.horizontalExpandMode.value = horizontalExpandMode;
  }
  if (borderColor != null) this.borderColor.value = borderColor;
  if (initialPanelIcon != null) {
    this.initialPanelIcon.value = initialPanelIcon;
  }
  if (panelAnimDuration != null) {
    this.panelAnimDuration.value = panelAnimDuration;
  }
  if (panelAnimCurve != null) this.panelAnimCurve.value = panelAnimCurve;
  if (dockAnimDuration != null) {
    this.dockAnimDuration.value = dockAnimDuration;
  }
  if (dockAnimCurve != null) this.dockAnimCurve.value = dockAnimCurve;

  // 首次 configure 后自动保存默认快照
  if (!_hasDefaultSnapshot) {
    _snapshotDefaults();
    _hasDefaultSnapshot = true;
  }
}