1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-11-23 21:34:53 +02:00

Update to CEF 88.2.9

Added the SimpleBrowser demo for Linux.
Added Linux support to TChromiumWindow.
Removed unused code and added more code comments to the SimpleBrowser demos for Windows.
This commit is contained in:
Salvador Diaz Fau
2021-02-20 17:14:15 +01:00
parent fcb2b586cf
commit 9d17a50210
20 changed files with 1166 additions and 119 deletions

View File

@@ -71,6 +71,9 @@ type
FOnAfterCreated : TNotifyEvent;
FUseSetFocus : boolean;
{$IFDEF FPC}
procedure SetVisible(Value: Boolean); override;
{$ENDIF}
function GetBrowserInitialized : boolean;
{$IFDEF MSWINDOWS}
function GetChildWindowHandle : THandle; override;
@@ -84,6 +87,11 @@ type
procedure WebBrowser_OnBeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure WebBrowser_OnAfterCreated(Sender: TObject; const browser: ICefBrowser);
{$IFDEF FPC}
procedure BrowserAfterCreated(Data: PtrInt);
procedure BrowserOnCLose(Data: PtrInt);
{$ENDIF}
public
constructor Create(AOwner: TComponent); override;
procedure AfterConstruction; override;
@@ -91,9 +99,10 @@ type
procedure CloseBrowser(aForceClose : boolean);
procedure LoadURL(const aURL : ustring);
procedure NotifyMoveOrResizeStarted;
procedure UpdateSize; override;
property ChromiumBrowser : TChromium read FChromium;
property Initialized : boolean read GetBrowserInitialized;
property ChromiumBrowser : TChromium read FChromium;
property Initialized : boolean read GetBrowserInitialized;
published
property UseSetFocus : boolean read FUseSetFocus write FUseSetFocus default True;
@@ -133,6 +142,10 @@ procedure Register;
// *********************************************************
// *********************************************************
// This component should *ONLY* be used in emtremely simple applications with simple browsers.
// In other cases it's recomended using a TChromium with a TCEFWindowParent as shown in the
// SimpleBrowser2 demo.
implementation
uses
@@ -218,13 +231,17 @@ end;
procedure TChromiumWindow.WebBrowser_OnClose(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin
aAction := cbaClose;
{$IFDEF MSWINDOWS}
if assigned(FOnClose) then
begin
PostMessage(Handle, CEF_DOONCLOSE, 0, 0);
aAction := cbaDelay;
{$IFDEF MSWINDOWS}
PostMessage(Handle, CEF_DOONCLOSE, 0, 0);
aAction := cbaDelay;
{$ELSE}
{$IFDEF FPC}
Application.QueueAsyncCall(@BrowserOnClose, 0);
{$ENDIF}
{$ENDIF}
end;
{$ENDIF}
end;
procedure TChromiumWindow.WebBrowser_OnBeforeClose(Sender: TObject; const browser: ICefBrowser);
@@ -235,7 +252,11 @@ end;
procedure TChromiumWindow.WebBrowser_OnAfterCreated(Sender: TObject; const browser: ICefBrowser);
begin
{$IFDEF MSWINDOWS}
PostMessage(Handle, CEF_AFTERCREATED, 0, 0);
PostMessage(Handle, CEF_AFTERCREATED, 0, 0);
{$ELSE}
{$IFDEF FPC}
Application.QueueAsyncCall(@BrowserAfterCreated, 0);
{$ENDIF}
{$ENDIF}
end;
@@ -252,6 +273,19 @@ begin
end;
{$ENDIF}
{$IFDEF FPC}
procedure TChromiumWindow.BrowserAfterCreated(Data: PtrInt);
begin
UpdateSize;
if assigned(FOnAfterCreated) then FOnAfterCreated(self);
end;
procedure TChromiumWindow.BrowserOnCLose(Data: PtrInt);
begin
if assigned(FOnClose) then FOnClose(self);
end;
{$ENDIF}
function TChromiumWindow.CreateBrowser : boolean;
begin
Result := not(csDesigning in ComponentState) and
@@ -275,6 +309,41 @@ begin
if (FChromium <> nil) then FChromium.NotifyMoveOrResizeStarted;
end;
{$IFDEF FPC}
procedure TChromiumWindow.SetVisible(Value: Boolean);
{$IFDEF LINUX}
var
TempChanged : boolean;
{$ENDIF}
begin
{$IFDEF LINUX}
TempChanged := (Visible <> Value);
{$ENDIF}
inherited SetVisible(Value);
{$IFDEF LINUX}
if not(csDesigning in ComponentState) and
TempChanged and
(FChromium <> nil) and
FChromium.Initialized then
FChromium.UpdateXWindowVisibility(Visible);
{$ENDIF}
end;
{$ENDIF}
procedure TChromiumWindow.UpdateSize;
begin
{$IFDEF LINUX}
if not(csDesigning in ComponentState) and
(FChromium <> nil) and
FChromium.Initialized then
FChromium.UpdateBrowserSize(Left, Top, Width, Height);
{$ELSE}
inherited UpdateSize;
{$ENDIF}
end;
{$IFDEF FPC}
procedure Register;
begin