mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 17:27:32 +00:00
6c38777c582d65db272f1804628981af87c7319d
Раньше «▦» имел смысл только при >=2 доп. панах (с одним грид совпадал со стеком) — основной и единственный дополнительный приёмник могли стоять лишь друг под другом. Теперь при ОДНОМ доп. пане грид = две колонки во всю высоту: пан 0 слева, доп. справа, между ними тот же вертикальный сплиттер. Wideband при этом остаётся сверху во всю ширину PanelRight, обе колонки начинаются под ним (StackTop=AWideH, пан 0 раскладывается с ATopOffset=0, шапки панов уходят в свои колонки — Pan0HeaderH над wideband не резервируется). MainForm: ExtraPanCount/PanGridTwoCol; FPanColShare расширен на индекс 0 (пан 0 — тоже колонка), доля персистится через Cfg.Pans[0].ColShare — ключ col_share в Settings уже был, теперь пишется для всех панов; отдельная ветка в LayoutPanStack (горизонтальные сплиттеры спрятаны, кламп 15% ширины на колонку); vsplit-хендлеры ищут левую колонку downto 0 в two-col и нормируют доли с учётом пана 0; PanSplitMouseDown/Up гейтятся not PanGridTwoCol; кнопка «▦» видна уже при одном доп. пане. Отдельно исправлен sync-гард в тике дисплея: он сверял PbWideband.Width с FPan.SpectrumWidth, а в two-col пан 0 — половина ширины при wideband во всю, поэтому условие было вечно истинным и ResizeSpectrumPanels вызывался каждый кадр — раскладка пересчитывалась под курсором (вертикальный сплиттер не тянулся) и зря сбрасывались битмапы. Теперь wideband сверяется с PanelRight.ClientWidth — его настоящим инвариантом. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Languages
Pascal
96.3%
Python
3%
Shell
0.6%