mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 18:43:51 +00:00
ui(main): align left panel sliders
This commit is contained in:
+43
-19
@@ -334,6 +334,7 @@ type
|
||||
TrkRxGain: TFlatSlider; // manual gain 0..73 dB
|
||||
LblRxGain: TLabel; // значение усиления
|
||||
TrkVolume: TFlatSlider;
|
||||
LblVolume: TLabel;
|
||||
BtnNR: TFlatButton;
|
||||
BtnNB: TFlatButton;
|
||||
BtnSNB: TFlatButton;
|
||||
@@ -751,6 +752,7 @@ type
|
||||
procedure TrkDriveChange(Sender: TObject);
|
||||
procedure UpdateDriveLabel; // % (openHPSDR) / дБ (Pluto) рядом с ползунком drive
|
||||
procedure TrkVolumeChange(Sender: TObject);
|
||||
procedure UpdateVolumeLabel;
|
||||
function CalcDriveByte: Byte;
|
||||
function ActiveTXFreqHz: Double;
|
||||
function DefaultMicSource: TTXMicSource;
|
||||
@@ -1603,7 +1605,10 @@ begin
|
||||
rfAGCMode:
|
||||
for i := 0 to 4 do StyleButton(BtnAGCMode[i], i = FController.FAGCMode);
|
||||
rfVolume:
|
||||
TrkVolume.Position := FController.ActiveVolume; // RX или TX-монитор
|
||||
begin
|
||||
TrkVolume.Position := FController.ActiveVolume; // RX или TX-монитор
|
||||
UpdateVolumeLabel;
|
||||
end;
|
||||
rfRxGain:
|
||||
UpdateRxGainUI;
|
||||
rfAtten:
|
||||
@@ -1762,6 +1767,7 @@ begin
|
||||
TrkDrive.Position := FController.FDrivePercent; // слайдер ← drive%
|
||||
TrkVolume.Position := FController.ActiveVolume; // слайдер ← загруженная громкость (был баг: не синхронизировался)
|
||||
UpdateDriveLabel; // переключаем единицу %/дБ под бэкенд
|
||||
UpdateVolumeLabel;
|
||||
if Assigned(FSampleRateOverlay) then
|
||||
FSampleRateOverlay.SetCurrentRate(FController.FSampleRate);
|
||||
UpdateNRButton; UpdateNBButton; UpdateSNBButton; UpdateANFButton;
|
||||
@@ -1872,6 +1878,9 @@ const
|
||||
// Заголовок с отступом (20) + MODE_ROWS рядов с шагом 27 + нижний отступ.
|
||||
MODE_PANEL_H = 20 + (MODE_ROWS - 1) * 27 + BTN_SM + 3;
|
||||
PLUTO_AGC_H = 64; // высота отдельного Pluto RF-AGC блока (под AGC)
|
||||
LEFT_SLIDER_LEFT = 56;
|
||||
LEFT_SLIDER_W = LEFT_W - 96;
|
||||
LEFT_SLIDER_VALUE_LEFT = LEFT_W - 38;
|
||||
TOP_VFO_W = 244;
|
||||
TOP_VFO_FREQ_H = 47;
|
||||
var
|
||||
@@ -2161,14 +2170,14 @@ begin
|
||||
LblDrv.Font.Size := 8;
|
||||
|
||||
TrkDrive := TFlatSlider.Create(Self);
|
||||
TrkDrive.Parent := PanelTX; TrkDrive.Left := 34; TrkDrive.Top := 78;
|
||||
TrkDrive.Width := 120; TrkDrive.Height := 16;
|
||||
TrkDrive.Parent := PanelTX; TrkDrive.Left := LEFT_SLIDER_LEFT; TrkDrive.Top := 78;
|
||||
TrkDrive.Width := LEFT_SLIDER_W; TrkDrive.Height := 16;
|
||||
TrkDrive.Min := 0; TrkDrive.Max := 100; TrkDrive.Position := 50;
|
||||
TrkDrive.OnChange := TrkDriveChange;
|
||||
|
||||
LblDrvVal := TLabel.Create(Self);
|
||||
LblDrvVal.Parent := PanelTX;
|
||||
LblDrvVal.Left := 158; LblDrvVal.Top := 77;
|
||||
LblDrvVal.Left := LEFT_SLIDER_VALUE_LEFT; LblDrvVal.Top := 77;
|
||||
LblDrvVal.Font.Color := CLR_TEXT;
|
||||
LblDrvVal.Font.Size := 8;
|
||||
UpdateDriveLabel;
|
||||
@@ -2213,12 +2222,19 @@ begin
|
||||
|
||||
MakeLbl(PanelRXBlock, 'VOL', 4, 50);
|
||||
TrkVolume := TFlatSlider.Create(Self);
|
||||
TrkVolume.Parent := PanelRXBlock; TrkVolume.Left := 34; TrkVolume.Top := 50;
|
||||
TrkVolume.Width := LEFT_W - 38; TrkVolume.Height := 16;
|
||||
TrkVolume.Parent := PanelRXBlock; TrkVolume.Left := LEFT_SLIDER_LEFT; TrkVolume.Top := 50;
|
||||
TrkVolume.Width := LEFT_SLIDER_W; TrkVolume.Height := 16;
|
||||
TrkVolume.Min := 0; TrkVolume.Max := 100;
|
||||
TrkVolume.Position := FController.FVolume;
|
||||
TrkVolume.Position := FController.ActiveVolume;
|
||||
TrkVolume.OnChange := TrkVolumeChange;
|
||||
|
||||
LblVolume := TLabel.Create(Self);
|
||||
LblVolume.Parent := PanelRXBlock;
|
||||
LblVolume.Left := LEFT_SLIDER_VALUE_LEFT; LblVolume.Top := 50;
|
||||
LblVolume.Font.Color := CLR_TEXT;
|
||||
LblVolume.Font.Size := 8;
|
||||
UpdateVolumeLabel;
|
||||
|
||||
BtnNR := MakeBtn(PanelRXBlock, 'NR',
|
||||
LeftPanelButtonLeft(LEFT_W, 5, 0), 74,
|
||||
LeftPanelButtonWidth(LEFT_W, 5, 0), BTN_SM, BtnNRClick);
|
||||
@@ -2244,15 +2260,15 @@ begin
|
||||
LblAtt.Font.Size := 8;
|
||||
|
||||
TrkAtt := TFlatSlider.Create(Self);
|
||||
TrkAtt.Parent := PanelRXBlock; TrkAtt.Left := 34; TrkAtt.Top := 106;
|
||||
TrkAtt.Width := LEFT_W - 76; TrkAtt.Height := 16;
|
||||
TrkAtt.Parent := PanelRXBlock; TrkAtt.Left := LEFT_SLIDER_LEFT; TrkAtt.Top := 106;
|
||||
TrkAtt.Width := LEFT_SLIDER_W; TrkAtt.Height := 16;
|
||||
TrkAtt.Min := 0; TrkAtt.Max := 31; // ADC step attenuator, дБ
|
||||
TrkAtt.Position := FController.FAtten;
|
||||
TrkAtt.OnChange := TrkAttChange;
|
||||
|
||||
LblAttVal := TLabel.Create(Self);
|
||||
LblAttVal.Parent := PanelRXBlock;
|
||||
LblAttVal.Left := LEFT_W - 38; LblAttVal.Top := 106;
|
||||
LblAttVal.Left := LEFT_SLIDER_VALUE_LEFT; LblAttVal.Top := 106;
|
||||
LblAttVal.Font.Color := CLR_TEXT;
|
||||
LblAttVal.Font.Size := 8;
|
||||
UpdateAttLabel;
|
||||
@@ -2297,8 +2313,8 @@ begin
|
||||
// AGC level slider
|
||||
MakeLbl(PanelAGC, 'THRESH', 4, 44);
|
||||
TrkAGC := TFlatSlider.Create(Self);
|
||||
TrkAGC.Parent := PanelAGC; TrkAGC.Left := 56; TrkAGC.Top := 44;
|
||||
TrkAGC.Width := LEFT_W - 96; TrkAGC.Height := 16;
|
||||
TrkAGC.Parent := PanelAGC; TrkAGC.Left := LEFT_SLIDER_LEFT; TrkAGC.Top := 44;
|
||||
TrkAGC.Width := LEFT_SLIDER_W; TrkAGC.Height := 16;
|
||||
TrkAGC.Min := 20; TrkAGC.Max := 120; // 20..120 → −20..-120 dBm
|
||||
TrkAGC.Position := FController.FAGCTop;
|
||||
TrkAGC.Reversed := True;
|
||||
@@ -2306,7 +2322,7 @@ begin
|
||||
|
||||
LblAGCTop := TLabel.Create(Self);
|
||||
LblAGCTop.Parent := PanelAGC;
|
||||
LblAGCTop.Left := LEFT_W - 38; LblAGCTop.Top := 44;
|
||||
LblAGCTop.Left := LEFT_SLIDER_VALUE_LEFT; LblAGCTop.Top := 44;
|
||||
LblAGCTop.Caption := Format('-%ddB', [FController.FAGCTop]);
|
||||
LblAGCTop.Font.Color := CLR_TEXT;
|
||||
LblAGCTop.Font.Size := 8;
|
||||
@@ -2341,14 +2357,14 @@ begin
|
||||
// Manual gain slider.
|
||||
MakeLbl(PanelPlutoAGC, 'GAIN', 4, 44);
|
||||
TrkRxGain := TFlatSlider.Create(Self);
|
||||
TrkRxGain.Parent := PanelPlutoAGC; TrkRxGain.Left := 56; TrkRxGain.Top := 44;
|
||||
TrkRxGain.Width := LEFT_W - 96; TrkRxGain.Height := 16;
|
||||
TrkRxGain.Parent := PanelPlutoAGC; TrkRxGain.Left := LEFT_SLIDER_LEFT; TrkRxGain.Top := 44;
|
||||
TrkRxGain.Width := LEFT_SLIDER_W; TrkRxGain.Height := 16;
|
||||
TrkRxGain.Min := 0; TrkRxGain.Max := 73; // AD936x hardwaregain dB
|
||||
TrkRxGain.Position := FController.FRxGainDb;
|
||||
TrkRxGain.OnChange := TrkRxGainChange;
|
||||
LblRxGain := TLabel.Create(Self);
|
||||
LblRxGain.Parent := PanelPlutoAGC;
|
||||
LblRxGain.Left := LEFT_W - 38; LblRxGain.Top := 44;
|
||||
LblRxGain.Left := LEFT_SLIDER_VALUE_LEFT; LblRxGain.Top := 44;
|
||||
LblRxGain.Caption := Format('%ddB', [FController.FRxGainDb]);
|
||||
LblRxGain.Font.Color := CLR_TEXT;
|
||||
LblRxGain.Font.Size := 8;
|
||||
@@ -2431,9 +2447,9 @@ begin
|
||||
MakeLbl(PanelRawDev, 'DEVIATION', 4, 2);
|
||||
TrkRawDev := TFlatSlider.Create(Self);
|
||||
TrkRawDev.Parent := PanelRawDev;
|
||||
TrkRawDev.Left := 5;
|
||||
TrkRawDev.Left := 34;
|
||||
TrkRawDev.Top := 22;
|
||||
TrkRawDev.Width := LEFT_W - 68;
|
||||
TrkRawDev.Width := LEFT_SLIDER_W;
|
||||
TrkRawDev.Height := 14;
|
||||
TrkRawDev.Min := RAW_FM_DEV_MIN div 50;
|
||||
TrkRawDev.Max := RAW_FM_DEV_MAX div 50;
|
||||
@@ -2467,7 +2483,7 @@ begin
|
||||
TrkFMSQ.Parent := PanelFMSQ;
|
||||
TrkFMSQ.Left := BtnFMSQ.Left + BtnFMSQ.Width + 3;
|
||||
TrkFMSQ.Top := 25;
|
||||
TrkFMSQ.Width := LEFT_W - TrkFMSQ.Left - 30 - 4; // leave 30px for label + margins
|
||||
TrkFMSQ.Width := LEFT_SLIDER_W;
|
||||
TrkFMSQ.Height := 14;
|
||||
TrkFMSQ.Min := 0; TrkFMSQ.Max := 100;
|
||||
TrkFMSQ.Position := FController.FFMSQLevel;
|
||||
@@ -3215,6 +3231,7 @@ begin
|
||||
DL(LblAGCTop, False);
|
||||
DL(LblDrv);
|
||||
DL(LblDrvVal, False);
|
||||
DL(LblVolume, False);
|
||||
DL(LblAttVal, False);
|
||||
DL(LblRxGain, False);
|
||||
DL(LblRawDev, False);
|
||||
@@ -8495,6 +8512,13 @@ procedure TMainForm.TrkVolumeChange(Sender: TObject);
|
||||
begin
|
||||
if FSyncingFromController then Exit;
|
||||
FController.SetVolume(TrkVolume.Position);
|
||||
UpdateVolumeLabel;
|
||||
end;
|
||||
|
||||
procedure TMainForm.UpdateVolumeLabel;
|
||||
begin
|
||||
if LblVolume <> nil then
|
||||
LblVolume.Caption := Format('%d%%', [FController.ActiveVolume]);
|
||||
end;
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
Reference in New Issue
Block a user