feat(slices): кастомные тематизированные popup-меню панов + фиксы позиционирования

Селекторы диапазона/samplerate панов N переведены с нативного TPopupMenu на
своё меню в стиле приложения (одинаково на всех платформах, в цветовой теме).

- FlatPopupMenu.pas (new): TFlatPopupMenu — owner-draw меню как ДОЧЕРНИЙ контрол
  формы (не top-level окно: Wayland центрирует свои top-level окна). Hover,
  галка текущего, клавиатура (↑↓/Enter/Esc), закрытие по клику-вне (MouseCapture)
  и потере фокуса. Позиционируется под лейблом-якорем в клиентских координатах.
- PanDisplayPopup: поповер «◑» тоже переведён с top-level формы на дочерний
  контрол (центрировался на Wayland) — открывается под кнопкой, закрытие «×»
  или повторным «◑».
- MainForm: band/rate-селекторы на FlatPopupMenu; свёртка повторяющегося
  выбора темы (9 инлайнов) в CurrentAppTheme.
- PanafallPanel: курсор-«палец» кликабельных лейблов шапки переприменяется в
  конце Build (флаги *Clickable могли выставляться до создания лейблов —
  samplerate-лейбл не получал crHandPoint).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-13 15:02:08 +03:00
co-authored by Claude Opus 4.8
parent 3ee996154a
commit 9bb86b59b8
4 changed files with 415 additions and 79 deletions
+7
View File
@@ -472,6 +472,13 @@ begin
FBtnPopPan.Visible := False; // хозяин включает у панов N>0
FBtnClosePan := MakeFlatBtn(FHeaderPanel, '×', 0, 0, 10, 10, BtnClosePanClick);
FBtnClosePan.Visible := False; // хозяин включает у панов N>0
// Курсоры кликабельных лейблов: флаги *Clickable могли быть выставлены ДО
// Build (rate — в CreatePanCore), когда лейблов ещё не было → крючок курсора
// не применился. Переприменяем теперь, когда лейблы созданы.
SetRateClickable(FRateClickable);
SetBandClickable(FBandClickable);
SetADCClickable(FADCClickable);
end;
procedure TPanafallPanel.ReparentTo(NewParent: TWinControl);