Uladzimir KarpenkaandClaude Opus 4.8 2cf01036a3 Phase 2: move widget-stored state into TRadioController
NR/NB modes, SNB/ANF flags, and drive % were stored only in the widgets
themselves (Btn*.Tag, TrkDrive.Position) — the last hard blocker to a
headless/daemon mode, since without those controls the state had nowhere
to live and CAT/Web read them directly.

- NR/NB: BtnNR.Tag/BtnNB.Tag -> FController.FNRMode/FNBMode (Integer).
- SNB/ANF: BtnSNB.Tag/BtnANF.Tag (0/1) -> FController.FSNB/FANF (Boolean).
- Drive %: TrkDrive.Position -> new FController.FDrivePercent; the slider
  is now pure input (TrkDriveChange pushes its value into the controller),
  while FDriveLevel stays the derived hardware byte.

Buttons/sliders become pure view+input: click handlers and UpdateXButton
read/write the controller field; CAT getters, the web snapshot, and
GetSnapshot all source state from the controller, not the widgets.

No behavioral change. Builds clean (cocoa).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 10:48:51 +03:00
2026-05-29 08:00:22 +03:00
2026-06-02 18:08:10 +03:00
2026-05-28 15:59:49 +03:00
2026-05-28 15:59:49 +03:00
2026-05-28 15:59:49 +03:00
2026-06-02 18:08:10 +03:00
2026-05-25 14:43:05 +03:00
2026-05-25 14:43:05 +03:00
2026-05-25 14:43:05 +03:00
2026-05-25 14:43:05 +03:00
2026-05-25 14:43:05 +03:00
2026-05-21 15:19:43 +03:00
2026-05-21 21:37:25 +03:00
2026-05-24 16:29:13 +03:00
S
Description
No description provided
Readme GPL-2.0
12 MiB
Languages
Pascal 96.4%
Python 2.9%
Shell 0.6%