From be3015fe1f82460bff6654431ded50d32059f788 Mon Sep 17 00:00:00 2001 From: salvadordf Date: Fri, 14 Oct 2022 16:35:50 +0200 Subject: [PATCH] Update to CEF 106.1.0 --- README.md | 14 ++--- packages/cef4delphi_lazarus.lpk | 2 +- source/uCEFApplicationCore.pas | 22 +++++--- source/uCEFBrowserViewComponent.pas | 4 +- source/uCEFBufferPanel.pas | 2 +- source/uCEFChromium.pas | 4 +- source/uCEFChromiumCore.pas | 1 - source/uCEFChromiumWindow.pas | 2 +- source/uCEFConstants.pas | 41 +++++++++++++- source/uCEFDisplay.pas | 71 +++++++++++++++++++++--- source/uCEFFMXBufferPanel.pas | 4 +- source/uCEFFMXChromium.pas | 4 +- source/uCEFFMXWindowParent.pas | 5 +- source/uCEFFMXWorkScheduler.pas | 2 +- source/uCEFLabelButtonComponent.pas | 4 +- source/uCEFLibFunctions.pas | 12 ++-- source/uCEFLinkedWindowParent.pas | 12 ++-- source/uCEFMenuButtonComponent.pas | 4 +- source/uCEFPanelComponent.pas | 4 +- source/uCEFScrollViewComponent.pas | 4 +- source/uCEFSentinel.pas | 6 +- source/uCEFServerComponent.pas | 4 +- source/uCEFTextfieldComponent.pas | 4 +- source/uCEFUrlRequestClientComponent.pas | 4 +- source/uCEFWinControl.pas | 3 + source/uCEFWindowComponent.pas | 4 +- source/uCEFWindowParent.pas | 6 +- source/uCEFWorkScheduler.pas | 2 +- update_CEF4Delphi.json | 4 +- 29 files changed, 176 insertions(+), 79 deletions(-) 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" : {