M11: action-trigger buttons + keybinding labels in bank_panel
New pure action_buttons module (strip layout/hit-test + label format, CTest-covered). Panel strip fires capture/insert/provenance actions via NamedCommandLookup + Main_OnCommand; labels from kbd_getTextFromCmd.
This commit is contained in:
+19
-1
@@ -301,6 +301,20 @@ target_include_directories(app_version PUBLIC src ${CMAKE_CURRENT_BINARY_DIR}/ge
|
||||
add_library(provenance STATIC src/provenance.cpp)
|
||||
target_include_directories(provenance PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 2k) Pure action_buttons library — NO REAPER, NO SWELL. The Milestone 11
|
||||
# action-trigger button strip: strip rect + N buttons at a minimum width ->
|
||||
# per-button rects (equal tiling; overflow HIDES excess on a narrow panel
|
||||
# rather than clipping), point -> button hit-test, and the button label format
|
||||
# (action name + SDK binding string -> label, with the unbound/blank case
|
||||
# degraded to an explicit marker and an over-long binding truncated). Split out
|
||||
# so the layout + label math is unit-tested outside the DAW; the bank_panel
|
||||
# draw + NamedCommandLookup/Main_OnCommand dispatch + kbd_getTextFromCmd query
|
||||
# are DAW-verified. Mirror of mode_switch / tab_strip.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(action_buttons STATIC src/action_buttons.cpp)
|
||||
target_include_directories(action_buttons PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 3) Standalone tests for the pure modules (run without launching REAPER).
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -395,6 +409,10 @@ add_executable(provenance_tests tests/test_provenance.cpp)
|
||||
target_link_libraries(provenance_tests PRIVATE provenance bank_model)
|
||||
add_test(NAME provenance_tests COMMAND provenance_tests)
|
||||
|
||||
add_executable(action_buttons_tests tests/test_action_buttons.cpp)
|
||||
target_link_libraries(action_buttons_tests PRIVATE action_buttons)
|
||||
add_test(NAME action_buttons_tests COMMAND action_buttons_tests)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 4) The REAPER extension — a loadable module (dlopen'd by REAPER, not linked).
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -433,7 +451,7 @@ add_library(reaper_reasampler MODULE
|
||||
src/bank_book.cpp
|
||||
src/owned_manifest.cpp
|
||||
)
|
||||
target_link_libraries(reaper_reasampler PRIVATE bank_model capture_paths peaks bank_grid mode_switch tab_strip view_mode_model insert_plan render_settings batch_capture tail_control realtime_record bank_book wav_trim owned_manifest prune_reconcile prune_button app_version provenance)
|
||||
target_link_libraries(reaper_reasampler PRIVATE bank_model capture_paths peaks bank_grid mode_switch tab_strip view_mode_model insert_plan render_settings batch_capture tail_control realtime_record bank_book wav_trim owned_manifest prune_reconcile prune_button app_version provenance action_buttons)
|
||||
target_include_directories(reaper_reasampler PRIVATE ${SDK_INC} ${WDL_INC})
|
||||
# OUTPUT_NAME is channel-derived (Phase V, V4): "reaper_reasampler" (stable, default) or
|
||||
# "reaper_reasampler_beta" (beta). REAPER dlopen's any reaper_* module, so both channels'
|
||||
|
||||
Reference in New Issue
Block a user