1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-02-02 10:25:26 +02:00

Added new DevTools events to TChromium and missing drag adn drop properties to TCefWinControl

Added TChromium.OnDevToolsRawMessage
Added TChromium.OnDevToolsMethodRawResult
Added TChromium.OnDevToolsRawEvent
Added TCefWinControl.DragKind
Added TCefWinControl.DragCursor
Added TCefWinControl.DragMode
Added TCefWinControl.OnDragDrop
Added TCefWinControl.OnDragOver
Added TCefWinControl.OnStartDrag
Added TCefWinControl.OnEndDrag
This commit is contained in:
Salvador Diaz Fau 2021-01-16 14:35:01 +01:00
parent b4a2cee7f5
commit 908017b2f5
6 changed files with 114 additions and 70 deletions

View File

@ -281,8 +281,11 @@ type
// ICefDevToolsMessageObserver
FOnDevToolsMessage : TOnDevToolsMessageEvent;
FOnDevToolsRawMessage : TOnDevToolsRawMessageEvent;
FOnDevToolsMethodResult : TOnDevToolsMethodResultEvent;
FOnDevToolsMethodRawResult : TOnDevToolsMethodRawResultEvent;
FOnDevToolsEvent : TOnDevToolsEventEvent;
FOnDevToolsRawEvent : TOnDevToolsEventRawEvent;
FOnDevToolsAgentAttached : TOnDevToolsAgentAttachedEvent;
FOnDevToolsAgentDetached : TOnDevToolsAgentDetachedEvent;
@ -599,9 +602,9 @@ type
procedure doOnAudioStreamError(const browser: ICefBrowser; const message_: ustring); virtual;
// ICefDevToolsMessageObserver
procedure doOnDevToolsMessage(const browser: ICefBrowser; const message_: ICefValue; var aHandled: boolean); virtual;
procedure doOnDevToolsMethodResult(const browser: ICefBrowser; message_id: integer; success: boolean; const result: ICefValue); virtual;
procedure doOnDevToolsEvent(const browser: ICefBrowser; const method: ustring; const params: ICefValue); virtual;
procedure doOnDevToolsMessage(const browser: ICefBrowser; const message_: Pointer; message_size: NativeUInt; var aHandled: boolean); virtual;
procedure doOnDevToolsMethodResult(const browser: ICefBrowser; message_id: integer; success: boolean; const result: Pointer; result_size: NativeUInt); virtual;
procedure doOnDevToolsEvent(const browser: ICefBrowser; const method: ustring; const params: Pointer; params_size: NativeUInt); virtual;
procedure doOnDevToolsAgentAttached(const browser: ICefBrowser); virtual;
procedure doOnDevToolsAgentDetached(const browser: ICefBrowser); virtual;
@ -1071,8 +1074,11 @@ type
// ICefDevToolsMessageObserver
property OnDevToolsMessage : TOnDevToolsMessageEvent read FOnDevToolsMessage write FOnDevToolsMessage;
property OnDevToolsRawMessage : TOnDevToolsRawMessageEvent read FOnDevToolsRawMessage write FOnDevToolsRawMessage;
property OnDevToolsMethodResult : TOnDevToolsMethodResultEvent read FOnDevToolsMethodResult write FOnDevToolsMethodResult;
property OnDevToolsMethodRawResult : TOnDevToolsMethodRawResultEvent read FOnDevToolsMethodRawResult write FOnDevToolsMethodRawResult;
property OnDevToolsEvent : TOnDevToolsEventEvent read FOnDevToolsEvent write FOnDevToolsEvent;
property OnDevToolsRawEvent : TOnDevToolsEventRawEvent read FOnDevToolsRawEvent write FOnDevToolsRawEvent;
property OnDevToolsAgentAttached : TOnDevToolsAgentAttachedEvent read FOnDevToolsAgentAttached write FOnDevToolsAgentAttached;
property OnDevToolsAgentDetached : TOnDevToolsAgentDetachedEvent read FOnDevToolsAgentDetached write FOnDevToolsAgentDetached;
@ -1742,8 +1748,11 @@ begin
// ICefDevToolsMessageObserver
FOnDevToolsMessage := nil;
FOnDevToolsRawMessage := nil;
FOnDevToolsMethodResult := nil;
FOnDevToolsMethodRawResult := nil;
FOnDevToolsEvent := nil;
FOnDevToolsRawEvent := nil;
FOnDevToolsAgentAttached := nil;
FOnDevToolsAgentDetached := nil;
@ -4878,8 +4887,11 @@ end;
function TChromiumCore.MustCreateDevToolsMessageObserver : boolean;
begin
Result := assigned(FOnDevToolsMessage) or
assigned(FOnDevToolsRawMessage) or
assigned(FOnDevToolsMethodResult) or
assigned(FOnDevToolsMethodRawResult) or
assigned(FOnDevToolsEvent) or
assigned(FOnDevToolsRawEvent) or
assigned(FOnDevToolsAgentAttached) or
assigned(FOnDevToolsAgentDetached);
end;
@ -5646,30 +5658,61 @@ end;
// ICefDevToolsMessageObserver
procedure TChromiumCore.doOnDevToolsMessage(const browser : ICefBrowser;
const message_ : ICefValue;
const message_ : Pointer;
message_size : NativeUInt;
var aHandled : boolean);
var
TempValue : ICefValue;
begin
aHandled := False;
if assigned(FOnDevToolsMessage) then
FOnDevToolsMessage(self, browser, message_, aHandled);
if assigned(FOnDevToolsRawMessage) then
FOnDevToolsRawMessage(self, browser, message_, message_size, aHandled)
else
if assigned(FOnDevToolsMessage) then
try
TempValue := TCEFJson.Parse(message_, message_size);
FOnDevToolsMessage(self, browser, TempValue, aHandled);
finally
TempValue := nil;
end;
end;
procedure TChromiumCore.doOnDevToolsMethodResult(const browser : ICefBrowser;
message_id : integer;
success : boolean;
const result : ICefValue);
const result : Pointer;
result_size : NativeUInt);
var
TempValue : ICefValue;
begin
if assigned(FOnDevToolsMethodResult) then
FOnDevToolsMethodResult(self, browser, message_id, success, result);
if assigned(FOnDevToolsMethodRawResult) then
FOnDevToolsMethodRawResult(self, browser, message_id, success, result, result_size)
else
if assigned(FOnDevToolsMethodResult) then
try
TempValue := TCEFJson.Parse(result, result_size);
FOnDevToolsMethodResult(self, browser, message_id, success, TempValue);
finally
TempValue := nil;
end;
end;
procedure TChromiumCore.doOnDevToolsEvent(const browser : ICefBrowser;
const method : ustring;
const params : ICefValue);
procedure TChromiumCore.doOnDevToolsEvent(const browser : ICefBrowser;
const method : ustring;
const params : Pointer;
params_size : NativeUInt);
var
TempValue : ICefValue;
begin
if assigned(FOnDevToolsEvent) then
FOnDevToolsEvent(self, browser, method, params);
if assigned(FOnDevToolsRawEvent) then
FOnDevToolsRawEvent(self, browser, method, params, params_size)
else
if assigned(FOnDevToolsEvent) then
try
TempValue := TCEFJson.Parse(params, params_size);
FOnDevToolsEvent(self, browser, method, TempValue);
finally
TempValue := nil;
end;
end;
procedure TChromiumCore.doOnDevToolsAgentAttached(const browser: ICefBrowser);

