L5: dock-panel button refinements — overflow menu, tooltips, opposite-mode tag buttons
Top-bar rare-capture variants move to a right-anchored More popup; short faces gain hover-delay full-name tooltips (prefix stripped); bottom bar becomes four opposite-mode Item/Track tag buttons + Show Both (Toggle/Activates dropped); wider cluster gaps. New pure overflow_menu/mode_enable/tooltip modules, CTest-covered. Same actions, same contract.
This commit is contained in:
+52
-1
@@ -385,6 +385,42 @@ add_library(footer_bar STATIC src/footer_bar.cpp)
|
||||
target_include_directories(footer_bar PUBLIC src)
|
||||
target_link_libraries(footer_bar PUBLIC prune_button)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 2q) Pure overflow_menu layout — NO REAPER, NO SWELL, NO LICE. The Phase L (L5,
|
||||
# refinement 1) top-toolbar "⋯" More-button geometry: band rect -> right-anchored
|
||||
# menu-button rect (suppressed when the band is too narrow) + the horizontal reserve
|
||||
# the action_bar must leave for it, and point -> in/out hit-test. Split out so the
|
||||
# button placement + reserve math is unit-tested outside the DAW; the bank_panel
|
||||
# L1-kit draw + TrackPopupMenu popup + NamedCommandLookup/Main_OnCommand dispatch are
|
||||
# DAW-verified. Mirror of prune_button / mode_switch.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(overflow_menu STATIC src/overflow_menu.cpp)
|
||||
target_include_directories(overflow_menu PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 2r) Pure mode_enable predicate — NO REAPER, NO SWELL, NO LICE. The Phase L (L5,
|
||||
# refinement 3) opposite-mode tag-button enablement: (active mode id, button target
|
||||
# mode) -> live/disabled, so only the buttons for the OPPOSITE of the active mode are
|
||||
# clickable. Split out so both active modes are covered by CTest (not only whichever a
|
||||
# DAW pass sat in); the bank_panel reads the active mode from view().activeModeId() and
|
||||
# draws disabled buttons in the kit Disabled state. Depends on view_mode_model for the
|
||||
# seed mode-id constants (kArrangeModeId / kDesignModeId — ONE home for the ids).
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(mode_enable STATIC src/mode_enable.cpp)
|
||||
target_include_directories(mode_enable PUBLIC src)
|
||||
target_link_libraries(mode_enable PUBLIC view_mode_model)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 2s) Pure tooltip layout — NO REAPER, NO SWELL, NO LICE. The Phase L (L5, refinement 2)
|
||||
# custom hover-delay tooltip's placement geometry (anchor rect + text extent + client
|
||||
# bounds -> tooltip box, preferring below, flipping above near the bottom edge, clamped
|
||||
# to the client) + the action DISPLAY-PREFIX strip helper. Split out so placement + the
|
||||
# prefix strip are unit-tested outside the DAW; the bank_panel hover timer + LICE overlay
|
||||
# draw are DAW-verified. Mirror of prune_button / component_geometry.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(tooltip STATIC src/tooltip.cpp)
|
||||
target_include_directories(tooltip PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 3) Standalone tests for the pure modules (run without launching REAPER).
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -503,6 +539,18 @@ add_executable(footer_bar_tests tests/test_footer_bar.cpp)
|
||||
target_link_libraries(footer_bar_tests PRIVATE footer_bar)
|
||||
add_test(NAME footer_bar_tests COMMAND footer_bar_tests)
|
||||
|
||||
add_executable(overflow_menu_tests tests/test_overflow_menu.cpp)
|
||||
target_link_libraries(overflow_menu_tests PRIVATE overflow_menu)
|
||||
add_test(NAME overflow_menu_tests COMMAND overflow_menu_tests)
|
||||
|
||||
add_executable(mode_enable_tests tests/test_mode_enable.cpp)
|
||||
target_link_libraries(mode_enable_tests PRIVATE mode_enable)
|
||||
add_test(NAME mode_enable_tests COMMAND mode_enable_tests)
|
||||
|
||||
add_executable(tooltip_tests tests/test_tooltip.cpp)
|
||||
target_link_libraries(tooltip_tests PRIVATE tooltip)
|
||||
add_test(NAME tooltip_tests COMMAND tooltip_tests)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 4) The REAPER extension — a loadable module (dlopen'd by REAPER, not linked).
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -548,8 +596,11 @@ add_library(reaper_reasampler MODULE
|
||||
src/drag_out_win.cpp
|
||||
src/action_bar.cpp
|
||||
src/footer_bar.cpp
|
||||
src/overflow_menu.cpp
|
||||
src/mode_enable.cpp
|
||||
src/tooltip.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 action_buttons drag_out theme component_geometry action_bar footer_bar)
|
||||
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 drag_out theme component_geometry action_bar footer_bar overflow_menu mode_enable tooltip)
|
||||
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