L2: task-grouped action bar + kit-drawn dock panel

New pure action_bar module (clusters, keybinding sub-labels, overflow, hit-test) supersedes the flat M11 strip; bank_panel chrome/buttons/tabs/grid now draw through the L1 kit by role with hover. Expose draw_kit::toLice in header to fix drawThumbnail forward-refs. CTest 27/27.
This commit is contained in:
2026-07-26 20:52:37 -04:00
parent a20cb46d65
commit 54f37be0bb
7 changed files with 1128 additions and 292 deletions
+16 -2
View File
@@ -27,8 +27,15 @@
#include "peaks.h" // Envelope — the waveform primitive's input
#include "theme.h" // Role / InteractionState / KitColor / TextClass
// LICE + SWELL types at the boundary (this is the shell half). Forward-declared where
// possible to keep the header light; the .cpp includes the full LICE/SWELL headers.
// LICE types at the boundary (this is the shell half). LICE_IBitmap is forward-declared
// to keep the header light. LICE_pixel is a typedef (unsigned int) — not forward-declarable
// — so the full lice.h is included only for the toLice() declaration; on Windows lice.h
// pulls in <windows.h>, which is fine since draw_kit.h is shell-only and never included by
// a pure module.
#ifdef _WIN32
#include <windows.h>
#endif
#include "lice/lice.h"
class LICE_IBitmap;
namespace reasampler {
@@ -46,6 +53,13 @@ enum class Font {
// single-line convention); a caller wanting multi-line composes rows itself.
enum class Align { Left, Center, Right };
// --- KitColor → LICE_pixel conversion ----------------------------------------
// The one place a pure KitColor becomes a LICE_pixel. Declared here so any shell
// translation unit that already includes draw_kit.h can use it without duplicating
// the LICE_RGBA packing. Defined in draw_kit.cpp.
LICE_pixel toLice(const KitColor& c);
// --- Font lifecycle (owned by the kit) ---------------------------------------
// Creates the four cached fonts once. Idempotent: a second call before shutdown is a no-op