#pragma once // design_view_actions — the Design View bindable action family: toggle/activate a // mode, tag/untag/show-both the current track selection, and the item-level mode // moves. Each action mutates the session's ViewModeModel then reapplies the active // mode through the view shell so the change takes effect immediately. SDK-free // header; main.cpp calls register/handle/unregister and nothing else. // Forward-declared at GLOBAL scope (matches reaper_plugin.h's typedef) so this // header stays SDK-free; the .cpp includes the real definition. struct reaper_plugin_info_t; namespace reasampler { class ReaSamplerSession; // `session` must outlive registration. Not idempotent — call exactly once at load, // mirror-unregister once at unload. void designViewRegisterActions(reaper_plugin_info_t* rec, ReaSamplerSession* session); // True iff `command` is one of this module's ids (and handled); false otherwise so // the caller's hookcommand keeps looking. bool designViewHandleCommand(int command); void designViewUnregisterActions(reaper_plugin_info_t* rec); } // namespace reasampler