#pragma once // panel_layout — the vertical-split layout STATE seam of the bank panel (Q-W2 split of // bank_panel.h; Phase B3/B4). The panel window splits vertically — pool on top, // named-banks region below — and two toggles collapse the split. This header carries // that public state surface; the geometry derivation itself (toolbar/footer/menu rects, // row/cluster builders, region rects, the L7 slot-order display bridge) is internal to // panel_layout.cpp (see panel_state.h for the intra-panel seam). // // REAPER-free: main.cpp / bank_actions.cpp drive these through plain free functions. namespace reasampler { // The vertical-split full-height layout state (Phase B). The bank window splits // vertically — pool on top, named-banks region below — and two toggles collapse the // split: pool full-height (hide the named-banks region) and banks full-height (hide // the pool). The two are mutually exclusive with the default (both regions shown), // so one enum captures the whole state. // // This bit is B3-owned (the actions flip it); B4's panel RENDERS from it. It lives // beside the tail setting — the other session-level view-layout bit the panel // reads — NOT in the persisted ReaSamplerSession: it is a UI-layout preference, not // project state, so it must not travel with the .rpp. In-memory for the extension's // lifetime; resets to Split on unload. enum class BankPanelFullHeight { Split, // default: pool region on top, named-banks region below PoolOnly, // pool full-height — named-banks region hidden BanksOnly, // banks full-height — pool region hidden }; // The current full-height layout state (default Split). READ by B4's panel to decide // which region(s) to draw. Safe before the panel has ever opened. BankPanelFullHeight bankPanelFullHeight(); // Toggles pool full-height: Split <-> PoolOnly. From PoolOnly returns to Split; from // either other state (Split or BanksOnly) enters PoolOnly. Bound to the "pool // full-height" action. Requests a repaint so an open panel reflects the change. void bankPanelToggledPoolFullHeight(); // Toggles banks full-height: Split <-> BanksOnly, symmetric to the pool toggle. // Bound to the "banks full-height" action. Requests a repaint. void bankPanelToggledBanksFullHeight(); } // namespace reasampler