You've already forked CEF4Delphi
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user