View File

@ -182,8 +182,11 @@ type
// ICefDevToolsMessageObserver
TOnDevToolsMessageEvent = procedure(Sender: TObject; const browser: ICefBrowser; const message_: ICefValue; var aHandled: boolean) of object;
TOnDevToolsRawMessageEvent = procedure(Sender: TObject; const browser: ICefBrowser; const message_: Pointer; message_size: NativeUInt; var aHandled: boolean) of object;
TOnDevToolsMethodResultEvent = procedure(Sender: TObject; const browser: ICefBrowser; message_id: integer; success: boolean; const result: ICefValue) of object;
TOnDevToolsMethodRawResultEvent = procedure(Sender: TObject; const browser: ICefBrowser; message_id: integer; success: boolean; const result: Pointer; result_size: NativeUInt) of object;
TOnDevToolsEventEvent = procedure(Sender: TObject; const browser: ICefBrowser; const method: ustring; const params: ICefValue) of object;
TOnDevToolsEventRawEvent = procedure(Sender: TObject; const browser: ICefBrowser; const method: ustring; const params: Pointer; params_size: NativeUInt) of object;
TOnDevToolsAgentAttachedEvent = procedure(Sender: TObject; const browser: ICefBrowser) of object;
TOnDevToolsAgentDetachedEvent = procedure(Sender: TObject; const browser: ICefBrowser) of object;

