#pragma once // sample_chrome.h — interior geometry of the Sample face's CHROME band: the toolbar row // (title + Browse) over the control row (root/piano strip, preview trigger, preview-velocity // knob cell, curve-preview button, Mono|Stereo toggle). Reads the band rect the allocator // hands it (sample_bands) and never allocates vertical space of its own. #include "core/instrument/ui/editor_geometry.h" // Rect namespace reasampler::instrument::ui { inline constexpr int kNavButtonWidth = 62; // the Browse toolbar button // Every interactive rect inside the chrome band, in one pass so draw and hit-test cannot // derive them differently. The control row's right-anchored run is fixed-width (preview, // velocity cell, curve button, channel toggle) and the root strip takes the remainder, so // the strip grows with the window. struct ChromeRects { Rect toolbar; // full-width top row Rect navBrowse; // right-anchored in the toolbar Rect controls; // full-width second row Rect rootStrip; // remainder-width, left Rect preview; Rect velCell; // preview-velocity knob cell (knob + label band) Rect velKnob; Rect velLabel; Rect curveBtn; // opens the velocity-curve popup Rect chanMono; Rect chanStereo; }; // `knobSize` is the deck knob square, passed in so this module does not depend on knob_deck. ChromeRects chromeRects(const Rect& chrome, int knobSize); } // namespace reasampler::instrument::ui