fix(instrument-ui): distinguish Disabled from Off, add hover cue to mode toggles, close review minors
Adds a hairline outline for Disabled chrome buttons, resolves Hover on the four mode-selector single-buttons, re-measures the control-surface doc's 1.2 layout table post-reflow, and adds a structural test pinning every enable/mode toggle to a derived segment.
This commit is contained in:
@@ -18,8 +18,9 @@ double clamp(double v, double lo, double hi) { return v < lo ? lo : (v > hi ? hi
|
||||
constexpr int kEnvModeW = 46;
|
||||
|
||||
// The single-button enables ("Envelope" / "Filter" / "Limiter"). One width because they are one
|
||||
// control grammar. MASTER is the group that BINDS it: its caption row and knob row both measure
|
||||
// 130, so anything past 64 widens kDeckSpanningW and spends the editor's width budget.
|
||||
// control grammar. MASTER is the group that BINDS it: its knob row measures 130 (the caption
|
||||
// row, at this width, measures 118), so anything past 64 widens kDeckSpanningW and spends the
|
||||
// editor's width budget.
|
||||
constexpr int kEnableBtnW = 52;
|
||||
|
||||
DeckToggleDesc enableButton(DeckParam p) {
|
||||
|
||||
@@ -18,7 +18,7 @@ constexpr int kStripBandHeight = 30;
|
||||
|
||||
constexpr int kRunGap = 6; // between adjacent items of the toolbar run
|
||||
constexpr int kChanBtnW = 60; // fits the longer of the two mode labels ("Stereo")
|
||||
constexpr int kChanSegH = 18;
|
||||
constexpr int kChanBtnH = 18; // shared height of the Loop and channel-mode single buttons
|
||||
// If the title slot ever fails to hold its text at the editor's floor, THESE narrow — the
|
||||
// floor does not move.
|
||||
constexpr int kLoopBtnW = 52;
|
||||
@@ -54,14 +54,14 @@ ChromeRects chromeRects(const Rect& chrome, int knobSize) {
|
||||
r.navBrowse = Rect::ltrb(leftOf(navRight, kNavButtonWidth), navTop, navRight,
|
||||
navTop + navH);
|
||||
|
||||
const int chanTop = topFor(kChanSegH);
|
||||
const int chanTop = topFor(kChanBtnH);
|
||||
const int chanRight = leftOf(r.navBrowse.x, kRunGap);
|
||||
r.channel = Rect::ltrb(leftOf(chanRight, kChanBtnW), chanTop, chanRight,
|
||||
chanTop + kChanSegH);
|
||||
chanTop + kChanBtnH);
|
||||
|
||||
const int loopRight = leftOf(r.channel.x, kRunGap);
|
||||
r.loop = Rect::ltrb(leftOf(loopRight, kLoopBtnW), chanTop, loopRight,
|
||||
chanTop + kChanSegH);
|
||||
chanTop + kChanBtnH);
|
||||
|
||||
const int cellH = std::min(row.height, knobSize + kVelLabelH);
|
||||
const int cellTop = topFor(cellH);
|
||||
|
||||
Reference in New Issue
Block a user