跳到主要内容

Interface: LayoutStore

Defined in: layoutStore.ts:101

全局布局状态机:状态字段(供渲染层订阅显示) + action(由 UI 事件换算坐标后调用)

Properties

beginCorner

beginCorner: (areaId, start, ctrl) => void

Defined in: layoutStore.ts:183

开始角标手势(分割/合并/交换)

Parameters

areaId

number

角标所在区域

start

Vec2

起点数学坐标

ctrl

boolean

ctrl 是否按下

Returns

void


beginDock

beginDock: (areaId, start) => void

Defined in: layoutStore.ts:195

开始拖拽停靠

Parameters

areaId

number

抓取的区域 id

start

Vec2

指针起点(数学坐标)

Returns

void


beginResize

beginResize: (seg, m) => void

Defined in: layoutStore.ts:189

开始拖拽分界线

Parameters

seg

Seg

命中的推导线段

m

Vec2

指针起点(数学坐标)

Returns

void


cancel

cancel: () => void

Defined in: layoutStore.ts:201

取消当前手势(idle 且清预览);resizing 已改写的几何一并回滚,不落任何改动

Returns

void


closeArea

closeArea: (id, opts?) => CloseResult | null

Defined in: layoutStore.ts:162

关闭区域并把它的位置并入紧邻者(邻居分摊扩张)。只剩一块 / 无解 / 结果不合法 → null。

Parameters

id

number

opts?

CloseOptions

Returns

CloseResult | null


commitHistory

commitHistory: () => void

Defined in: layoutStore.ts:142

把当前屏幕压入 undo 栈并清空 redo 栈

Returns

void


cornerMove

cornerMove: (x, y) => void

Defined in: layoutStore.ts:185

角标手势移动(更新预览)

Parameters

x

number

指针 x

y

number

指针 y

Returns

void


cornerStart

cornerStart: Vec2

Defined in: layoutStore.ts:111

角标手势起点(数学坐标)


cornerUp

cornerUp: () => void

Defined in: layoutStore.ts:187

角标手势结束(执行分割/合并/交换)

Returns

void


ctrl

ctrl: boolean

Defined in: layoutStore.ts:125

ctrl 键当前按下状态(决定角标手势分派)


dock

dock: DockState | null

Defined in: layoutStore.ts:130

拖拽停靠中间态(null=非 docking)


dockMove

dockMove: (x, y) => void

Defined in: layoutStore.ts:197

拖拽停靠移动(更新目标预览)

Parameters

x

number

指针 x

y

number

指针 y

Returns

void


dockUp

dockUp: () => void

Defined in: layoutStore.ts:199

拖拽停靠结束(执行停靠落位)

Returns

void


endResize

endResize: () => void

Defined in: layoutStore.ts:193

结束拖拽分界线

Returns

void


exitMaximize

exitMaximize: () => void

Defined in: layoutStore.ts:181

退出最大化

Returns

void


future

future: string[]

Defined in: layoutStore.ts:140

redo 历史


hoverTId

hoverTId: number | null

Defined in: layoutStore.ts:117

角标 hover 高亮的目标区域 id


lastPt

lastPt: Vec2

Defined in: layoutStore.ts:113

最近一次指针位置(数学坐标):toggleSplitDir 换向后重算分割线用


maximizedId

maximizedId: number | null

Defined in: layoutStore.ts:134

最大化显示的区域 id(null=无)


mergeAreas

mergeAreas: (keepId, removeId) => MergeResult | null

Defined in: layoutStore.ts:164

合并两块:保留 keep 的内容,丢弃 remove 的。不共享整条分界线 / 结果不合法 → null。

Parameters

keepId

number

removeId

number

Returns

MergeResult | null


mode

mode: "idle" | "corner" | "resizing" | "docking"

Defined in: layoutStore.ts:105

状态机模式:idle 常态 / corner 角标手势 / resizing 拖分界线 / docking 拖拽停靠


past

past: string[]

Defined in: layoutStore.ts:138

undo 历史(JSON 快照字符串栈)


redo

redo: () => void

Defined in: layoutStore.ts:146

重做(恢复 future 栈顶快照)

Returns

void


resize

resize: ResizeCtx | null

Defined in: layoutStore.ts:128

拖拽分界线中间态(null=非 resizing)


resizeMove

resizeMove: (x, y) => void

Defined in: layoutStore.ts:191

拖拽分界线移动(连通边族平移)

Parameters

x

number

指针 x

y

number

指针 y

Returns

void


restore

restore: (snap) => void

Defined in: layoutStore.ts:150

恢复任意来源的快照数据(JSON.parse 结果均可):内部经 migrateSnapshot 结构校验+归一,几何非法直接抛错。

Parameters

snap

unknown

快照数据(JSON.parse 结果)

Returns

void


screen

screen: Screen

Defined in: layoutStore.ts:103

当前屏幕几何(引用语义:浅拷贝顶层触发重渲)


setAreaContent

setAreaContent: (areaId, type) => void

Defined in: layoutStore.ts:155

程序化切换区域内容:进历史栈、不可变更新 contentType;实例状态由双键分槽自动隔离

Parameters

areaId

number

目标区域 id

type

string

新内容类型标识

Returns

void


setCtrl

setCtrl: (v) => void

Defined in: layoutStore.ts:175

设置 ctrl 按键状态

Parameters

v

boolean

是否按下

Returns

void


setMaximized

setMaximized: (id) => void

Defined in: layoutStore.ts:170

幂等设置最大化目标(null = 退出)。不进历史(视图态)。

Parameters

id

number | null

Returns

void


setRatio

setRatio: (seg, ratio) => RatioResult | null

Defined in: layoutStore.ts:168

把整条连通线族平移到「a 侧占 ratio」的位置(与手动拖分界线同语义)。

Parameters

seg

Seg

ratio

number

Returns

RatioResult | null


setStatus

setStatus: (t) => void

Defined in: layoutStore.ts:173

设置状态栏文字

Parameters

t

string

状态文字

Returns

void


snapped

snapped: boolean

Defined in: layoutStore.ts:123

分割线是否处于吸附状态


splitArea

splitArea: (id, dir, ratio?) => SplitResult | null

Defined in: layoutStore.ts:160

沿 dir 一分为二:源区保 min 侧占 ratio(缺省 0.5),新块继承源区内容与实例状态。 区域不存在 / 不足以分割 / 结果不合法 → null(零改动)。

Parameters

id

number

dir

Axis

ratio?

number

Returns

SplitResult | null


splitDir

splitDir: Axis | null

Defined in: layoutStore.ts:119

预览分割方向(null=无分割预览)


splitLine

splitLine: number

Defined in: layoutStore.ts:121

预览分割线坐标


srcId

srcId: number | null

Defined in: layoutStore.ts:115

手势源区域 id(null=无手势)


status

status: string

Defined in: layoutStore.ts:107

底部状态栏文字


swapAreas

swapAreas: (a, b) => SwapResult | null

Defined in: layoutStore.ts:166

交换两块显示的内容(含实例状态),几何不动。

Parameters

a

number

b

number

Returns

SwapResult | null


toggleMaximize

toggleMaximize: (areaId) => void

Defined in: layoutStore.ts:179

切换区域最大化

Parameters

areaId

number

目标区域 id

Returns

void


toggleSplitDir

toggleSplitDir: () => void

Defined in: layoutStore.ts:177

切换当前预览分割方向(H↔V)

Returns

void


undo

undo: () => void

Defined in: layoutStore.ts:144

撤销上一步(恢复 past 栈顶快照)

Returns

void