1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-06-12 22:07:39 +02:00

Added support for Lazarus/FPC (windows 32bit)

This commit is contained in:
Salvador Díaz Fau
2018-05-12 14:50:54 +02:00
parent 294a245250
commit dd5f7f42c4
220 changed files with 6385 additions and 4281 deletions

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef
//
// Copyright � 2018 Salvador Daz Fau. All rights reserved.
// Copyright � 2018 Salvador Diaz Fau. All rights reserved.
//
// ************************************************************************
// ************ vvvv Original license and comments below vvvv *************
@ -37,6 +37,10 @@
unit uCEFv8Value;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$IFNDEF CPUX64}
{$ALIGN ON}
{$MINENUMSIZE 4}
@ -52,7 +56,7 @@ uses
{$ELSE}
Classes, SysUtils,
{$ENDIF}
uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes, uCEFv8Types;
uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes;
type
TCefv8ValueRef = class(TCefBaseRefCountedRef, ICefv8Value)
@ -116,8 +120,8 @@ type
class function NewDate(value: TDateTime): ICefv8Value;
class function NewString(const str: ustring): ICefv8Value;
class function NewObject(const Accessor: ICefV8Accessor; const Interceptor: ICefV8Interceptor): ICefv8Value;
class function NewObjectProc(const getter: TCefV8AccessorGetterProc;
const setter: TCefV8AccessorSetterProc;
class function NewObjectProc(const getter : TCefV8AccessorGetterProc;
const setter : TCefV8AccessorSetterProc;
const getterbyname : TCefV8InterceptorGetterByNameProc;
const setterbyname : TCefV8InterceptorSetterByNameProc;
const getterbyindex : TCefV8InterceptorGetterByIndexProc;
@ -157,10 +161,10 @@ end;
class function TCefv8ValueRef.NewDate(value: TDateTime): ICefv8Value;
var
dt: TCefTime;
TempValue : TCefTime;
begin
dt := DateTimeToCefTime(value);
Result := UnWrap(cef_v8value_create_date(@dt));
TempValue := DateTimeToCefTime(value);
Result := UnWrap(cef_v8value_create_date(@TempValue));
end;
class function TCefv8ValueRef.NewDouble(value: Double): ICefv8Value;
@ -168,13 +172,12 @@ begin
Result := UnWrap(cef_v8value_create_double(value));
end;
class function TCefv8ValueRef.NewFunction(const name: ustring;
const handler: ICefv8Handler): ICefv8Value;
class function TCefv8ValueRef.NewFunction(const name: ustring; const handler: ICefv8Handler): ICefv8Value;
var
n: TCefString;
TempName : TCefString;
begin
n := CefString(name);
Result := UnWrap(cef_v8value_create_function(@n, CefGetData(handler)));
TempName := CefString(name);
Result := UnWrap(cef_v8value_create_function(@TempName, CefGetData(handler)));
end;
class function TCefv8ValueRef.NewInt(value: Integer): ICefv8Value;
@ -189,7 +192,7 @@ end;
class function TCefv8ValueRef.NewNull: ICefv8Value;
begin
Result := UnWrap(cef_v8value_create_null);
Result := UnWrap(cef_v8value_create_null());
end;
class function TCefv8ValueRef.NewObject(const Accessor: ICefV8Accessor; const Interceptor: ICefV8Interceptor): ICefv8Value;
@ -197,8 +200,8 @@ begin
Result := UnWrap(cef_v8value_create_object(CefGetData(Accessor), CefGetData(Interceptor)));
end;
class function TCefv8ValueRef.NewObjectProc(const getter: TCefV8AccessorGetterProc;
const setter: TCefV8AccessorSetterProc;
class function TCefv8ValueRef.NewObjectProc(const getter : TCefV8AccessorGetterProc;
const setter : TCefV8AccessorSetterProc;
const getterbyname : TCefV8InterceptorGetterByNameProc;
const setterbyname : TCefV8InterceptorSetterByNameProc;
const getterbyindex : TCefV8InterceptorGetterByIndexProc;
@ -210,15 +213,15 @@ end;
class function TCefv8ValueRef.NewString(const str: ustring): ICefv8Value;
var
s: TCefString;
TempString : TCefString;
begin
s := CefString(str);
Result := UnWrap(cef_v8value_create_string(@s));
TempString := CefString(str);
Result := UnWrap(cef_v8value_create_string(@TempString));
end;
class function TCefv8ValueRef.NewUndefined: ICefv8Value;
begin
Result := UnWrap(cef_v8value_create_undefined);
Result := UnWrap(cef_v8value_create_undefined());
end;
function TCefv8ValueRef.DeleteValueByIndex(index: Integer): Boolean;
@ -228,10 +231,10 @@ end;
function TCefv8ValueRef.DeleteValueByKey(const key: ustring): Boolean;
var
k: TCefString;
TempKey : TCefString;
begin
k := CefString(key);
Result := PCefV8Value(FData)^.delete_value_bykey(PCefV8Value(FData), @k) <> 0;
TempKey := CefString(key);
Result := PCefV8Value(FData)^.delete_value_bykey(PCefV8Value(FData), @TempKey) <> 0;
end;
function TCefv8ValueRef.ExecuteFunction(const obj: ICefv8Value; const arguments: TCefv8ValueArray): ICefv8Value;
@ -253,17 +256,17 @@ begin
while (i < j) do
begin
args[i] := CefGetData(arguments[i]);
args^[i] := CefGetData(arguments[i]);
inc(i);
end;
end
else
j := 0;
Result := TCefv8ValueRef.UnWrap(PCefV8Value(FData).execute_function(PCefV8Value(FData),
CefGetData(obj),
j,
args));
Result := TCefv8ValueRef.UnWrap(PCefV8Value(FData)^.execute_function(PCefV8Value(FData),
CefGetData(obj),
j,
args));
except
on e : exception do
if CustomExceptionHandler('TCefv8ValueRef.ExecuteFunction', e) then raise;
@ -294,18 +297,18 @@ begin
while (i < j) do
begin
args[i] := CefGetData(arguments[i]);
args^[i] := CefGetData(arguments[i]);
inc(i);
end;
end
else
j := 0;
Result := TCefv8ValueRef.UnWrap(PCefV8Value(FData).execute_function_with_context(PCefV8Value(FData),
CefGetData(context),
CefGetData(obj),
j,
args));
Result := TCefv8ValueRef.UnWrap(PCefV8Value(FData)^.execute_function_with_context(PCefV8Value(FData),
CefGetData(context),
CefGetData(obj),
j,
args));
except
on e : exception do
if CustomExceptionHandler('TCefv8ValueRef.ExecuteFunctionWithContext', e) then raise;
@ -377,7 +380,7 @@ begin
Result := 0;
TempSL := TCefStringListOwn.Create;
if (PCefV8Value(FData).get_keys(PCefV8Value(FData), TempSL.Handle) <> 0) then
if (PCefV8Value(FData)^.get_keys(PCefV8Value(FData), TempSL.Handle) <> 0) then
begin
TempSL.CopyToStrings(keys);
Result := keys.Count;
@ -436,15 +439,15 @@ end;
function TCefv8ValueRef.GetValueByIndex(index: Integer): ICefv8Value;
begin
Result := TCefv8ValueRef.UnWrap(PCefV8Value(FData)^.get_value_byindex(PCefV8Value(FData), index))
Result := TCefv8ValueRef.UnWrap(PCefV8Value(FData)^.get_value_byindex(PCefV8Value(FData), index));
end;
function TCefv8ValueRef.GetValueByKey(const key: ustring): ICefv8Value;
var
k: TCefString;
TempKey : TCefString;
begin
k := CefString(key);
Result := TCefv8ValueRef.UnWrap(PCefV8Value(FData)^.get_value_bykey(PCefV8Value(FData), @k))
TempKey := CefString(key);
Result := TCefv8ValueRef.UnWrap(PCefV8Value(FData)^.get_value_bykey(PCefV8Value(FData), @TempKey));
end;
function TCefv8ValueRef.HasValueByIndex(index: Integer): Boolean;
@ -454,10 +457,10 @@ end;
function TCefv8ValueRef.HasValueByKey(const key: ustring): Boolean;
var
k: TCefString;
TempKey : TCefString;
begin
k := CefString(key);
Result := PCefV8Value(FData)^.has_value_bykey(PCefV8Value(FData), @k) <> 0;
TempKey := CefString(key);
Result := PCefV8Value(FData)^.has_value_bykey(PCefV8Value(FData), @TempKey) <> 0;
end;
function TCefv8ValueRef.IsArray: Boolean;
@ -527,10 +530,10 @@ end;
function TCefv8ValueRef.SetValueByAccessor(const key: ustring; settings: TCefV8AccessControls; attribute: TCefV8PropertyAttributes): Boolean;
var
k: TCefString;
TempKey : TCefString;
begin
k := CefString(key);
Result := PCefV8Value(FData)^.set_value_byaccessor(PCefV8Value(FData), @k, PByte(@settings)^, PByte(@attribute)^) <> 0;
TempKey := CefString(key);
Result := PCefV8Value(FData)^.set_value_byaccessor(PCefV8Value(FData), @TempKey, PByte(@settings)^, PByte(@attribute)^) <> 0;
end;
function TCefv8ValueRef.SetValueByIndex(index: Integer; const value: ICefv8Value): Boolean;
@ -540,10 +543,10 @@ end;
function TCefv8ValueRef.SetValueByKey(const key: ustring; const value: ICefv8Value; attribute: TCefV8PropertyAttributes): Boolean;
var
k: TCefString;
TempKey : TCefString;
begin
k := CefString(key);
Result := PCefV8Value(FData)^.set_value_bykey(PCefV8Value(FData), @k, CefGetData(value), PByte(@attribute)^) <> 0;
TempKey := CefString(key);
Result := PCefV8Value(FData)^.set_value_bykey(PCefV8Value(FData), @TempKey, CefGetData(value), PByte(@attribute)^) <> 0;
end;
class function TCefv8ValueRef.UnWrap(data: Pointer): ICefv8Value;