mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-25 01:59:16 +02:00
SynEdit: syncompletion: improve High-DPI scaling. Issue #33694
git-svn-id: trunk@57826 -
This commit is contained in:
parent
51ef1a6866
commit
1364b3311b
@ -96,6 +96,8 @@ type
|
|||||||
private
|
private
|
||||||
FMouseDownPos, FMouseLastPos, FWinSize: TPoint;
|
FMouseDownPos, FMouseLastPos, FWinSize: TPoint;
|
||||||
protected
|
protected
|
||||||
|
procedure DoAutoAdjustLayout(const AMode: TLayoutAdjustmentPolicy;
|
||||||
|
const AXProportion, AYProportion: Double); override;
|
||||||
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
|
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
|
||||||
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
|
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
|
||||||
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
|
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
|
||||||
@ -104,6 +106,12 @@ type
|
|||||||
procedure Paint; override;
|
procedure Paint; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
TSynBaseCompletionFormScrollBar = class(TScrollBar)
|
||||||
|
protected
|
||||||
|
procedure DoAutoAdjustLayout(const AMode: TLayoutAdjustmentPolicy;
|
||||||
|
const AXProportion, AYProportion: Double); override;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TSynBaseCompletionForm }
|
{ TSynBaseCompletionForm }
|
||||||
|
|
||||||
TSynBaseCompletionForm = class(TForm)
|
TSynBaseCompletionForm = class(TForm)
|
||||||
@ -475,6 +483,16 @@ begin
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TSynBaseCompletionFormScrollBar }
|
||||||
|
|
||||||
|
procedure TSynBaseCompletionFormScrollBar.DoAutoAdjustLayout(
|
||||||
|
const AMode: TLayoutAdjustmentPolicy; const AXProportion, AYProportion: Double
|
||||||
|
);
|
||||||
|
begin
|
||||||
|
if AMode in [lapAutoAdjustWithoutHorizontalScrolling, lapAutoAdjustForDPI] then
|
||||||
|
Width := ScaleScreenToFont(GetSystemMetrics(SM_CYVSCROLL));
|
||||||
|
end;
|
||||||
|
|
||||||
{ TSynCompletionForm }
|
{ TSynCompletionForm }
|
||||||
|
|
||||||
procedure TSynCompletionForm.AddCharAtCursor(AUtf8Char: TUTF8Char);
|
procedure TSynCompletionForm.AddCharAtCursor(AUtf8Char: TUTF8Char);
|
||||||
@ -548,6 +566,13 @@ begin
|
|||||||
FMouseDownPos.y := -1;
|
FMouseDownPos.y := -1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSynBaseCompletionFormSizeDrag.DoAutoAdjustLayout(
|
||||||
|
const AMode: TLayoutAdjustmentPolicy; const AXProportion, AYProportion: Double
|
||||||
|
);
|
||||||
|
begin
|
||||||
|
// do nothing
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSynBaseCompletionFormSizeDrag.Paint;
|
procedure TSynBaseCompletionFormSizeDrag.Paint;
|
||||||
var
|
var
|
||||||
I: Integer;
|
I: Integer;
|
||||||
@ -579,7 +604,7 @@ begin
|
|||||||
// we have no resource => must be constructed using CreateNew
|
// we have no resource => must be constructed using CreateNew
|
||||||
inherited CreateNew(AOwner, 1);
|
inherited CreateNew(AOwner, 1);
|
||||||
FItemList := TStringList.Create;
|
FItemList := TStringList.Create;
|
||||||
Scroll := TScrollBar.Create(self);
|
Scroll := TSynBaseCompletionFormScrollBar.Create(self);
|
||||||
Scroll.Kind := sbVertical;
|
Scroll.Kind := sbVertical;
|
||||||
Scroll.OnChange := @ScrollChange;
|
Scroll.OnChange := @ScrollChange;
|
||||||
Scroll.Parent := Self;
|
Scroll.Parent := Self;
|
||||||
@ -587,8 +612,6 @@ begin
|
|||||||
Scroll.OnScroll := @ScrollScroll;
|
Scroll.OnScroll := @ScrollScroll;
|
||||||
Scroll.TabStop := False;
|
Scroll.TabStop := False;
|
||||||
Scroll.Visible := True;
|
Scroll.Visible := True;
|
||||||
if Application.Scaled then
|
|
||||||
Scroll.Width := ScaleScreenTo96(GetSystemMetrics(SM_CYVSCROLL));
|
|
||||||
|
|
||||||
SizeDrag := TSynBaseCompletionFormSizeDrag.Create(Self);
|
SizeDrag := TSynBaseCompletionFormSizeDrag.Create(Self);
|
||||||
SizeDrag.Parent := Self;
|
SizeDrag.Parent := Self;
|
||||||
|
Loading…
Reference in New Issue
Block a user