23 lines
989 B
C++
23 lines
989 B
C++
#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 <string>
|
|
|
|
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
|