docs: archive Phase L L5 to COMPLETED; reconcile CLAUDE.md + CONTEXT.md + PLAN.md
This commit is contained in:
@@ -1348,3 +1348,56 @@ never auto-insert (the buttons only fire the existing, unchanged actions).
|
||||
Tail button + Prune); no LICE or REAPER types. New CTest target `footer_bar_tests`.
|
||||
- `action_bar` gained `ActionCluster::Tagging` and `ActionCluster::Switching` for the
|
||||
bottom-toolbar Design View verb groups.
|
||||
|
||||
---
|
||||
|
||||
## L5 — dock-panel button refinements
|
||||
**Goal:** Refine the L4 three-zone toolbar so the button faces read cleanly and group
|
||||
legibly — an overflow menu for the rare capture variants, short faces with full-name
|
||||
tooltips (no `ReaSampler:` prefix), an opposite-mode tag-button set, removal of the now-
|
||||
redundant Toggle and Activate-Arrange/Design buttons, and semantic-grouping spacing.
|
||||
**No new capture/placement behavior**; every button fires an existing registered action
|
||||
(the "capture ≠ placement" principle is untouched). Ungated by Phase S; sequences after L4.
|
||||
**Verify (in DAW):** the top bar shows only frequent capture/placement/maintenance buttons +
|
||||
a right-anchored More (⋯) menu that fires Batch Items / Batch Razor / Capture RT; hover
|
||||
tooltip shows the full action name with `ReaSampler:` prefix stripped; the bottom bar shows
|
||||
four Item/Track × Arrange/Design tag buttons with only the opposite-mode pair live (disabled
|
||||
pair visibly greyed via the kit `Disabled` state) and no Toggle button; cluster groups read
|
||||
as groups. All buttons fire the same actions their keybindings do.
|
||||
|
||||
- [x] Top-toolbar overflow: Batch Items / Batch Razor / Capture RT pulled off the visible bar
|
||||
into a right-anchored **More (⋯) menu button** (kit-drawn button + `TrackPopupMenu` popup);
|
||||
each entry fires its existing command id. Pure layout owns the menu-button rect + hit-test
|
||||
(`overflow_menu` pure module); the popup + dispatch is shell.
|
||||
- [x] Short faces + drop `ReaSampler:` prefix on the button *face*; keep the keybinding micro
|
||||
sub-row.
|
||||
- [x] **Hover tooltip carrying the full action name (prefix stripped)** via a **custom LICE-kit
|
||||
hover-delay tooltip** (`tooltip` pure module): sourced from the registered action phrase
|
||||
(not `kbd_getTextFromCmd`); `ReaSampler:` prefix stripped at draw time; tooltip box width
|
||||
clamped to the client so it never overhangs a narrow dock. The keybinding sub-row still uses
|
||||
the live binding from `kbd_getTextFromCmd`.
|
||||
- [x] Bottom-toolbar four tag buttons: **Item: Arrange / Item: Design / Track: Arrange /
|
||||
Track: Design**, wired to the existing item-move (`VIEW_MOVE_ITEMS_ARRANGE` /
|
||||
`VIEW_MOVE_ITEMS_DESIGN`) + track-tag (`VIEW_TAG_ARRANGE` / `VIEW_TAG_DESIGN`) actions.
|
||||
- [x] **Opposite-mode enablement:** a button is live iff its target mode ≠ the active mode;
|
||||
otherwise drawn `Disabled` (kit disabled state, `TextDim`) and its click is a no-op. Pure
|
||||
predicate (`mode_enable` pure module) unit-tested; shell reads `view().activeModeId()` once
|
||||
per draw and applies.
|
||||
- [x] **Activate-Arrange / Activate-Design / Toggle buttons removed** from the bottom toolbar
|
||||
(all three actions stay registered; footer toggle owns mode switching). **Show Both** kept
|
||||
as a set-apart button on the bottom toolbar.
|
||||
- [x] Semantic-grouping spacing widened: `clusterGap` 16→24 (`buttonGap` remains 4; 6:1 ratio)
|
||||
on both toolbars so clusters read as groups.
|
||||
|
||||
**Notes/decisions:**
|
||||
- **Activate-Arrange / Activate-Design / Toggle FORK resolved (Daniel):** all three removed
|
||||
from the bottom toolbar. The footer `[Arrange|Design]` toggle is the single mode-switch
|
||||
affordance; the bottom bar is tagging + Show Both only.
|
||||
- **Tooltip mechanism resolved as custom LICE-kit hover-delay tooltip** (DS-1 "keep drawing in
|
||||
the kit"): avoids attaching a SWELL tooltip control to non-child LICE rects. SWELL is the
|
||||
Win32-emulation layer for macOS/Linux and is not the mechanism used here; on Windows the
|
||||
path is native, and the chosen implementation is a custom kit-drawn tooltip.
|
||||
- New pure modules: `src/overflow_menu.{h,cpp}` (menu-button geometry/reserve/hit-test),
|
||||
`src/mode_enable.{h,cpp}` (opposite-mode enablement predicate), `src/tooltip.{h,cpp}`
|
||||
(placement + prefix-strip). New CTest targets `overflow_menu_tests`, `mode_enable_tests`,
|
||||
`tooltip_tests`.
|
||||
|
||||
Reference in New Issue
Block a user