You've already forked CEF4Delphi
mirror of
https://github.com/salvadordf/CEF4Delphi.git
synced 2025-06-22 22:17:48 +02:00
Update to CEF 134.3.1
This commit is contained in:
106
source/uCEFSettingObserver.pas
Normal file
106
source/uCEFSettingObserver.pas
Normal file
@ -0,0 +1,106 @@
|
||||
unit uCEFSettingObserver;
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$MODE OBJFPC}{$H+}
|
||||
{$ENDIF}
|
||||
|
||||
{$I cef.inc}
|
||||
|
||||
{$IFNDEF TARGET_64BITS}{$ALIGN ON}{$ENDIF}
|
||||
{$MINENUMSIZE 4}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes;
|
||||
|
||||
type
|
||||
TCefSettingObserverOwn = class(TCefBaseRefCountedOwn, ICefSettingObserver)
|
||||
protected
|
||||
procedure OnSettingChanged(const requesting_url, top_level_url : ustring; content_type: TCefContentSettingTypes); virtual;
|
||||
|
||||
procedure RemoveReferences; virtual;
|
||||
|
||||
public
|
||||
constructor Create; virtual;
|
||||
end;
|
||||
|
||||
TCustomSettingObserver = class(TCefSettingObserverOwn)
|
||||
protected
|
||||
FEvents : Pointer;
|
||||
|
||||
procedure OnSettingChanged(const requesting_url, top_level_url : ustring; content_type: TCefContentSettingTypes); override;
|
||||
|
||||
procedure RemoveReferences; override;
|
||||
|
||||
public
|
||||
constructor Create(const events : IChromiumEvents); reintroduce; virtual;
|
||||
destructor Destroy; override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
uCEFMiscFunctions, uCEFLibFunctions, uCEFBrowser;
|
||||
|
||||
|
||||
// TCefSettingObserverOwn
|
||||
|
||||
procedure cef_setting_observer_on_setting_changed(self: PCefSettingObserver; const requesting_url, top_level_url: PCefString; content_type: TCefContentSettingTypes); stdcall;
|
||||
var
|
||||
TempObject : TObject;
|
||||
begin
|
||||
TempObject := CefGetObject(self);
|
||||
|
||||
if (TempObject <> nil) and (TempObject is TCefSettingObserverOwn) then
|
||||
TCefSettingObserverOwn(TempObject).OnSettingChanged(CefString(requesting_url),
|
||||
CefString(top_level_url),
|
||||
content_type);
|
||||
end;
|
||||
|
||||
constructor TCefSettingObserverOwn.Create;
|
||||
begin
|
||||
inherited CreateData(SizeOf(TCefSettingObserver));
|
||||
|
||||
PCefSettingObserver(FData)^.on_setting_changed := {$IFDEF FPC}@{$ENDIF}cef_setting_observer_on_setting_changed;
|
||||
end;
|
||||
|
||||
procedure TCefSettingObserverOwn.OnSettingChanged(const requesting_url, top_level_url : ustring; content_type: TCefContentSettingTypes);
|
||||
begin
|
||||
//
|
||||
end;
|
||||
|
||||
procedure TCefSettingObserverOwn.RemoveReferences;
|
||||
begin
|
||||
//
|
||||
end;
|
||||
|
||||
|
||||
// TCustomSettingObserver
|
||||
|
||||
constructor TCustomSettingObserver.Create(const events : IChromiumEvents);
|
||||
begin
|
||||
inherited Create;
|
||||
|
||||
FEvents := Pointer(events);
|
||||
end;
|
||||
|
||||
destructor TCustomSettingObserver.Destroy;
|
||||
begin
|
||||
RemoveReferences;
|
||||
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TCustomSettingObserver.RemoveReferences;
|
||||
begin
|
||||
FEvents := nil;
|
||||
end;
|
||||
|
||||
procedure TCustomSettingObserver.OnSettingChanged(const requesting_url, top_level_url : ustring; content_type: TCefContentSettingTypes);
|
||||
begin
|
||||
if (FEvents <> nil) then
|
||||
IChromiumEvents(FEvents).doOnSettingChanged(requesting_url, top_level_url, content_type);
|
||||
end;
|
||||
|
||||
end.
|
Reference in New Issue
Block a user