Skip to content

feat: updatePane API — layout at frame layer + glass title/content#88

Merged
ohxyz merged 2 commits into
mainfrom
feat/update-panel
Jun 22, 2026
Merged

feat: updatePane API — layout at frame layer + glass title/content#88
ohxyz merged 2 commits into
mainfrom
feat/update-panel

Conversation

@ohxyz

@ohxyz ohxyz commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator

Adds an updatePane API to mutate an existing pane in place — both its layout (frame layer) and its glass (binary-window layer).

Frame layer — updatePane(id, { position, size, minWidth, minHeight })

  • position re-places the pane keeping its relative size: same-axis change swaps it with its sibling; cross-axis change reorients the split and rebuilds the muntin.
  • size resizes along the split axis like a programmatic muntin drag.
  • minWidth / minHeight update the sash's min sizes (applied on later resizes).
  • update()'s reconcile loop now calls updatePaneElement directly, freeing the updatePane name for the new feature.

Binary-window layer — updatePane({ id, ..., title, content })

  • Updates the pane's glass title and content in place (updateGlass / updateGlassTitle / updateGlassContent), on top of the frame-layer layout update.
  • Glass actions updates are left as a TODO.

Dev pages

  • update-pane — two Frames (left/right and top/bottom) to exercise position, size, and min width/height.
  • bwin-update-pane — a 3-pane BinaryWindow to exercise glass title/content alongside position/size.

ohxyz added 2 commits June 22, 2026 15:17
Implements updatePane({ id, position, size, minWidth, minHeight }) on the
frame layer. Position re-places the pane keeping its relative size (same-axis
swaps with sibling, cross-axis reorients the split + rebuilds the muntin);
size resizes along the split axis like a programmatic muntin drag.

update()'s reconcile loop now calls updatePaneElement directly, freeing the
updatePane name for the new feature.

Adds a dev/features/update-pane page (two Frames, left/right and top/bottom)
to exercise position, size, and min width/height.
BinaryWindow.updatePane now updates an existing pane's glass title and
content in place (updateGlass/updateGlassTitle/updateGlassContent), on top
of the frame-layer layout update. Glass action updates are left as a TODO.

Changes the frame-layer signature to updatePane(id, { position, size,
minWidth, minHeight }); BinaryWindow.updatePane keeps its public object form.

Adds a dev/features/bwin-update-pane page (3-pane window) to exercise glass
title/content alongside position/size.
@ohxyz ohxyz changed the title wip: update pane with glass feat: updatePane API — layout at frame layer + glass title/content Jun 22, 2026
@ohxyz ohxyz merged commit 8786634 into main Jun 22, 2026
@ohxyz ohxyz deleted the feat/update-panel branch June 22, 2026 06:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant