CEF4Delphi/source/uCEFResourceBundle.pas

67 lines
2.1 KiB
ObjectPascal
Raw Normal View History

2017-01-27 16:37:51 +01:00
unit uCEFResourceBundle;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
2017-02-05 20:56:46 +01:00
{$I cef.inc}
{$IFNDEF TARGET_64BITS}{$ALIGN ON}{$ENDIF}
{$MINENUMSIZE 4}
2017-01-27 16:37:51 +01:00
interface
uses
uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes;
2017-01-27 16:37:51 +01:00
type
TCefResourceBundleRef = class(TCefBaseRefCountedRef, ICefResourceBundle)
protected
function GetLocalizedString(stringId: Integer): ustring;
2020-07-22 18:01:03 +02:00
function GetDataResource(resourceId: Integer): ICefBinaryValue;
function GetDataResourceForScale(resourceId: Integer; scaleFactor: TCefScaleFactor): ICefBinaryValue;
public
class function UnWrap(data: Pointer): ICefResourceBundle;
class function Global: ICefResourceBundle;
2017-01-27 16:37:51 +01:00
end;
implementation
uses
2020-07-22 18:01:03 +02:00
uCEFMiscFunctions, uCEFLibFunctions, uCEFBinaryValue;
2017-01-27 16:37:51 +01:00
2020-07-22 18:01:03 +02:00
function TCefResourceBundleRef.GetDataResource(resourceId: Integer): ICefBinaryValue;
2017-01-27 16:37:51 +01:00
begin
2020-07-22 18:01:03 +02:00
Result := TCefBinaryValueRef.UnWrap(PCefResourceBundle(FData)^.get_data_resource(PCefResourceBundle(FData),
resourceId));
2017-01-27 16:37:51 +01:00
end;
2020-07-22 18:01:03 +02:00
function TCefResourceBundleRef.GetDataResourceForScale(resourceId : Integer;
scaleFactor : TCefScaleFactor): ICefBinaryValue;
2017-01-27 16:37:51 +01:00
begin
2020-07-22 18:01:03 +02:00
Result := TCefBinaryValueRef.UnWrap(PCefResourceBundle(FData)^.get_data_resource_for_scale(PCefResourceBundle(FData),
resourceId,
scaleFactor));
2017-01-27 16:37:51 +01:00
end;
function TCefResourceBundleRef.GetLocalizedString(stringId: Integer): ustring;
begin
Result := CefStringFreeAndGet(PCefResourceBundle(FData)^.get_localized_string(PCefResourceBundle(FData), stringId));
2017-01-27 16:37:51 +01:00
end;
class function TCefResourceBundleRef.Global: ICefResourceBundle;
begin
Result := UnWrap(cef_resource_bundle_get_global());
end;
class function TCefResourceBundleRef.UnWrap(data: Pointer): ICefResourceBundle;
begin
if (data <> nil) then
Result := Create(data) as ICefResourceBundle
else
2017-01-27 16:37:51 +01:00
Result := nil;
end;
end.