feat(bank_panel): B4 vertical-split UI — LICE tab strip, id-keyed bank ops, move/copy drag
Pool grid on top, LICE-drawn named-banks tab strip below with overflow-scroll (new pure tab_strip seam, unit-tested). Full-height toggles, unmistakable active-bank readout distinct from the shown tab, tab context menu (activate/rename/delete/evacuate/create) with rich confirm-on-non-empty-delete, and move/copy via menu + drag with drop-highlighting. Fold-in: deserialize auto-disambiguates duplicate folded bank names instead of rejecting the book.
This commit is contained in:
+17
-1
@@ -55,6 +55,17 @@ target_include_directories(bank_grid PUBLIC src)
|
||||
add_library(mode_switch STATIC src/mode_switch.cpp)
|
||||
target_include_directories(mode_switch PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 2c'') Pure tab_strip layout — NO REAPER, NO SWELL. The named-banks tab-strip
|
||||
# geometry (B4): strip rect + N tabs at a fixed tab width + scroll offset ->
|
||||
# per-tab rects (overflow-clipped), overflow chevron reservation + maxScroll,
|
||||
# and point -> tab / chevron hit-test. Split out so the strip's layout +
|
||||
# overflow/scroll math is unit-tested outside the DAW; the bank_panel region
|
||||
# that draws it and routes clicks is DAW-verified. Mirror of mode_switch.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(tab_strip STATIC src/tab_strip.cpp)
|
||||
target_include_directories(tab_strip PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 2d) Pure view_mode_model library — NO REAPER, NO SWELL. The Design View heart
|
||||
# (Phase D1): mode registry + GUID-keyed membership index + folder-tree-aware
|
||||
@@ -156,6 +167,10 @@ add_executable(mode_switch_tests tests/test_mode_switch.cpp)
|
||||
target_link_libraries(mode_switch_tests PRIVATE mode_switch)
|
||||
add_test(NAME mode_switch_tests COMMAND mode_switch_tests)
|
||||
|
||||
add_executable(tab_strip_tests tests/test_tab_strip.cpp)
|
||||
target_link_libraries(tab_strip_tests PRIVATE tab_strip)
|
||||
add_test(NAME tab_strip_tests COMMAND tab_strip_tests)
|
||||
|
||||
add_executable(view_mode_model_tests tests/test_view_mode_model.cpp)
|
||||
target_link_libraries(view_mode_model_tests PRIVATE view_mode_model)
|
||||
add_test(NAME view_mode_model_tests COMMAND view_mode_model_tests)
|
||||
@@ -206,6 +221,7 @@ add_library(reaper_reasampler MODULE
|
||||
src/persist.cpp
|
||||
src/bank_panel.cpp
|
||||
src/mode_switch.cpp
|
||||
src/tab_strip.cpp
|
||||
src/insert.cpp
|
||||
src/insert_plan.cpp
|
||||
${LICE_SRC}
|
||||
@@ -216,7 +232,7 @@ add_library(reaper_reasampler MODULE
|
||||
src/actions.cpp
|
||||
src/bank_book.cpp
|
||||
)
|
||||
target_link_libraries(reaper_reasampler PRIVATE bank_model capture_paths peaks bank_grid mode_switch view_mode_model insert_plan render_settings tail_control realtime_record bank_book)
|
||||
target_link_libraries(reaper_reasampler PRIVATE bank_model capture_paths peaks bank_grid mode_switch tab_strip view_mode_model insert_plan render_settings tail_control realtime_record bank_book)
|
||||
target_include_directories(reaper_reasampler PRIVATE ${SDK_INC} ${WDL_INC})
|
||||
set_target_properties(reaper_reasampler PROPERTIES PREFIX "" OUTPUT_NAME "reaper_reasampler")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user