mirror of
https://github.com/salvadordf/CEF4Delphi.git
synced 2024-11-15 15:55:56 +01:00
ca8bc9dff4
Added the PDS file to extract the HTML Help files using PasDoc Added more XML documentation Fixed some XML errors. Removed the license copy from the pas units. Updated the LICENSE.md file
159 lines
3.4 KiB
ObjectPascal
159 lines
3.4 KiB
ObjectPascal
unit uCEFDomVisitor;
|
|
|
|
{$IFDEF FPC}
|
|
{$MODE OBJFPC}{$H+}
|
|
{$ENDIF}
|
|
|
|
{$I cef.inc}
|
|
|
|
{$IFNDEF TARGET_64BITS}{$ALIGN ON}{$ENDIF}
|
|
{$MINENUMSIZE 4}
|
|
|
|
interface
|
|
|
|
uses
|
|
uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes;
|
|
|
|
type
|
|
TCefDomVisitorOwn = class(TCefBaseRefCountedOwn, ICefDomVisitor)
|
|
protected
|
|
procedure visit(const document: ICefDomDocument); virtual;
|
|
|
|
public
|
|
constructor Create; virtual;
|
|
end;
|
|
|
|
TCefFastDomVisitor = class(TCefDomVisitorOwn)
|
|
protected
|
|
FProc : TCefDomVisitorProc;
|
|
|
|
procedure visit(const document: ICefDomDocument); override;
|
|
|
|
public
|
|
constructor Create(const proc: TCefDomVisitorProc); reintroduce; virtual;
|
|
end;
|
|
|
|
TCefFastDomVisitor2 = class(TCefDomVisitorOwn)
|
|
protected
|
|
FProc : TCefDomVisitorProc2;
|
|
FBrowser : ICefBrowser;
|
|
FFrame : ICefFrame;
|
|
|
|
procedure visit(const document: ICefDomDocument); override;
|
|
|
|
public
|
|
constructor Create(const browser: ICefBrowser; const frame: ICefFrame; const proc: TCefDomVisitorProc2); reintroduce; virtual;
|
|
destructor Destroy; override;
|
|
end;
|
|
|
|
TCefFastDomVisitor3 = class(TCefDomVisitorOwn)
|
|
protected
|
|
FProc : TCefDomVisitorProc3;
|
|
FBrowser : ICefBrowser;
|
|
FFrame : ICefFrame;
|
|
FValue : ustring;
|
|
|
|
procedure visit(const document: ICefDomDocument); override;
|
|
|
|
public
|
|
constructor Create(const browser: ICefBrowser; const frame: ICefFrame; const proc: TCefDomVisitorProc3; const aValue : ustring); reintroduce; virtual;
|
|
destructor Destroy; override;
|
|
end;
|
|
|
|
|
|
implementation
|
|
|
|
uses
|
|
uCEFMiscFunctions, uCEFLibFunctions, uCEFDomDocument;
|
|
|
|
procedure cef_dom_visitor_visite(self: PCefDomVisitor; document: PCefDomDocument); stdcall;
|
|
var
|
|
TempObject : TObject;
|
|
begin
|
|
TempObject := CefGetObject(self);
|
|
|
|
if (TempObject <> nil) and (TempObject is TCefDomVisitorOwn) then
|
|
TCefDomVisitorOwn(TempObject).visit(TCefDomDocumentRef.UnWrap(document));
|
|
end;
|
|
|
|
// TCefDomVisitorOwn
|
|
|
|
constructor TCefDomVisitorOwn.Create;
|
|
begin
|
|
inherited CreateData(SizeOf(TCefDomVisitor));
|
|
|
|
PCefDomVisitor(FData)^.visit := {$IFDEF FPC}@{$ENDIF}cef_dom_visitor_visite;
|
|
end;
|
|
|
|
procedure TCefDomVisitorOwn.visit(const document: ICefDomDocument);
|
|
begin
|
|
|
|
end;
|
|
|
|
// TCefFastDomVisitor
|
|
|
|
constructor TCefFastDomVisitor.Create(const proc: TCefDomVisitorProc);
|
|
begin
|
|
inherited Create;
|
|
|
|
FProc := proc;
|
|
end;
|
|
|
|
procedure TCefFastDomVisitor.visit(const document: ICefDomDocument);
|
|
begin
|
|
FProc(document);
|
|
end;
|
|
|
|
|
|
// TCefFastDomVisitor2
|
|
|
|
constructor TCefFastDomVisitor2.Create(const browser: ICefBrowser; const frame: ICefFrame; const proc: TCefDomVisitorProc2);
|
|
begin
|
|
inherited Create;
|
|
|
|
FBrowser := browser;
|
|
FFrame := frame;
|
|
FProc := proc;
|
|
end;
|
|
|
|
destructor TCefFastDomVisitor2.Destroy;
|
|
begin
|
|
FBrowser := nil;
|
|
FFrame := nil;
|
|
|
|
inherited Destroy;
|
|
end;
|
|
|
|
procedure TCefFastDomVisitor2.visit(const document: ICefDomDocument);
|
|
begin
|
|
FProc(FBrowser, FFrame, document);
|
|
end;
|
|
|
|
|
|
// TCefFastDomVisitor3
|
|
|
|
constructor TCefFastDomVisitor3.Create(const browser: ICefBrowser; const frame: ICefFrame; const proc: TCefDomVisitorProc3; const aValue : ustring);
|
|
begin
|
|
inherited Create;
|
|
|
|
FBrowser := browser;
|
|
FFrame := frame;
|
|
FProc := proc;
|
|
FValue := aValue;
|
|
end;
|
|
|
|
destructor TCefFastDomVisitor3.Destroy;
|
|
begin
|
|
FBrowser := nil;
|
|
FFrame := nil;
|
|
|
|
inherited Destroy;
|
|
end;
|
|
|
|
procedure TCefFastDomVisitor3.visit(const document: ICefDomDocument);
|
|
begin
|
|
FProc(FBrowser, FFrame, document, FValue);
|
|
end;
|
|
|
|
end.
|