diff --git a/README.md b/README.md
index 1adc4c1f..a69cd2c7 100644
--- a/README.md
+++ b/README.md
@@ -3,15 +3,15 @@ CEF4Delphi is an open source project created by Salvador Díaz Fau to embed Chro
CEF4Delphi is based on DCEF3 and fpCEF3. The original license of those projects still applies to CEF4Delphi. Read the license terms in the first lines of any *.pas file.
-CEF4Delphi uses CEF 106.0.27 which includes Chromium 106.0.5249.103.
+CEF4Delphi uses CEF 106.1.0 which includes Chromium 106.0.5249.119.
The CEF binaries used by CEF4Delphi are available for download at Spotify :
-* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_106.0.27%2Bg20ed841%2Bchromium-106.0.5249.103_windows32.tar.bz2)
-* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_106.0.27%2Bg20ed841%2Bchromium-106.0.5249.103_windows64.tar.bz2)
-* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_106.0.27%2Bg20ed841%2Bchromium-106.0.5249.103_linux64.tar.bz2)
-* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_106.0.27%2Bg20ed841%2Bchromium-106.0.5249.103_linuxarm.tar.bz2)
-* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_106.0.27%2Bg20ed841%2Bchromium-106.0.5249.103_linuxarm64.tar.bz2)
-* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_106.0.27%2Bg20ed841%2Bchromium-106.0.5249.103_macosx64.tar.bz2)
+* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_106.1.0%2Bg30ad805%2Bchromium-106.0.5249.119_windows32.tar.bz2)
+* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_106.1.0%2Bg30ad805%2Bchromium-106.0.5249.119_windows64.tar.bz2)
+* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_106.1.0%2Bg30ad805%2Bchromium-106.0.5249.119_linux64.tar.bz2)
+* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_106.1.0%2Bg30ad805%2Bchromium-106.0.5249.119_linuxarm.tar.bz2)
+* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_106.1.0%2Bg30ad805%2Bchromium-106.0.5249.119_linuxarm64.tar.bz2)
+* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_106.1.0%2Bg30ad805%2Bchromium-106.0.5249.119_macosx64.tar.bz2)
CEF4Delphi was developed and tested on Delphi 11.2 and it has been tested in Delphi 7, Delphi XE, Delphi 10, Delphi 10.2, Delphi 10.3, Delphi 10.4 and Lazarus 2.2.4/FPC 3.2.2. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components.
diff --git a/packages/cef4delphi_lazarus.lpk b/packages/cef4delphi_lazarus.lpk
index 7716b3db..c38eac0e 100644
--- a/packages/cef4delphi_lazarus.lpk
+++ b/packages/cef4delphi_lazarus.lpk
@@ -21,7 +21,7 @@
-
+
diff --git a/source/uCEFApplicationCore.pas b/source/uCEFApplicationCore.pas
index 94558809..96d4ef94 100644
--- a/source/uCEFApplicationCore.pas
+++ b/source/uCEFApplicationCore.pas
@@ -67,14 +67,14 @@ interface
const
CEF_SUPPORTED_VERSION_MAJOR = 106;
- CEF_SUPPORTED_VERSION_MINOR = 0;
- CEF_SUPPORTED_VERSION_RELEASE = 27;
+ CEF_SUPPORTED_VERSION_MINOR = 1;
+ CEF_SUPPORTED_VERSION_RELEASE = 0;
CEF_SUPPORTED_VERSION_BUILD = 0;
CEF_CHROMEELF_VERSION_MAJOR = CEF_SUPPORTED_VERSION_MAJOR;
CEF_CHROMEELF_VERSION_MINOR = 0;
CEF_CHROMEELF_VERSION_RELEASE = 5249;
- CEF_CHROMEELF_VERSION_BUILD = 103;
+ CEF_CHROMEELF_VERSION_BUILD = 119;
{$IFDEF MSWINDOWS}
LIBCEF_DLL = 'libcef.dll';
@@ -3146,17 +3146,21 @@ function TCefApplicationCore.Load_cef_browser_view_capi_h : boolean;
function TCefApplicationCore.Load_cef_display_capi_h : boolean;
begin
- {$IFDEF FPC}Pointer({$ENDIF}cef_display_get_primary{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_display_get_primary');
- {$IFDEF FPC}Pointer({$ENDIF}cef_display_get_nearest_point{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_display_get_nearest_point');
- {$IFDEF FPC}Pointer({$ENDIF}cef_display_get_matching_bounds{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_display_get_matching_bounds');
- {$IFDEF FPC}Pointer({$ENDIF}cef_display_get_count{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_display_get_count');
- {$IFDEF FPC}Pointer({$ENDIF}cef_display_get_alls{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_display_get_alls');
+ {$IFDEF FPC}Pointer({$ENDIF}cef_display_get_primary{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_display_get_primary');
+ {$IFDEF FPC}Pointer({$ENDIF}cef_display_get_nearest_point{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_display_get_nearest_point');
+ {$IFDEF FPC}Pointer({$ENDIF}cef_display_get_matching_bounds{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_display_get_matching_bounds');
+ {$IFDEF FPC}Pointer({$ENDIF}cef_display_get_count{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_display_get_count');
+ {$IFDEF FPC}Pointer({$ENDIF}cef_display_get_alls{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_display_get_alls');
+ {$IFDEF FPC}Pointer({$ENDIF}cef_display_convert_screen_point_to_pixels{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_display_convert_screen_point_to_pixels');
+ {$IFDEF FPC}Pointer({$ENDIF}cef_display_convert_screen_point_from_pixels{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_display_convert_screen_point_from_pixels');
Result := assigned(cef_display_get_primary) and
assigned(cef_display_get_nearest_point) and
assigned(cef_display_get_matching_bounds) and
assigned(cef_display_get_count) and
- assigned(cef_display_get_alls);
+ assigned(cef_display_get_alls) and
+ assigned(cef_display_convert_screen_point_to_pixels) and
+ assigned(cef_display_convert_screen_point_from_pixels);
end;
function TCefApplicationCore.Load_cef_label_button_capi_h : boolean;
diff --git a/source/uCEFBrowserViewComponent.pas b/source/uCEFBrowserViewComponent.pas
index fb4d912d..eb20646a 100644
--- a/source/uCEFBrowserViewComponent.pas
+++ b/source/uCEFBrowserViewComponent.pas
@@ -57,10 +57,10 @@ interface
LCLProc, LCLType, LCLIntf, LResources, InterfaceBase,
{$ENDIF}
{$ENDIF}
- uCEFTypes, uCEFInterfaces, uCEFViewsFrameworkEvents, uCEFViewComponent;
+ uCEFTypes, uCEFInterfaces, uCEFConstants, uCEFViewsFrameworkEvents, uCEFViewComponent;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows or pfidOSX or pfidLinux)]{$ENDIF}{$ENDIF}
TCEFBrowserViewComponent = class(TCEFViewComponent, ICefBrowserViewDelegateEvents)
protected
FBrowserView : ICefBrowserView;
diff --git a/source/uCEFBufferPanel.pas b/source/uCEFBufferPanel.pas
index 2ecc0933..0610d530 100644
--- a/source/uCEFBufferPanel.pas
+++ b/source/uCEFBufferPanel.pas
@@ -67,7 +67,7 @@ interface
TOnHandledMessageEvent = procedure(Sender: TObject; var aMessage: TMessage; var aHandled : boolean) of object;
{$ENDIF}
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows)]{$ENDIF}{$ENDIF}
TBufferPanel = class(TCustomPanel)
protected
FScanlineSize : integer;
diff --git a/source/uCEFChromium.pas b/source/uCEFChromium.pas
index b438ed1c..ac7d38df 100644
--- a/source/uCEFChromium.pas
+++ b/source/uCEFChromium.pas
@@ -59,10 +59,10 @@ interface
Messages,
{$ENDIF}
{$ENDIF}
- uCEFTypes, uCEFInterfaces, uCEFChromiumCore;
+ uCEFConstants, uCEFTypes, uCEFInterfaces, uCEFChromiumCore;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows)]{$ENDIF}{$ENDIF}
TChromium = class(TChromiumCore)
protected
function GetParentFormHandle : TCefWindowHandle; override;
diff --git a/source/uCEFChromiumCore.pas b/source/uCEFChromiumCore.pas
index c32c25d6..53db6f09 100644
--- a/source/uCEFChromiumCore.pas
+++ b/source/uCEFChromiumCore.pas
@@ -72,7 +72,6 @@ interface
type
TBrowserInfoList = class;
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
TChromiumCore = class(TComponent, IChromiumEvents)
protected
{$IFDEF MSWINDOWS}
diff --git a/source/uCEFChromiumWindow.pas b/source/uCEFChromiumWindow.pas
index 396a6790..ff278e60 100644
--- a/source/uCEFChromiumWindow.pas
+++ b/source/uCEFChromiumWindow.pas
@@ -63,7 +63,7 @@ interface
uCEFWinControl, uCEFLinkedWinControlBase;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows)]{$ENDIF}{$ENDIF}
{ TChromiumWindow }
diff --git a/source/uCEFConstants.pas b/source/uCEFConstants.pas
index af6e1b41..7e514a6e 100644
--- a/source/uCEFConstants.pas
+++ b/source/uCEFConstants.pas
@@ -51,9 +51,9 @@ interface
{$IFDEF MSWINDOWS}
uses
{$IFDEF DELPHI16_UP}
- Winapi.Messages;
+ System.Classes, Winapi.Messages;
{$ELSE}
- Messages;
+ Classes, Messages;
{$ENDIF}
{$ENDIF}
@@ -806,6 +806,43 @@ interface
CEF4DELPHI_ALLOC_PADDING = Pointer($44332211); // Some random value used as padding
{$ENDIF}
+ // If any of the platform IDs are not defined then we set them as 0 to avoid build errors on older Delphi versions.
+ {$IF NOT DECLARED(pidWin32)}
+ pidWin32 = 0;
+ {$IFEND}
+
+ {$IF NOT DECLARED(pidWin64)}
+ pidWin64 = 0;
+ {$IFEND}
+
+ {$IF NOT DECLARED(pfidWindows)}
+ pfidWindows = pidWin32 or pidWin64;
+ {$IFEND}
+
+ {$IF NOT DECLARED(pidOSX32)}
+ pidOSX32 = 0;
+ {$IFEND}
+
+ {$IF NOT DECLARED(pidOSX64)}
+ pidOSX64 = 0;
+ {$IFEND}
+
+ {$IF NOT DECLARED(pidOSXArm64)}
+ pidOSXArm64 = 0;
+ {$IFEND}
+
+ {$IF NOT DECLARED(pfidOSX)}
+ pfidOSX = pidOSX32 or pidOSX64 or pidOSXArm64;
+ {$IFEND}
+
+ {$IF NOT DECLARED(pidLinux64)}
+ pidLinux64 = 0;
+ {$IFEND}
+
+ {$IF NOT DECLARED(pfidLinux)}
+ pfidLinux = pidLinux64;
+ {$IFEND}
+
implementation
end.
diff --git a/source/uCEFDisplay.pas b/source/uCEFDisplay.pas
index b7c4af4c..0b3fecad 100644
--- a/source/uCEFDisplay.pas
+++ b/source/uCEFDisplay.pas
@@ -50,9 +50,9 @@ interface
uses
{$IFDEF DELPHI16_UP}
- System.Classes, System.SysUtils,
+ System.Classes, System.SysUtils, System.Types,
{$ELSE}
- Classes, SysUtils,
+ Classes, SysUtils, Types,
{$ENDIF}
uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes;
@@ -74,12 +74,14 @@ TCefDisplayRef = class(TCefBaseRefCountedRef, ICefDisplay)
class function MatchingBounds(const bounds: TCefRect; input_pixel_coords: boolean): ICefDisplay;
class function GetCount: NativeUInt;
class function GetAlls(var aDisplayArray : TCefDisplayArray) : boolean;
+ class function ScreenPointToPixels(const aScreenPoint : TPoint) : TPoint;
+ class function ScreenPointFromPixels(const aPixelsPoint : TPoint) : TPoint;
end;
implementation
uses
- uCEFLibFunctions;
+ uCEFLibFunctions, uCEFApplicationCore;
function TCefDisplayRef.GetID : int64;
begin
@@ -126,22 +128,34 @@ class function TCefDisplayRef.UnWrap(data: Pointer): ICefDisplay;
class function TCefDisplayRef.Primary: ICefDisplay;
begin
- Result := UnWrap(cef_display_get_primary());
+ if assigned(GlobalCEFApp) and GlobalCEFApp.LibLoaded then
+ Result := UnWrap(cef_display_get_primary())
+ else
+ Result := nil;
end;
class function TCefDisplayRef.NearestPoint(const point: TCefPoint; input_pixel_coords: boolean): ICefDisplay;
begin
- Result := UnWrap(cef_display_get_nearest_point(@point, ord(input_pixel_coords)));
+ if assigned(GlobalCEFApp) and GlobalCEFApp.LibLoaded then
+ Result := UnWrap(cef_display_get_nearest_point(@point, ord(input_pixel_coords)))
+ else
+ Result := nil;
end;
class function TCefDisplayRef.MatchingBounds(const bounds: TCefRect; input_pixel_coords: boolean): ICefDisplay;
begin
- Result := UnWrap(cef_display_get_matching_bounds(@bounds, ord(input_pixel_coords)));
+ if assigned(GlobalCEFApp) and GlobalCEFApp.LibLoaded then
+ Result := UnWrap(cef_display_get_matching_bounds(@bounds, ord(input_pixel_coords)))
+ else
+ Result := nil;
end;
class function TCefDisplayRef.GetCount: NativeUInt;
begin
- Result := cef_display_get_count();
+ if assigned(GlobalCEFApp) and GlobalCEFApp.LibLoaded then
+ Result := cef_display_get_count()
+ else
+ Result := 0;
end;
class function TCefDisplayRef.GetAlls(var aDisplayArray : TCefDisplayArray) : boolean;
@@ -152,7 +166,10 @@ class function TCefDisplayRef.GetAlls(var aDisplayArray : TCefDisplayArray) : bo
displays: PPCefDisplay;
TempSize : integer;
begin
- Result := False;
+ Result := False;
+ if (GlobalCEFApp = nil) or not(GlobalCEFApp.LibLoaded) then
+ exit;
+
displaysCount := GetCount;
if (displaysCount > 0) then
@@ -178,4 +195,42 @@ class function TCefDisplayRef.GetAlls(var aDisplayArray : TCefDisplayArray) : bo
end;
end;
+class function TCefDisplayRef.ScreenPointToPixels(const aScreenPoint : TPoint) : TPoint;
+var
+ TempScreenPt, TempPixelsPt : TCefPoint;
+begin
+ if assigned(GlobalCEFApp) and GlobalCEFApp.LibLoaded then
+ begin
+ TempScreenPt.x := aScreenPoint.X;
+ TempScreenPt.y := aScreenPoint.Y;
+ TempPixelsPt := cef_display_convert_screen_point_to_pixels(@TempScreenPt);
+ Result.X := TempPixelsPt.x;
+ Result.Y := TempPixelsPt.y;
+ end
+ else
+ begin
+ Result.X := aScreenPoint.X;
+ Result.X := aScreenPoint.Y;
+ end;
+end;
+
+class function TCefDisplayRef.ScreenPointFromPixels(const aPixelsPoint : TPoint) : TPoint;
+var
+ TempScreenPt, TempPixelsPt : TCefPoint;
+begin
+ if assigned(GlobalCEFApp) and GlobalCEFApp.LibLoaded then
+ begin
+ TempPixelsPt.x := aPixelsPoint.X;
+ TempPixelsPt.y := aPixelsPoint.Y;
+ TempScreenPt := cef_display_convert_screen_point_from_pixels(@TempPixelsPt);
+ Result.X := TempScreenPt.x;
+ Result.Y := TempScreenPt.y;
+ end
+ else
+ begin
+ Result.X := aPixelsPoint.X;
+ Result.X := aPixelsPoint.Y;
+ end;
+end;
+
end.
diff --git a/source/uCEFFMXBufferPanel.pas b/source/uCEFFMXBufferPanel.pas
index 3cfc7af0..fe670ae1 100644
--- a/source/uCEFFMXBufferPanel.pas
+++ b/source/uCEFFMXBufferPanel.pas
@@ -52,12 +52,12 @@ interface
FMX.Graphics,
{$ENDIF}
FMX.Types, FMX.Controls, FMX.Forms,
- uCEFTypes;
+ uCEFTypes, uCEFConstants;
type
TDialogKeyEvent = procedure(Sender: TObject; var Key: Word; Shift: TShiftState) of object;
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows or pfidOSX or pfidLinux)]{$ENDIF}{$ENDIF}
TFMXBufferPanel = class(TControl)
protected
{$IFDEF MSWINDOWS}
diff --git a/source/uCEFFMXChromium.pas b/source/uCEFFMXChromium.pas
index 5a91ac57..26c40614 100644
--- a/source/uCEFFMXChromium.pas
+++ b/source/uCEFFMXChromium.pas
@@ -53,10 +53,10 @@ interface
{$IFDEF DELPHI19_UP}
FMX.Graphics,
{$ENDIF}
- uCEFTypes, uCEFInterfaces, uCEFChromiumCore;
+ uCEFTypes, uCEFInterfaces, uCEFConstants, uCEFChromiumCore;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows or pfidOSX or pfidLinux)]{$ENDIF}{$ENDIF}
TFMXChromium = class(TChromiumCore, IChromiumEvents)
protected
function GetParentFormHandle : TCefWindowHandle; override;
diff --git a/source/uCEFFMXWindowParent.pas b/source/uCEFFMXWindowParent.pas
index 50cd7300..db53f8a9 100644
--- a/source/uCEFFMXWindowParent.pas
+++ b/source/uCEFFMXWindowParent.pas
@@ -49,10 +49,11 @@ interface
{$IFDEF MSWINDOWS}
WinApi.Windows,
{$ENDIF}
- FMX.Controls, FMX.Types, FMX.Forms;
+ FMX.Controls, FMX.Types, FMX.Forms,
+ uCEFConstants;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows or pfidOSX or pfidLinux)]{$ENDIF}{$ENDIF}
TFMXWindowParent = class(TCommonCustomForm)
protected
{$IFDEF MSWINDOWS}
diff --git a/source/uCEFFMXWorkScheduler.pas b/source/uCEFFMXWorkScheduler.pas
index 6b8f3020..79b1c197 100644
--- a/source/uCEFFMXWorkScheduler.pas
+++ b/source/uCEFFMXWorkScheduler.pas
@@ -50,7 +50,7 @@ interface
uCEFConstants, uCEFWorkSchedulerQueueThread, uCEFWorkSchedulerThread;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows or pfidOSX or pfidLinux)]{$ENDIF}{$ENDIF}
TFMXWorkScheduler = class(TComponent)
protected
FThread : TCEFWorkSchedulerThread;
diff --git a/source/uCEFLabelButtonComponent.pas b/source/uCEFLabelButtonComponent.pas
index 37805d3e..afa09188 100644
--- a/source/uCEFLabelButtonComponent.pas
+++ b/source/uCEFLabelButtonComponent.pas
@@ -57,10 +57,10 @@ interface
LCLProc, LCLType, LCLIntf, LResources, InterfaceBase,
{$ENDIF}
{$ENDIF}
- uCEFTypes, uCEFInterfaces, uCEFViewsFrameworkEvents, uCEFButtonComponent;
+ uCEFTypes, uCEFInterfaces, uCEFConstants, uCEFViewsFrameworkEvents, uCEFButtonComponent;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows or pfidOSX or pfidLinux)]{$ENDIF}{$ENDIF}
TCEFLabelButtonComponent = class(TCEFButtonComponent)
protected
FLabelButton : ICefLabelButton;
diff --git a/source/uCEFLibFunctions.pas b/source/uCEFLibFunctions.pas
index f1ea40cd..8f9c4755 100644
--- a/source/uCEFLibFunctions.pas
+++ b/source/uCEFLibFunctions.pas
@@ -254,11 +254,13 @@ interface
cef_browser_view_get_for_browser : function(browser: PCefBrowser): PCefBrowserView; cdecl;
// /include/capi/views/cef_display_capi.h
- cef_display_get_primary : function : PCefDisplay; cdecl;
- cef_display_get_nearest_point : function(const point: PCefPoint; input_pixel_coords: Integer): PCefDisplay; cdecl;
- cef_display_get_matching_bounds : function(const bounds: PCefRect; input_pixel_coords: Integer): PCefDisplay; cdecl;
- cef_display_get_count : function : NativeUInt; cdecl;
- cef_display_get_alls : procedure(displaysCount: PNativeUInt; displays: PPCefDisplay); cdecl;
+ cef_display_get_primary : function : PCefDisplay; cdecl;
+ cef_display_get_nearest_point : function(const point: PCefPoint; input_pixel_coords: Integer): PCefDisplay; cdecl;
+ cef_display_get_matching_bounds : function(const bounds: PCefRect; input_pixel_coords: Integer): PCefDisplay; cdecl;
+ cef_display_get_count : function : NativeUInt; cdecl;
+ cef_display_get_alls : procedure(displaysCount: PNativeUInt; displays: PPCefDisplay); cdecl;
+ cef_display_convert_screen_point_to_pixels : function(const point: PCefPoint): TCefPoint; cdecl;
+ cef_display_convert_screen_point_from_pixels : function(const point: PCefPoint): TCefPoint; cdecl;
// /include/capi/views/cef_label_button_capi.h
cef_label_button_create : function(delegate: PCefButtonDelegate; const text: PCefString): PCefLabelButton; cdecl;
diff --git a/source/uCEFLinkedWindowParent.pas b/source/uCEFLinkedWindowParent.pas
index cc07f8aa..b012fe82 100644
--- a/source/uCEFLinkedWindowParent.pas
+++ b/source/uCEFLinkedWindowParent.pas
@@ -61,16 +61,13 @@ interface
{$ENDIF}
{$ENDIF}
uCEFWinControl, uCEFTypes, uCEFInterfaces, uCEFChromium,
- uCEFLinkedWinControlBase;
+ uCEFConstants, uCEFLinkedWinControlBase;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
-
- { TCEFLinkedWindowParent }
-
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows)]{$ENDIF}{$ENDIF}
TCEFLinkedWindowParent = class(TCEFLinkedWinControlBase)
protected
- FChromium : TChromium;
+ FChromium : TChromium;
function GetChromium: TChromium; override;
procedure SetChromium(aValue : TChromium);
@@ -92,8 +89,7 @@ procedure Register;
implementation
uses
- uCEFMiscFunctions, uCEFClient, uCEFConstants, uCEFLibFunctions,
- uCEFApplication;
+ uCEFMiscFunctions, uCEFClient, uCEFLibFunctions, uCEFApplication;
constructor TCEFLinkedWindowParent.Create(AOwner : TComponent);
begin
diff --git a/source/uCEFMenuButtonComponent.pas b/source/uCEFMenuButtonComponent.pas
index a811deb6..f8f5da3c 100644
--- a/source/uCEFMenuButtonComponent.pas
+++ b/source/uCEFMenuButtonComponent.pas
@@ -57,10 +57,10 @@ interface
LCLProc, LCLType, LCLIntf, LResources, InterfaceBase,
{$ENDIF}
{$ENDIF}
- uCEFTypes, uCEFInterfaces, uCEFViewsFrameworkEvents, uCEFLabelButtonComponent;
+ uCEFTypes, uCEFInterfaces, uCEFConstants, uCEFViewsFrameworkEvents, uCEFLabelButtonComponent;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows or pfidOSX or pfidLinux)]{$ENDIF}{$ENDIF}
TCEFMenuButtonComponent = class(TCEFLabelButtonComponent, ICefMenuButtonDelegateEvents)
protected
FMenuButton : ICefMenuButton;
diff --git a/source/uCEFPanelComponent.pas b/source/uCEFPanelComponent.pas
index 627ced2d..21a336bf 100644
--- a/source/uCEFPanelComponent.pas
+++ b/source/uCEFPanelComponent.pas
@@ -57,10 +57,10 @@ interface
LCLProc, LCLType, LCLIntf, LResources, InterfaceBase,
{$ENDIF}
{$ENDIF}
- uCEFTypes, uCEFInterfaces, uCEFViewsFrameworkEvents, uCEFViewComponent;
+ uCEFTypes, uCEFInterfaces, uCEFConstants, uCEFViewsFrameworkEvents, uCEFViewComponent;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows or pfidOSX or pfidLinux)]{$ENDIF}{$ENDIF}
TCEFPanelComponent = class(TCEFViewComponent, ICefPanelDelegateEvents)
protected
FPanel : ICefPanel;
diff --git a/source/uCEFScrollViewComponent.pas b/source/uCEFScrollViewComponent.pas
index 84b51236..3ac8cc56 100644
--- a/source/uCEFScrollViewComponent.pas
+++ b/source/uCEFScrollViewComponent.pas
@@ -57,10 +57,10 @@ interface
LCLProc, LCLType, LCLIntf, LResources, InterfaceBase,
{$ENDIF}
{$ENDIF}
- uCEFTypes, uCEFInterfaces, uCEFViewsFrameworkEvents, uCEFViewComponent;
+ uCEFTypes, uCEFInterfaces, uCEFConstants, uCEFViewsFrameworkEvents, uCEFViewComponent;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows or pfidOSX or pfidLinux)]{$ENDIF}{$ENDIF}
TCEFScrollViewComponent = class(TCEFViewComponent)
protected
FScrollView : ICefScrollView;
diff --git a/source/uCEFSentinel.pas b/source/uCEFSentinel.pas
index 26eb8f48..2a685fca 100644
--- a/source/uCEFSentinel.pas
+++ b/source/uCEFSentinel.pas
@@ -65,7 +65,7 @@ interface
Messages,
{$ENDIF}
{$ENDIF}
- uCEFTypes, uCEFInterfaces;
+ uCEFTypes, uCEFInterfaces, uCEFConstants;
const
CEFSENTINEL_DEFAULT_DELAYPERPROCMS = 200;
@@ -77,7 +77,7 @@ interface
type
TSentinelStatus = (ssIdle, ssInitialDelay, ssCheckingChildren, ssClosing);
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows or pfidOSX or pfidLinux)]{$ENDIF}{$ENDIF}
TCEFSentinel = class(TComponent)
protected
{$IFDEF MSWINDOWS}
@@ -133,7 +133,7 @@ procedure Register;
implementation
uses
- uCEFLibFunctions, uCEFApplicationCore, uCEFMiscFunctions, uCEFConstants;
+ uCEFLibFunctions, uCEFApplicationCore, uCEFMiscFunctions;
constructor TCEFSentinel.Create(AOwner: TComponent);
begin
diff --git a/source/uCEFServerComponent.pas b/source/uCEFServerComponent.pas
index caaa5a17..deeaa3d3 100644
--- a/source/uCEFServerComponent.pas
+++ b/source/uCEFServerComponent.pas
@@ -60,7 +60,7 @@ interface
Messages,
{$ENDIF}
{$ENDIF}
- uCEFTypes, uCEFInterfaces, uCEFServer, uCEFServerEvents, uCEFServerHandler;
+ uCEFTypes, uCEFInterfaces, uCEFConstants, uCEFServer, uCEFServerEvents, uCEFServerHandler;
const
DEFAULT_CEFSERVER_ADDRESS = '127.0.0.1';
@@ -68,7 +68,7 @@ interface
DEFAULT_CEFSERVER_BACKLOG = 10;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows or pfidOSX or pfidLinux)]{$ENDIF}{$ENDIF}
TCEFServerComponent = class(TComponent, IServerEvents)
protected
FHandler : ICefServerHandler;
diff --git a/source/uCEFTextfieldComponent.pas b/source/uCEFTextfieldComponent.pas
index 60f3786a..f5d05932 100644
--- a/source/uCEFTextfieldComponent.pas
+++ b/source/uCEFTextfieldComponent.pas
@@ -57,10 +57,10 @@ interface
LCLProc, LCLType, LCLIntf, LResources, InterfaceBase,
{$ENDIF}
{$ENDIF}
- uCEFTypes, uCEFInterfaces, uCEFViewsFrameworkEvents, uCEFViewComponent;
+ uCEFTypes, uCEFInterfaces, uCEFConstants, uCEFViewsFrameworkEvents, uCEFViewComponent;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows or pfidOSX or pfidLinux)]{$ENDIF}{$ENDIF}
TCEFTextfieldComponent = class(TCEFViewComponent, ICefTextfieldDelegateEvents)
protected
FTextfield : ICefTextfield;
diff --git a/source/uCEFUrlRequestClientComponent.pas b/source/uCEFUrlRequestClientComponent.pas
index 66c124ba..39219699 100644
--- a/source/uCEFUrlRequestClientComponent.pas
+++ b/source/uCEFUrlRequestClientComponent.pas
@@ -60,10 +60,10 @@ interface
Messages,
{$ENDIF}
{$ENDIF}
- uCEFTypes, uCEFInterfaces, uCEFUrlRequestClientEvents, uCEFUrlrequestClient, uCEFUrlRequest;
+ uCEFTypes, uCEFInterfaces, uCEFConstants, uCEFUrlRequestClientEvents, uCEFUrlrequestClient, uCEFUrlRequest;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows or pfidOSX or pfidLinux)]{$ENDIF}{$ENDIF}
TCEFUrlRequestClientComponent = class(TComponent, ICEFUrlRequestClientEvents)
protected
FClient : ICefUrlrequestClient;
diff --git a/source/uCEFWinControl.pas b/source/uCEFWinControl.pas
index d0efeb6f..2e4e8a38 100644
--- a/source/uCEFWinControl.pas
+++ b/source/uCEFWinControl.pas
@@ -101,6 +101,9 @@ TCEFWinControl = class(TWinControl)
property OnDragOver;
property OnStartDrag;
property OnEndDrag;
+ {$IFNDEF FPC}
+ property OnCanResize;
+ {$ENDIF}
{$IFDEF DELPHI14_UP}
property Touch;
property OnGesture;
diff --git a/source/uCEFWindowComponent.pas b/source/uCEFWindowComponent.pas
index 68998df5..915d7992 100644
--- a/source/uCEFWindowComponent.pas
+++ b/source/uCEFWindowComponent.pas
@@ -57,10 +57,10 @@ interface
LCLProc, LCLType, LCLIntf, LResources, InterfaceBase,
{$ENDIF}
{$ENDIF}
- uCEFTypes, uCEFInterfaces, uCEFViewsFrameworkEvents, uCEFPanelComponent;
+ uCEFTypes, uCEFInterfaces, uCEFConstants, uCEFViewsFrameworkEvents, uCEFPanelComponent;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows or pfidOSX or pfidLinux)]{$ENDIF}{$ENDIF}
TCEFWindowComponent = class(TCEFPanelComponent, ICefWindowDelegateEvents)
protected
FWindow : ICefWindow;
diff --git a/source/uCEFWindowParent.pas b/source/uCEFWindowParent.pas
index 8b095e1d..3aaaac9d 100644
--- a/source/uCEFWindowParent.pas
+++ b/source/uCEFWindowParent.pas
@@ -59,10 +59,10 @@ interface
Messages,
{$ENDIF}
{$ENDIF}
- uCEFWinControl, uCEFTypes, uCEFInterfaces;
+ uCEFWinControl, uCEFTypes, uCEFInterfaces, uCEFConstants;
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows)]{$ENDIF}{$ENDIF}
TCEFWindowParent = class(TCEFWinControl)
protected
{$IFDEF MSWINDOWS}
@@ -77,7 +77,7 @@ procedure Register;
implementation
uses
- uCEFMiscFunctions, uCEFClient, uCEFConstants;
+ uCEFMiscFunctions, uCEFClient;
{$IFDEF MSWINDOWS}
procedure TCEFWindowParent.WndProc(var aMessage: TMessage);
diff --git a/source/uCEFWorkScheduler.pas b/source/uCEFWorkScheduler.pas
index 0ac03915..411728e0 100644
--- a/source/uCEFWorkScheduler.pas
+++ b/source/uCEFWorkScheduler.pas
@@ -63,7 +63,7 @@ interface
type
- {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pidWin32 or pidWin64)]{$ENDIF}{$ENDIF}
+ {$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows)]{$ENDIF}{$ENDIF}
TCEFWorkScheduler = class(TComponent)
protected
FThread : TCEFWorkSchedulerThread;
diff --git a/update_CEF4Delphi.json b/update_CEF4Delphi.json
index 0cce7c82..ea5f2a50 100644
--- a/update_CEF4Delphi.json
+++ b/update_CEF4Delphi.json
@@ -2,9 +2,9 @@
"UpdateLazPackages" : [
{
"ForceNotify" : true,
- "InternalVersion" : 439,
+ "InternalVersion" : 440,
"Name" : "cef4delphi_lazarus.lpk",
- "Version" : "106.0.27.0"
+ "Version" : "106.1.0"
}
],
"UpdatePackageData" : {