View File

@ -54,9 +54,9 @@ uses
type
TCEFDevToolsMessageObserverOwn = class(TCefBaseRefCountedOwn, ICefDevToolsMessageObserver)
protected
procedure OnDevToolsMessage(const browser: ICefBrowser; const message_: ICefValue; var aHandled: boolean); virtual;
procedure OnDevToolsMethodResult(const browser: ICefBrowser; message_id: integer; success: boolean; const result: ICefValue); virtual;
procedure OnDevToolsEvent(const browser: ICefBrowser; const method: ustring; const params: ICefValue); virtual;
procedure OnDevToolsMessage(const browser: ICefBrowser; const message_: Pointer; message_size: NativeUInt; var aHandled: boolean); virtual;
procedure OnDevToolsMethodResult(const browser: ICefBrowser; message_id: integer; success: boolean; const result: Pointer; result_size: NativeUInt); virtual;
procedure OnDevToolsEvent(const browser: ICefBrowser; const method: ustring; const params: Pointer; params_size: NativeUInt); virtual;
procedure OnDevToolsAgentAttached(const browser: ICefBrowser); virtual;
procedure OnDevToolsAgentDetached(const browser: ICefBrowser); virtual;
@ -68,9 +68,9 @@ type
protected
FEvents : Pointer;
procedure OnDevToolsMessage(const browser: ICefBrowser; const message_: ICefValue; var aHandled: boolean); override;
procedure OnDevToolsMethodResult(const browser: ICefBrowser; message_id: integer; success: boolean; const result: ICefValue); override;
procedure OnDevToolsEvent(const browser: ICefBrowser; const method: ustring; const params: ICefValue); override;
procedure OnDevToolsMessage(const browser: ICefBrowser; const message_: Pointer; message_size: NativeUInt; var aHandled: boolean); override;
procedure OnDevToolsMethodResult(const browser: ICefBrowser; message_id: integer; success: boolean; const result: Pointer; result_size: NativeUInt); override;
procedure OnDevToolsEvent(const browser: ICefBrowser; const method: ustring; const params: Pointer; params_size: NativeUInt); override;
procedure OnDevToolsAgentAttached(const browser: ICefBrowser); override;
procedure OnDevToolsAgentDetached(const browser: ICefBrowser); override;
@ -101,20 +101,15 @@ function cef_on_dev_tools_message( self : PCefDevToolsMessageObserv
var
TempObject : TObject;
TempHandled : boolean;
TempValue : ICefValue;
begin
TempObject := CefGetObject(self);
TempHandled := False;
if (TempObject <> nil) and (TempObject is TCEFDevToolsMessageObserverOwn) then
try
TempValue := TCEFJson.Parse(message_, message_size);
TCEFDevToolsMessageObserverOwn(TempObject).OnDevToolsMessage(TCefBrowserRef.UnWrap(browser),
TempValue,
TempHandled);
finally
TempValue := nil;
end;
TCEFDevToolsMessageObserverOwn(TempObject).OnDevToolsMessage(TCefBrowserRef.UnWrap(browser),
message_,
message_size,
TempHandled);
Result := ord(TempHandled);
end;
@ -127,20 +122,15 @@ procedure cef_on_dev_tools_method_result( self : PCefDevToolsMessage
result_size : NativeUInt); stdcall;
var
TempObject : TObject;
TempValue : ICefValue;
begin
TempObject := CefGetObject(self);
if (TempObject <> nil) and (TempObject is TCEFDevToolsMessageObserverOwn) then
try
TempValue := TCEFJson.Parse(result, result_size);
TCEFDevToolsMessageObserverOwn(TempObject).OnDevToolsMethodResult(TCefBrowserRef.UnWrap(browser),
message_id,
success <> 0,
TempValue);
finally
TempValue := nil;
end;
TCEFDevToolsMessageObserverOwn(TempObject).OnDevToolsMethodResult(TCefBrowserRef.UnWrap(browser),
message_id,
success <> 0,
result,
result_size);
end;
procedure cef_on_dev_tools_event( self : PCefDevToolsMessageObserver;
@ -150,19 +140,14 @@ procedure cef_on_dev_tools_event( self : PCefDevToolsMessageObserver
params_size : NativeUInt); stdcall;
var
TempObject : TObject;
TempValue : ICefValue;
begin
TempObject := CefGetObject(self);
if (TempObject <> nil) and (TempObject is TCEFDevToolsMessageObserverOwn) then
try
TempValue := TCEFJson.Parse(params, params_size);
TCEFDevToolsMessageObserverOwn(TempObject).OnDevToolsEvent(TCefBrowserRef.UnWrap(browser),
CefString(method),
TempValue);
finally
TempValue := nil;
end;
TCEFDevToolsMessageObserverOwn(TempObject).OnDevToolsEvent(TCefBrowserRef.UnWrap(browser),
CefString(method),
params,
params_size);
end;
procedure cef_on_dev_tools_agent_attached(self : PCefDevToolsMessageObserver;
@ -202,7 +187,8 @@ begin
end;
procedure TCEFDevToolsMessageObserverOwn.OnDevToolsMessage(const browser : ICefBrowser;
const message_ : ICefValue;
const message_ : Pointer;
message_size : NativeUInt;
var aHandled : boolean);
begin
//
@ -211,14 +197,16 @@ end;
procedure TCEFDevToolsMessageObserverOwn.OnDevToolsMethodResult(const browser : ICefBrowser;
message_id : integer;
success : boolean;
const result : ICefValue);
const result : Pointer;
result_size : NativeUInt);
begin
//
end;
procedure TCEFDevToolsMessageObserverOwn.OnDevToolsEvent(const browser : ICefBrowser;
const method : ustring;
const params : ICefValue);
procedure TCEFDevToolsMessageObserverOwn.OnDevToolsEvent(const browser : ICefBrowser;
const method : ustring;
const params : Pointer;
params_size : NativeUInt);
begin
//
end;
@ -253,12 +241,13 @@ begin
end;
procedure TCustomDevToolsMessageObserver.OnDevToolsMessage(const browser : ICefBrowser;
const message_ : ICefValue;
const message_ : Pointer;
message_size : NativeUInt;
var aHandled : boolean);
begin
try
if (FEvents <> nil) then
IChromiumEvents(FEvents).doOnDevToolsMessage(browser, message_, aHandled);
IChromiumEvents(FEvents).doOnDevToolsMessage(browser, message_, message_size, aHandled);
except
on e : exception do
if CustomExceptionHandler('TCustomDevToolsMessageObserver.OnDevToolsMessage', e) then raise;
@ -268,24 +257,26 @@ end;
procedure TCustomDevToolsMessageObserver.OnDevToolsMethodResult(const browser : ICefBrowser;
message_id : integer;
success : boolean;
const result : ICefValue);
const result : Pointer;
result_size : NativeUInt);
begin
try
if (FEvents <> nil) then
IChromiumEvents(FEvents).doOnDevToolsMethodResult(browser, message_id, success, result);
IChromiumEvents(FEvents).doOnDevToolsMethodResult(browser, message_id, success, result, result_size);
except
on e : exception do
if CustomExceptionHandler('TCustomDevToolsMessageObserver.OnDevToolsMethodResult', e) then raise;
end;
end;
procedure TCustomDevToolsMessageObserver.OnDevToolsEvent(const browser : ICefBrowser;
const method : ustring;
const params : ICefValue);
procedure TCustomDevToolsMessageObserver.OnDevToolsEvent(const browser : ICefBrowser;
const method : ustring;
const params : Pointer;
params_size : NativeUInt);
begin
try
if (FEvents <> nil) then
IChromiumEvents(FEvents).doOnDevToolsEvent(browser, method, params);
IChromiumEvents(FEvents).doOnDevToolsEvent(browser, method, params, params_size);
except
on e : exception do
if CustomExceptionHandler('TCustomDevToolsMessageObserver.OnDevToolsEvent', e) then raise;

View File

@ -442,9 +442,9 @@ type
procedure doOnAudioStreamError(const browser: ICefBrowser; const message_: ustring);
// ICefDevToolsMessageObserver
procedure doOnDevToolsMessage(const browser: ICefBrowser; const message_: ICefValue; var aHandled: boolean);
procedure doOnDevToolsMethodResult(const browser: ICefBrowser; message_id: integer; success: boolean; const result: ICefValue);
procedure doOnDevToolsEvent(const browser: ICefBrowser; const method: ustring; const params: ICefValue);
procedure doOnDevToolsMessage(const browser: ICefBrowser; const message_: Pointer; message_size: NativeUInt; var aHandled: boolean);
procedure doOnDevToolsMethodResult(const browser: ICefBrowser; message_id: integer; success: boolean; const result: Pointer; result_size: NativeUInt);
procedure doOnDevToolsEvent(const browser: ICefBrowser; const method: ustring; const params: Pointer; params_size: NativeUInt);
procedure doOnDevToolsAgentAttached(const browser: ICefBrowser);
procedure doOnDevToolsAgentDetached(const browser: ICefBrowser);
@ -1331,9 +1331,9 @@ type
// /include/capi/cef_devtools_message_observer_capi.h (cef_dev_tools_message_observer_t)
ICefDevToolsMessageObserver = interface(ICefBaseRefCounted)
['{76E5BB2B-7F69-4BC9-94C7-B55C61CE630F}']
procedure OnDevToolsMessage(const browser: ICefBrowser; const message_: ICefValue; var aHandled: boolean);
procedure OnDevToolsMethodResult(const browser: ICefBrowser; message_id: integer; success: boolean; const result: ICefValue);
procedure OnDevToolsEvent(const browser: ICefBrowser; const method: ustring; const params: ICefValue);
procedure OnDevToolsMessage(const browser: ICefBrowser; const message_: Pointer; message_size: NativeUInt; var aHandled: boolean);
procedure OnDevToolsMethodResult(const browser: ICefBrowser; message_id: integer; success: boolean; const result: Pointer; result_size: NativeUInt);
procedure OnDevToolsEvent(const browser: ICefBrowser; const method: ustring; const params: Pointer; params_size: NativeUInt);
procedure OnDevToolsAgentAttached(const browser: ICefBrowser);
procedure OnDevToolsAgentDetached(const browser: ICefBrowser);
end;

View File

@ -85,9 +85,16 @@ type
property Enabled;
property ShowHint;
property Hint;
property DragKind;
property DragCursor;
property DragMode;
property OnResize;
property OnEnter;
property OnExit;
property OnDragDrop;
property OnDragOver;
property OnStartDrag;
property OnEndDrag;
{$IFDEF DELPHI14_UP}
property Touch;
property OnGesture;

View File

@ -2,7 +2,7 @@
"UpdateLazPackages" : [
{
"ForceNotify" : true,
"InternalVersion" : 231,
"InternalVersion" : 232,
"Name" : "cef4delphi_lazarus.lpk",
"Version" : "87.1.13.0"
}