splitPane method

TilingPaneManager splitPane({
  1. required String targetPaneId,
  2. required String splitId,
  3. required String splitPaneId,
  4. required PaneSplitDirection direction,
  5. double ratio = 0.5,
})

Splits the target pane into two children and returns a new manager.

Implementation

TilingPaneManager splitPane({
  required String targetPaneId,
  required String splitId,
  required String splitPaneId,
  required PaneSplitDirection direction,
  double ratio = 0.5,
}) {
  if (splitPaneId == targetPaneId) {
    throw StateError('splitPaneId cannot equal targetPaneId');
  }

  final nextRatio = _clampRatio(ratio);
  final nextRoot = _splitNode(
    root,
    targetPaneId,
    splitId,
    splitPaneId,
    direction,
    nextRatio,
  );
  if (nextRoot == root) {
    throw StateError('target pane not found: $targetPaneId');
  }

  return TilingPaneManager._(
    root: nextRoot,
    focusedPaneId: focusedPaneId,
    paneMinWidth: paneMinWidth,
    paneMinHeight: paneMinHeight,
    snapThreshold: snapThreshold,
  );
}