44 lines
2.3 KiB
C++
44 lines
2.3 KiB
C++
#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
|