Files
reasampler/src/core/ui/mode_enable.h
T

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