mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:37:33 +00:00
Align left panel button margins
This commit is contained in:
+123
-49
@@ -126,6 +126,8 @@ const
|
|||||||
SMETER_MARGIN = 3;
|
SMETER_MARGIN = 3;
|
||||||
TOP_SMETER_GAP = 8;
|
TOP_SMETER_GAP = 8;
|
||||||
TOP_VFO_FONT = 25;
|
TOP_VFO_FONT = 25;
|
||||||
|
LEFT_PANEL_BTN_PAD = 3;
|
||||||
|
LEFT_PANEL_BTN_GAP = 2;
|
||||||
|
|
||||||
type
|
type
|
||||||
TDeviceItem = record
|
TDeviceItem = record
|
||||||
@@ -434,6 +436,8 @@ type
|
|||||||
|
|
||||||
// ---- Helpers ----
|
// ---- Helpers ----
|
||||||
procedure BuildUI;
|
procedure BuildUI;
|
||||||
|
function LeftPanelButtonLeft(PanelWidth, ColCount, ColIndex: Integer): Integer;
|
||||||
|
function LeftPanelButtonWidth(PanelWidth, ColCount, ColIndex: Integer): Integer;
|
||||||
procedure ApplyDarkTheme;
|
procedure ApplyDarkTheme;
|
||||||
procedure SetLightTheme(V: Boolean);
|
procedure SetLightTheme(V: Boolean);
|
||||||
procedure StyleButton(B: TFlatButton; Active: Boolean = False);
|
procedure StyleButton(B: TFlatButton; Active: Boolean = False);
|
||||||
@@ -762,6 +766,31 @@ uses SettingsForm;
|
|||||||
|
|
||||||
{$R *.lfm}
|
{$R *.lfm}
|
||||||
|
|
||||||
|
function TMainForm.LeftPanelButtonWidth(PanelWidth, ColCount,
|
||||||
|
ColIndex: Integer): Integer;
|
||||||
|
var
|
||||||
|
InnerW, BaseW, Extra: Integer;
|
||||||
|
begin
|
||||||
|
if ColCount <= 0 then Exit(0);
|
||||||
|
InnerW := PanelWidth - 2 * LEFT_PANEL_BTN_PAD -
|
||||||
|
(ColCount - 1) * LEFT_PANEL_BTN_GAP;
|
||||||
|
BaseW := InnerW div ColCount;
|
||||||
|
Extra := InnerW mod ColCount;
|
||||||
|
Result := BaseW;
|
||||||
|
if ColIndex < Extra then Inc(Result);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TMainForm.LeftPanelButtonLeft(PanelWidth, ColCount,
|
||||||
|
ColIndex: Integer): Integer;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
Result := LEFT_PANEL_BTN_PAD;
|
||||||
|
for i := 0 to ColIndex - 1 do
|
||||||
|
Inc(Result, LeftPanelButtonWidth(PanelWidth, ColCount, i) +
|
||||||
|
LEFT_PANEL_BTN_GAP);
|
||||||
|
end;
|
||||||
|
|
||||||
constructor TWisdomBuildThread.Create(const ADirectory: string);
|
constructor TWisdomBuildThread.Create(const ADirectory: string);
|
||||||
begin
|
begin
|
||||||
inherited Create(False);
|
inherited Create(False);
|
||||||
@@ -1807,9 +1836,12 @@ begin
|
|||||||
PanelTX.BevelOuter := bvNone;
|
PanelTX.BevelOuter := bvNone;
|
||||||
MakeLbl(PanelTX, 'TX', 4, 2);
|
MakeLbl(PanelTX, 'TX', 4, 2);
|
||||||
|
|
||||||
W := (LEFT_W - 6) div 4;
|
BtnMOX := MakeBtn(PanelTX, 'MOX',
|
||||||
BtnMOX := MakeBtn(PanelTX, 'MOX', 2, 16, W - 2, BTN_SM, BtnMOXClick);
|
LeftPanelButtonLeft(LEFT_W, 4, 0), 16,
|
||||||
BtnTUN := MakeBtn(PanelTX, 'TUN', W + 2, 16, W - 2, BTN_SM, BtnTUNClick);
|
LeftPanelButtonWidth(LEFT_W, 4, 0), BTN_SM, BtnMOXClick);
|
||||||
|
BtnTUN := MakeBtn(PanelTX, 'TUN',
|
||||||
|
LeftPanelButtonLeft(LEFT_W, 4, 1), 16,
|
||||||
|
LeftPanelButtonWidth(LEFT_W, 4, 1), BTN_SM, BtnTUNClick);
|
||||||
|
|
||||||
LblDrv := TLabel.Create(Self);
|
LblDrv := TLabel.Create(Self);
|
||||||
LblDrv.Parent := PanelTX; LblDrv.Left := 4; LblDrv.Top := 53;
|
LblDrv.Parent := PanelTX; LblDrv.Left := 4; LblDrv.Top := 53;
|
||||||
@@ -1832,13 +1864,13 @@ begin
|
|||||||
PanelBands.SetBounds(0, Y, LEFT_W, 74);
|
PanelBands.SetBounds(0, Y, LEFT_W, 74);
|
||||||
PanelBands.BevelOuter := bvNone;
|
PanelBands.BevelOuter := bvNone;
|
||||||
MakeLbl(PanelBands, 'BAND', 4, 2);
|
MakeLbl(PanelBands, 'BAND', 4, 2);
|
||||||
W := (LEFT_W - 6) div 6;
|
|
||||||
for i := 0 to BAND_COUNT - 1 do
|
for i := 0 to BAND_COUNT - 1 do
|
||||||
begin
|
begin
|
||||||
B := MakeBtn(PanelBands, BAND_NAMES[i],
|
B := MakeBtn(PanelBands, BAND_NAMES[i],
|
||||||
2 + (i mod 6) * W,
|
LeftPanelButtonLeft(LEFT_W, 6, i mod 6),
|
||||||
16 + (i div 6) * 27,
|
16 + (i div 6) * 27,
|
||||||
W - 2, BTN_SM, BtnBandClick);
|
LeftPanelButtonWidth(LEFT_W, 6, i mod 6),
|
||||||
|
BTN_SM, BtnBandClick);
|
||||||
B.Tag := i;
|
B.Tag := i;
|
||||||
BtnBand[i] := B;
|
BtnBand[i] := B;
|
||||||
end;
|
end;
|
||||||
@@ -1854,13 +1886,13 @@ begin
|
|||||||
PanelMode.SetBounds(0, Y, LEFT_W, 74);
|
PanelMode.SetBounds(0, Y, LEFT_W, 74);
|
||||||
PanelMode.BevelOuter := bvNone;
|
PanelMode.BevelOuter := bvNone;
|
||||||
MakeLbl(PanelMode, 'MODE', 4, 2);
|
MakeLbl(PanelMode, 'MODE', 4, 2);
|
||||||
W := (LEFT_W - 6) div 4;
|
|
||||||
for i := 0 to MODE_COUNT - 1 do
|
for i := 0 to MODE_COUNT - 1 do
|
||||||
begin
|
begin
|
||||||
B := MakeBtn(PanelMode, MODE_NAMES[i],
|
B := MakeBtn(PanelMode, MODE_NAMES[i],
|
||||||
2 + (i mod 4) * W,
|
LeftPanelButtonLeft(LEFT_W, 4, i mod 4),
|
||||||
16 + (i div 4) * 27,
|
16 + (i div 4) * 27,
|
||||||
W - 2, BTN_SM, BtnModeClick);
|
LeftPanelButtonWidth(LEFT_W, 4, i mod 4),
|
||||||
|
BTN_SM, BtnModeClick);
|
||||||
B.Tag := i;
|
B.Tag := i;
|
||||||
BtnMode[i] := B;
|
BtnMode[i] := B;
|
||||||
StyleButton(B, i = FMode);
|
StyleButton(B, i = FMode);
|
||||||
@@ -1874,13 +1906,13 @@ begin
|
|||||||
PanelFilter.SetBounds(0, Y, LEFT_W, 74);
|
PanelFilter.SetBounds(0, Y, LEFT_W, 74);
|
||||||
PanelFilter.BevelOuter := bvNone;
|
PanelFilter.BevelOuter := bvNone;
|
||||||
MakeLbl(PanelFilter, 'FILTER', 4, 2);
|
MakeLbl(PanelFilter, 'FILTER', 4, 2);
|
||||||
W := (LEFT_W - 6) div 5;
|
|
||||||
for i := 0 to FILT_COUNT - 1 do
|
for i := 0 to FILT_COUNT - 1 do
|
||||||
begin
|
begin
|
||||||
B := MakeBtn(PanelFilter, '---',
|
B := MakeBtn(PanelFilter, '---',
|
||||||
2 + (i mod 5) * W,
|
LeftPanelButtonLeft(LEFT_W, 5, i mod 5),
|
||||||
16 + (i div 5) * 27,
|
16 + (i div 5) * 27,
|
||||||
W - 2, BTN_SM, BtnFilterClick);
|
LeftPanelButtonWidth(LEFT_W, 5, i mod 5),
|
||||||
|
BTN_SM, BtnFilterClick);
|
||||||
B.Tag := i;
|
B.Tag := i;
|
||||||
BtnFilter[i] := B;
|
BtnFilter[i] := B;
|
||||||
end;
|
end;
|
||||||
@@ -1894,16 +1926,18 @@ begin
|
|||||||
PanelFMSQ.BevelOuter := bvNone;
|
PanelFMSQ.BevelOuter := bvNone;
|
||||||
PanelFMSQ.Visible := False;
|
PanelFMSQ.Visible := False;
|
||||||
MakeLbl(PanelFMSQ, 'SQL', 4, 4);
|
MakeLbl(PanelFMSQ, 'SQL', 4, 4);
|
||||||
W := LEFT_W div 4 - 2; // button width ~56px
|
W := LeftPanelButtonWidth(LEFT_W, 4, 0);
|
||||||
BtnFMSQ := MakeBtn(PanelFMSQ, 'SQL', 2, 20, W, BTN_SM, BtnFMSQClick);
|
BtnFMSQ := MakeBtn(PanelFMSQ, 'SQL',
|
||||||
|
LeftPanelButtonLeft(LEFT_W, 4, 0), 20,
|
||||||
|
W, BTN_SM, BtnFMSQClick);
|
||||||
StyleButton(BtnFMSQ, False);
|
StyleButton(BtnFMSQ, False);
|
||||||
// Slider: vertically centred with button text (button top=20, h=24 → center=32)
|
// Slider: vertically centred with button text (button top=20, h=24 → center=32)
|
||||||
// Reserve 28px on the right for the numeric label
|
// Reserve 28px on the right for the numeric label
|
||||||
TrkFMSQ := TFlatSlider.Create(Self);
|
TrkFMSQ := TFlatSlider.Create(Self);
|
||||||
TrkFMSQ.Parent := PanelFMSQ;
|
TrkFMSQ.Parent := PanelFMSQ;
|
||||||
TrkFMSQ.Left := W + 6;
|
TrkFMSQ.Left := BtnFMSQ.Left + BtnFMSQ.Width + 3;
|
||||||
TrkFMSQ.Top := 25; // 32 - 14/2 = 25
|
TrkFMSQ.Top := 25; // 32 - 14/2 = 25
|
||||||
TrkFMSQ.Width := LEFT_W - W - 6 - 30 - 4; // leave 30px for label + margins
|
TrkFMSQ.Width := LEFT_W - TrkFMSQ.Left - 30 - 4; // leave 30px for label + margins
|
||||||
TrkFMSQ.Height := 14;
|
TrkFMSQ.Height := 14;
|
||||||
TrkFMSQ.Min := 0; TrkFMSQ.Max := 100;
|
TrkFMSQ.Min := 0; TrkFMSQ.Max := 100;
|
||||||
TrkFMSQ.Position := FFMSQLevel;
|
TrkFMSQ.Position := FFMSQLevel;
|
||||||
@@ -1926,10 +1960,16 @@ begin
|
|||||||
PanelFMCTCSS.BevelOuter := bvNone;
|
PanelFMCTCSS.BevelOuter := bvNone;
|
||||||
PanelFMCTCSS.Visible := False;
|
PanelFMCTCSS.Visible := False;
|
||||||
MakeLbl(PanelFMCTCSS, 'CTCSS', 4, 4);
|
MakeLbl(PanelFMCTCSS, 'CTCSS', 4, 4);
|
||||||
W := LEFT_W div 3 - 2;
|
BtnFMCTCSS := MakeBtn(PanelFMCTCSS, 'CTCSS',
|
||||||
BtnFMCTCSS := MakeBtn(PanelFMCTCSS, 'CTCSS', 2, 20, W, BTN_H, BtnFMCTCSSClick);
|
LeftPanelButtonLeft(LEFT_W, 3, 0), 20,
|
||||||
|
LeftPanelButtonWidth(LEFT_W, 3, 0),
|
||||||
|
BTN_H, BtnFMCTCSSClick);
|
||||||
StyleButton(BtnFMCTCSS, False);
|
StyleButton(BtnFMCTCSS, False);
|
||||||
BtnFMCTCSSTone := MakeBtn(PanelFMCTCSS, CTCSS_NAMES[0], W + 4, 20, LEFT_W - W - 8, BTN_H, BtnFMCTCSSToneClick);
|
BtnFMCTCSSTone := MakeBtn(PanelFMCTCSS, CTCSS_NAMES[0],
|
||||||
|
LeftPanelButtonLeft(LEFT_W, 3, 1), 20,
|
||||||
|
LEFT_W - LEFT_PANEL_BTN_PAD -
|
||||||
|
LeftPanelButtonLeft(LEFT_W, 3, 1),
|
||||||
|
BTN_H, BtnFMCTCSSToneClick);
|
||||||
StyleButton(BtnFMCTCSSTone, False);
|
StyleButton(BtnFMCTCSSTone, False);
|
||||||
|
|
||||||
FCTCSSDropDown := TFlatDropDown.Create(BtnFMCTCSSTone, PanelLeft, 4, BTN_SM);
|
FCTCSSDropDown := TFlatDropDown.Create(BtnFMCTCSSTone, PanelLeft, 4, BTN_SM);
|
||||||
@@ -1944,11 +1984,16 @@ begin
|
|||||||
PanelFMStep.BevelOuter := bvNone;
|
PanelFMStep.BevelOuter := bvNone;
|
||||||
PanelFMStep.Visible := False;
|
PanelFMStep.Visible := False;
|
||||||
MakeLbl(PanelFMStep, 'STEP', 4, 4);
|
MakeLbl(PanelFMStep, 'STEP', 4, 4);
|
||||||
W := LEFT_W div 3 - 2;
|
BtnFMStep := MakeBtn(PanelFMStep, 'STEP',
|
||||||
BtnFMStep := MakeBtn(PanelFMStep, 'STEP', 2, 20, W, BTN_H, BtnFMStepClick);
|
LeftPanelButtonLeft(LEFT_W, 3, 0), 20,
|
||||||
|
LeftPanelButtonWidth(LEFT_W, 3, 0),
|
||||||
|
BTN_H, BtnFMStepClick);
|
||||||
StyleButton(BtnFMStep, FFMStepOn);
|
StyleButton(BtnFMStep, FFMStepOn);
|
||||||
BtnFMStepSel := MakeBtn(PanelFMStep, FM_STEP_NAMES[FFMStepIdx],
|
BtnFMStepSel := MakeBtn(PanelFMStep, FM_STEP_NAMES[FFMStepIdx],
|
||||||
W + 4, 20, LEFT_W - W - 8, BTN_H, BtnFMStepSelClick);
|
LeftPanelButtonLeft(LEFT_W, 3, 1), 20,
|
||||||
|
LEFT_W - LEFT_PANEL_BTN_PAD -
|
||||||
|
LeftPanelButtonLeft(LEFT_W, 3, 1),
|
||||||
|
BTN_H, BtnFMStepSelClick);
|
||||||
StyleButton(BtnFMStepSel, False);
|
StyleButton(BtnFMStepSel, False);
|
||||||
|
|
||||||
FStepDropDown := TFlatDropDown.Create(BtnFMStepSel, PanelLeft, FM_STEP_COUNT, BTN_SM);
|
FStepDropDown := TFlatDropDown.Create(BtnFMStepSel, PanelLeft, FM_STEP_COUNT, BTN_SM);
|
||||||
@@ -1957,12 +2002,17 @@ begin
|
|||||||
FStepDropDown.OnSelect := OnStepDropDownSelect;
|
FStepDropDown.OnSelect := OnStepDropDownSelect;
|
||||||
|
|
||||||
// CTUN / DUP buttons (display-related)
|
// CTUN / DUP buttons (display-related)
|
||||||
BtnCTun := MakeBtn(PanelLeft, 'CTUN', 2, Y, LEFT_W div 3 - 2, BTN_H, BtnCTunClick);
|
BtnCTun := MakeBtn(PanelLeft, 'CTUN',
|
||||||
|
LeftPanelButtonLeft(LEFT_W, 3, 0), Y,
|
||||||
|
LeftPanelButtonWidth(LEFT_W, 3, 0),
|
||||||
|
BTN_H, BtnCTunClick);
|
||||||
BtnCTun.Tag := 0;
|
BtnCTun.Tag := 0;
|
||||||
StyleButton(BtnCTun, FCTun);
|
StyleButton(BtnCTun, FCTun);
|
||||||
|
|
||||||
BtnDUP := MakeBtn(PanelLeft, 'DUP',
|
BtnDUP := MakeBtn(PanelLeft, 'DUP',
|
||||||
2 + (LEFT_W div 3) + 0, Y, LEFT_W div 3 - 2, BTN_H, BtnDUPClick);
|
LeftPanelButtonLeft(LEFT_W, 3, 1), Y,
|
||||||
|
LeftPanelButtonWidth(LEFT_W, 3, 1),
|
||||||
|
BTN_H, BtnDUPClick);
|
||||||
BtnDUP.Tag := 0;
|
BtnDUP.Tag := 0;
|
||||||
StyleButton(BtnDUP, FDisplayDuplex);
|
StyleButton(BtnDUP, FDisplayDuplex);
|
||||||
|
|
||||||
@@ -1976,12 +2026,31 @@ begin
|
|||||||
|
|
||||||
// AGC mode — 5 кнопок в ряд
|
// AGC mode — 5 кнопок в ряд
|
||||||
MakeLbl(PanelRX, 'AGC', 4, 4);
|
MakeLbl(PanelRX, 'AGC', 4, 4);
|
||||||
W := (LEFT_W - 10) div 5;
|
BtnAGCMode[0] := MakeBtn(PanelRX, 'FAST',
|
||||||
BtnAGCMode[0] := MakeBtn(PanelRX,'FAST', 2, 22, W, BTN_SM, BtnAGCModeClick); BtnAGCMode[0].Tag:=0;
|
LeftPanelButtonLeft(LEFT_W, 5, 0), 22,
|
||||||
BtnAGCMode[1] := MakeBtn(PanelRX,'MED', W+4, 22, W, BTN_SM, BtnAGCModeClick); BtnAGCMode[1].Tag:=1;
|
LeftPanelButtonWidth(LEFT_W, 5, 0),
|
||||||
BtnAGCMode[2] := MakeBtn(PanelRX,'SLOW', 2*W+6, 22, W, BTN_SM, BtnAGCModeClick); BtnAGCMode[2].Tag:=2;
|
BTN_SM, BtnAGCModeClick);
|
||||||
BtnAGCMode[3] := MakeBtn(PanelRX,'LONG', 3*W+8, 22, W, BTN_SM, BtnAGCModeClick); BtnAGCMode[3].Tag:=3;
|
BtnAGCMode[0].Tag := 0;
|
||||||
BtnAGCMode[4] := MakeBtn(PanelRX,'OFF', 4*W+10, 22, W, BTN_SM, BtnAGCModeClick); BtnAGCMode[4].Tag:=4;
|
BtnAGCMode[1] := MakeBtn(PanelRX, 'MED',
|
||||||
|
LeftPanelButtonLeft(LEFT_W, 5, 1), 22,
|
||||||
|
LeftPanelButtonWidth(LEFT_W, 5, 1),
|
||||||
|
BTN_SM, BtnAGCModeClick);
|
||||||
|
BtnAGCMode[1].Tag := 1;
|
||||||
|
BtnAGCMode[2] := MakeBtn(PanelRX, 'SLOW',
|
||||||
|
LeftPanelButtonLeft(LEFT_W, 5, 2), 22,
|
||||||
|
LeftPanelButtonWidth(LEFT_W, 5, 2),
|
||||||
|
BTN_SM, BtnAGCModeClick);
|
||||||
|
BtnAGCMode[2].Tag := 2;
|
||||||
|
BtnAGCMode[3] := MakeBtn(PanelRX, 'LONG',
|
||||||
|
LeftPanelButtonLeft(LEFT_W, 5, 3), 22,
|
||||||
|
LeftPanelButtonWidth(LEFT_W, 5, 3),
|
||||||
|
BTN_SM, BtnAGCModeClick);
|
||||||
|
BtnAGCMode[3].Tag := 3;
|
||||||
|
BtnAGCMode[4] := MakeBtn(PanelRX, 'OFF',
|
||||||
|
LeftPanelButtonLeft(LEFT_W, 5, 4), 22,
|
||||||
|
LeftPanelButtonWidth(LEFT_W, 5, 4),
|
||||||
|
BTN_SM, BtnAGCModeClick);
|
||||||
|
BtnAGCMode[4].Tag := 4;
|
||||||
for i := 0 to 4 do StyleButton(BtnAGCMode[i], i = FAGCMode);
|
for i := 0 to 4 do StyleButton(BtnAGCMode[i], i = FAGCMode);
|
||||||
|
|
||||||
// AGC level slider
|
// AGC level slider
|
||||||
@@ -2011,12 +2080,21 @@ begin
|
|||||||
TrkVolume.OnChange := TrkVolumeChange;
|
TrkVolume.OnChange := TrkVolumeChange;
|
||||||
|
|
||||||
// NR NB SNB ANF MUTE
|
// NR NB SNB ANF MUTE
|
||||||
W := (LEFT_W - 10) div 5;
|
BtnNR := MakeBtn(PanelRX, 'NR',
|
||||||
BtnNR := MakeBtn(PanelRX, 'NR', 2, 96, W, BTN_SM, BtnNRClick);
|
LeftPanelButtonLeft(LEFT_W, 5, 0), 96,
|
||||||
BtnNB := MakeBtn(PanelRX, 'NB', W+4, 96, W, BTN_SM, BtnNBClick);
|
LeftPanelButtonWidth(LEFT_W, 5, 0), BTN_SM, BtnNRClick);
|
||||||
BtnSNB := MakeBtn(PanelRX, 'SNB', 2*W+6, 96, W, BTN_SM, BtnSNBClick);
|
BtnNB := MakeBtn(PanelRX, 'NB',
|
||||||
BtnANF := MakeBtn(PanelRX, 'ANF', 3*W+8, 96, W, BTN_SM, BtnANFClick);
|
LeftPanelButtonLeft(LEFT_W, 5, 1), 96,
|
||||||
BtnMute:= MakeBtn(PanelRX, 'MUTE', 4*W+10, 96, W, BTN_SM, BtnMuteClick);
|
LeftPanelButtonWidth(LEFT_W, 5, 1), BTN_SM, BtnNBClick);
|
||||||
|
BtnSNB := MakeBtn(PanelRX, 'SNB',
|
||||||
|
LeftPanelButtonLeft(LEFT_W, 5, 2), 96,
|
||||||
|
LeftPanelButtonWidth(LEFT_W, 5, 2), BTN_SM, BtnSNBClick);
|
||||||
|
BtnANF := MakeBtn(PanelRX, 'ANF',
|
||||||
|
LeftPanelButtonLeft(LEFT_W, 5, 3), 96,
|
||||||
|
LeftPanelButtonWidth(LEFT_W, 5, 3), BTN_SM, BtnANFClick);
|
||||||
|
BtnMute := MakeBtn(PanelRX, 'MUTE',
|
||||||
|
LeftPanelButtonLeft(LEFT_W, 5, 4), 96,
|
||||||
|
LeftPanelButtonWidth(LEFT_W, 5, 4), BTN_SM, BtnMuteClick);
|
||||||
|
|
||||||
Inc(Y, 126);
|
Inc(Y, 126);
|
||||||
|
|
||||||
@@ -4329,7 +4407,6 @@ var
|
|||||||
i: Integer;
|
i: Integer;
|
||||||
Names: array[0..FILT_COUNT-1] of string;
|
Names: array[0..FILT_COUNT-1] of string;
|
||||||
DefIdx: Integer;
|
DefIdx: Integer;
|
||||||
W: Integer;
|
|
||||||
begin
|
begin
|
||||||
if FMode = MODE_FM then
|
if FMode = MODE_FM then
|
||||||
begin
|
begin
|
||||||
@@ -4338,16 +4415,15 @@ begin
|
|||||||
if FFilter > 1 then FFilter := FILT_FM_DEF; // sanitize, keep NFM/WFM as-is
|
if FFilter > 1 then FFilter := FILT_FM_DEF; // sanitize, keep NFM/WFM as-is
|
||||||
FFilterBW := FILT_FM_BW[FFilter];
|
FFilterBW := FILT_FM_BW[FFilter];
|
||||||
FFMDeviation := FILT_FM_DEV[FFilter];
|
FFMDeviation := FILT_FM_DEV[FFilter];
|
||||||
W := (PanelFilter.Width - 6) div 2;
|
|
||||||
BtnFilter[0].Caption := FILT_FM_NAMES[0];
|
BtnFilter[0].Caption := FILT_FM_NAMES[0];
|
||||||
BtnFilter[0].Left := 2;
|
BtnFilter[0].Left := LeftPanelButtonLeft(PanelFilter.Width, 2, 0);
|
||||||
BtnFilter[0].Width := W - 2;
|
BtnFilter[0].Width := LeftPanelButtonWidth(PanelFilter.Width, 2, 0);
|
||||||
BtnFilter[0].Top := 16;
|
BtnFilter[0].Top := 16;
|
||||||
BtnFilter[0].Visible := True;
|
BtnFilter[0].Visible := True;
|
||||||
StyleButton(BtnFilter[0], FFilter = 0);
|
StyleButton(BtnFilter[0], FFilter = 0);
|
||||||
BtnFilter[1].Caption := FILT_FM_NAMES[1];
|
BtnFilter[1].Caption := FILT_FM_NAMES[1];
|
||||||
BtnFilter[1].Left := W + 2;
|
BtnFilter[1].Left := LeftPanelButtonLeft(PanelFilter.Width, 2, 1);
|
||||||
BtnFilter[1].Width := W - 2;
|
BtnFilter[1].Width := LeftPanelButtonWidth(PanelFilter.Width, 2, 1);
|
||||||
BtnFilter[1].Top := 16;
|
BtnFilter[1].Top := 16;
|
||||||
BtnFilter[1].Visible := True;
|
BtnFilter[1].Visible := True;
|
||||||
StyleButton(BtnFilter[1], FFilter = 1);
|
StyleButton(BtnFilter[1], FFilter = 1);
|
||||||
@@ -4377,12 +4453,11 @@ begin
|
|||||||
if PanelFMSQ <> nil then PanelFMSQ.Visible := False;
|
if PanelFMSQ <> nil then PanelFMSQ.Visible := False;
|
||||||
if PanelFMCTCSS <> nil then PanelFMCTCSS.Visible := False;
|
if PanelFMCTCSS <> nil then PanelFMCTCSS.Visible := False;
|
||||||
if PanelFMStep <> nil then begin CloseFMStepPopup; PanelFMStep.Visible := False; end;
|
if PanelFMStep <> nil then begin CloseFMStepPopup; PanelFMStep.Visible := False; end;
|
||||||
W := (PanelFilter.Width - 6) div 5;
|
|
||||||
for i := 0 to FILT_COUNT - 1 do
|
for i := 0 to FILT_COUNT - 1 do
|
||||||
begin
|
begin
|
||||||
BtnFilter[i].Left := 2 + (i mod 5) * W;
|
BtnFilter[i].Left := LeftPanelButtonLeft(PanelFilter.Width, 5, i mod 5);
|
||||||
BtnFilter[i].Top := 16 + (i div 5) * 27;
|
BtnFilter[i].Top := 16 + (i div 5) * 27;
|
||||||
BtnFilter[i].Width := W - 2;
|
BtnFilter[i].Width := LeftPanelButtonWidth(PanelFilter.Width, 5, i mod 5);
|
||||||
BtnFilter[i].Visible := True;
|
BtnFilter[i].Visible := True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -6420,7 +6495,7 @@ end;
|
|||||||
procedure TMainForm.RebuildXvtrButtons;
|
procedure TMainForm.RebuildXvtrButtons;
|
||||||
var
|
var
|
||||||
i, Pos, XvtrRows: Integer;
|
i, Pos, XvtrRows: Integer;
|
||||||
W, BtnH, RowH, MaxBottom: Integer;
|
BtnH, RowH, MaxBottom: Integer;
|
||||||
B: TFlatButton;
|
B: TFlatButton;
|
||||||
Cap: string;
|
Cap: string;
|
||||||
begin
|
begin
|
||||||
@@ -6447,7 +6522,6 @@ begin
|
|||||||
if BtnH = 0 then BtnH := MulDiv(24, Screen.PixelsPerInch, 96);
|
if BtnH = 0 then BtnH := MulDiv(24, Screen.PixelsPerInch, 96);
|
||||||
RowH := BtnH + 3; // шаг ряда: высота кнопки + 3px зазор (как 27=24+3 при 1x)
|
RowH := BtnH + 3; // шаг ряда: высота кнопки + 3px зазор (как 27=24+3 при 1x)
|
||||||
|
|
||||||
W := (PanelBands.Width - 6) div 6;
|
|
||||||
Pos := 0; // позиция среди enabled слотов
|
Pos := 0; // позиция среди enabled слотов
|
||||||
for i := 0 to CFG_XVTR_COUNT - 1 do
|
for i := 0 to CFG_XVTR_COUNT - 1 do
|
||||||
if FXvtrSettings.Entries[i].Enabled then
|
if FXvtrSettings.Entries[i].Enabled then
|
||||||
@@ -6458,9 +6532,9 @@ begin
|
|||||||
B := TFlatButton.Create(Self);
|
B := TFlatButton.Create(Self);
|
||||||
B.Parent := PanelBands;
|
B.Parent := PanelBands;
|
||||||
B.Caption := Cap;
|
B.Caption := Cap;
|
||||||
B.Left := 2 + (Pos mod 6) * W;
|
B.Left := LeftPanelButtonLeft(PanelBands.Width, 6, Pos mod 6);
|
||||||
B.Top := MaxBottom + 4 + (Pos div 6) * RowH;
|
B.Top := MaxBottom + 4 + (Pos div 6) * RowH;
|
||||||
B.Width := W - 2;
|
B.Width := LeftPanelButtonWidth(PanelBands.Width, 6, Pos mod 6);
|
||||||
B.Height := BtnH;
|
B.Height := BtnH;
|
||||||
B.OnClick := BtnXvtrBandClick;
|
B.OnClick := BtnXvtrBandClick;
|
||||||
B.Tag := -(i + 1); // отрицательное значение = XVTR индекс
|
B.Tag := -(i + 1); // отрицательное значение = XVTR индекс
|
||||||
|
|||||||
Reference in New Issue
Block a user