Qt5, Qt6: implemented GetCanvasScaleFactor.

This commit is contained in:
zeljan1 2024-12-31 17:30:34 +01:00
parent be497b7252
commit 45e8e0f44f
2 changed files with 20 additions and 0 deletions

View File

@ -73,6 +73,7 @@ type
class procedure DestroyHandle(const AWinControl: TWinControl); override;
class procedure Invalidate(const AWinControl: TWinControl); override;
class procedure AddControl(const AControl: TControl); override;
class function GetCanvasScaleFactor(const AControl: TControl): Double; override;
class function GetClientBounds(const AWincontrol: TWinControl; var ARect: TRect): Boolean; override;
class function GetClientRect(const AWincontrol: TWinControl; var ARect: TRect): Boolean; override;
class function GetDesignInteractive(const AWinControl: TWinControl; AClientPos: TPoint): Boolean; override;
@ -292,6 +293,15 @@ begin
end;
end;
class function TQtWSWinControl.GetCanvasScaleFactor(const AControl: TControl
): Double;
begin
Result := 1;
if not WSCheckHandleAllocated(TWinControl(AControl), 'GetCanvasScaleFactor') then
Exit;
Result := QPaintDevice_devicePixelRatioF(QWidget_to_QPaintDevice(TQtWidget(TWinControl(AControl).Handle).Widget));
end;
class function TQtWSWinControl.GetClientBounds(const AWincontrol: TWinControl;
var ARect: TRect): Boolean;
begin

View File

@ -71,6 +71,7 @@ type
class procedure DestroyHandle(const AWinControl: TWinControl); override;
class procedure Invalidate(const AWinControl: TWinControl); override;
class procedure AddControl(const AControl: TControl); override;
class function GetCanvasScaleFactor(const AControl: TControl): Double; override;
class function GetClientBounds(const AWincontrol: TWinControl; var ARect: TRect): Boolean; override;
class function GetClientRect(const AWincontrol: TWinControl; var ARect: TRect): Boolean; override;
class function GetDesignInteractive(const AWinControl: TWinControl; AClientPos: TPoint): Boolean; override;
@ -290,6 +291,15 @@ begin
end;
end;
class function TQtWSWinControl.GetCanvasScaleFactor(const AControl: TControl
): Double;
begin
Result := 1;
if not WSCheckHandleAllocated(TWinControl(AControl), 'GetCanvasScaleFactor') then
Exit;
Result := QPaintDevice_devicePixelRatioF(QWidget_to_QPaintDevice(TQtWidget(TWinControl(AControl).Handle).Widget));
end;
class function TQtWSWinControl.GetClientBounds(const AWincontrol: TWinControl;
var ARect: TRect): Boolean;
begin