#pragma once // mode_enable — enablement predicate behind the bank_panel bottom toolbar's four Item/Track x // Arrange/Design tag buttons. A tag button sends the selection to a TARGET mode; it's live only // when its target differs from the currently active mode (you tag INTO the mode you're not in). #include namespace reasampler::ui { // A tag button's TARGET mode. The Item/Track axis is orthogonal to enablement (both buttons for // a target enable/disable together), so it isn't modelled here — the shell carries it per button. enum class TagTarget { Arrange, Design, }; // True iff a button targeting `target` should be live, given the active mode id `activeModeId` // (ViewModeModel::activeModeId(), i.e. kArrangeModeId / kDesignModeId). An unrecognized active id // leaves every button live (fail-open — never silently disable a reachable action). bool tagButtonEnabled(const std::string& activeModeId, TagTarget target); } // namespace reasampler::ui