#pragma once #include "core/ui/rect.h" // Pure segment layout + hit-test for the bank_panel's Design-View mode switch. // Mirror of bank_grid. See src/core/view/CLAUDE.md. #include namespace reasampler::view { using HeaderRect = ui::Rect; using SegmentRect = ui::Rect; // Divides `header` into `segmentCount` equal segments left-to-right. Boundaries // use header.x + (i * width) / segmentCount so segments abut exactly despite // integer rounding. segmentCount <= 0 or non-positive width returns empty. std::vector computeSegmentRects(const HeaderRect& header, int segmentCount); // Segment index containing (px, py), or -1 for a miss (outside header bounds, // or segmentCount <= 0). Half-open bounds match computeSegmentRects. int hitTestSegment(int px, int py, const HeaderRect& header, int segmentCount); } // namespace reasampler::view