feat(version): V4 beta-in-isolation channel via -DREASAMPLER_CHANNEL
Compile-time channel flag forks a fully isolated reaper_reasampler_beta (namespace, command-id prefix, action names, dock ident, -beta render) from one auditable app_version definition. Stable identity byte-unchanged.
This commit is contained in:
+23
-2
@@ -148,6 +148,9 @@ constexpr int kFooterHeight = 26;
|
||||
const LICE_pixel kColFooterBg = LICE_RGBA(20, 20, 22, 255);
|
||||
const LICE_pixel kColFooterBorder = LICE_RGBA(70, 70, 76, 255);
|
||||
const COLORREF kRgbFooterText = RGB(190, 205, 198);
|
||||
// Dimmer than the tail label — the version/channel readout is passive identification,
|
||||
// not an interactive control, so it recedes visually (V3 unobtrusive placement).
|
||||
const COLORREF kRgbFooterVersion = RGB(120, 128, 124);
|
||||
|
||||
// --- Vertical split + region headers + tab strip (Phase B4) -------------------
|
||||
//
|
||||
@@ -528,13 +531,27 @@ void drawTailFooter(LICE_IBitmap* bmp, int w, int h) {
|
||||
|
||||
HDC dc = bmp->getDC();
|
||||
if (!dc) return;
|
||||
SetBkMode(dc, TRANSPARENT);
|
||||
|
||||
// Tail-mode toggle, left-aligned (the interactive control — footer clicks cycle it).
|
||||
const std::string label = tailToggleLabel(currentTail());
|
||||
RECT rc = f;
|
||||
rc.left += 8;
|
||||
SetTextColor(dc, kRgbFooterText);
|
||||
SetBkMode(dc, TRANSPARENT);
|
||||
DrawText(dc, label.c_str(), -1, &rc,
|
||||
DT_LEFT | DT_VCENTER | DT_SINGLELINE | DT_END_ELLIPSIS);
|
||||
|
||||
// Version/channel readout (Phase V, V3/V4), right-aligned in the same footer strip so
|
||||
// it is always visible but unobtrusive. appVersion() renders "0.9.01" on stable and
|
||||
// "0.9.01-beta" on beta, so a beta panel self-identifies its channel here. Right inset
|
||||
// matches the left inset; DT_RIGHT keeps it clear of the left-aligned tail label
|
||||
// (the two never overlap at normal panel widths — the label is short, the readout is
|
||||
// ~10 chars, and DT_END_ELLIPSIS on both degrades gracefully if a panel is ever tiny).
|
||||
RECT vrc = f;
|
||||
vrc.right -= 8;
|
||||
SetTextColor(dc, kRgbFooterVersion);
|
||||
DrawText(dc, reasampler::appVersion().c_str(), -1, &vrc,
|
||||
DT_RIGHT | DT_VCENTER | DT_SINGLELINE | DT_END_ELLIPSIS);
|
||||
}
|
||||
|
||||
// True iff client-relative (x, y) falls inside the (non-degenerate) footer strip.
|
||||
@@ -1993,7 +2010,11 @@ void openPanel() {
|
||||
GetMainHwnd(), dlgProc, 0);
|
||||
if (!g_panel.hwnd) return;
|
||||
|
||||
DockWindowAddEx(g_panel.hwnd, "ReaSampler Bank", "reasampler_bank_panel", true);
|
||||
// Channel-qualified dock identity (Phase V, V4). The title and the persisted-position
|
||||
// identstr both come from app_version, so a beta panel is distinguishable ("ReaSampler
|
||||
// Bank beta") and does not fight over stable's saved dock slot (the identstr is a
|
||||
// REAPER-global collision surface — it keys the persisted dock position).
|
||||
DockWindowAddEx(g_panel.hwnd, dockTitle().c_str(), dockIdent().c_str(), true);
|
||||
DockWindowActivate(g_panel.hwnd);
|
||||
g_panel.open = true;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user