mirror of
https://github.com/salvadordf/CEF4Delphi.git
synced 2024-11-16 00:05:55 +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
101 lines
2.6 KiB
ObjectPascal
101 lines
2.6 KiB
ObjectPascal
unit uCEFLinkedWindowParent;
|
|
|
|
{$IFDEF FPC}
|
|
{$MODE OBJFPC}{$H+}
|
|
{$ENDIF}
|
|
|
|
{$I cef.inc}
|
|
|
|
{$IFNDEF TARGET_64BITS}{$ALIGN ON}{$ENDIF}
|
|
{$MINENUMSIZE 4}
|
|
|
|
interface
|
|
|
|
uses
|
|
{$IFDEF DELPHI16_UP}
|
|
{$IFDEF MSWINDOWS}WinApi.Windows,{$ENDIF} System.Classes, Vcl.Controls,
|
|
{$ELSE}
|
|
{$IFDEF MSWINDOWS}Windows,{$ENDIF} Classes, Forms, Controls, Graphics,
|
|
{$IFDEF FPC}
|
|
LCLProc, LCLType, LCLIntf, LResources, LMessages, InterfaceBase,
|
|
{$IFDEF LINUX}xlib, x,{$ENDIF}
|
|
{$ELSE}
|
|
Messages,
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
uCEFWinControl, uCEFTypes, uCEFInterfaces, uCEFChromium,
|
|
uCEFConstants, uCEFLinkedWinControlBase;
|
|
|
|
type
|
|
{$IFNDEF FPC}{$IFDEF DELPHI16_UP}[ComponentPlatformsAttribute(pfidWindows)]{$ENDIF}{$ENDIF}
|
|
/// <summary>
|
|
/// This component can be used by VCL and LCL applications. It has the
|
|
/// same purpose as TCEFWindowParent but it has a Chromium property to
|
|
/// link it directly to a TChromium component.
|
|
/// TCEFLinkedWindowParent resizes the child controls created by CEF
|
|
/// for browsers in normal mode and sets the browser focus using the
|
|
/// linked TChromium component. TCEFWindowParent and TCEFLinkedWindowParent
|
|
/// work fine in Windows and you can used any of them but you can't use
|
|
/// TCEFWindowParent in Linux or MacOS.
|
|
/// </summary>
|
|
TCEFLinkedWindowParent = class(TCEFLinkedWinControlBase)
|
|
protected
|
|
FChromium : TChromium;
|
|
|
|
function GetChromium: TChromium; override;
|
|
procedure SetChromium(aValue : TChromium);
|
|
|
|
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
|
|
|
public
|
|
constructor Create(AOwner : TComponent); override;
|
|
|
|
published
|
|
property Chromium : TChromium read FChromium write SetChromium;
|
|
end;
|
|
|
|
|
|
{$IFDEF FPC}
|
|
procedure Register;
|
|
{$ENDIF}
|
|
|
|
implementation
|
|
|
|
uses
|
|
uCEFMiscFunctions, uCEFClient, uCEFLibFunctions, uCEFApplication;
|
|
|
|
constructor TCEFLinkedWindowParent.Create(AOwner : TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
|
|
FChromium := nil;
|
|
end;
|
|
|
|
procedure TCEFLinkedWindowParent.Notification(AComponent: TComponent; Operation: TOperation);
|
|
begin
|
|
inherited Notification(AComponent, Operation);
|
|
|
|
if (Operation = opRemove) and (AComponent = FChromium) then FChromium := nil;
|
|
end;
|
|
|
|
function TCEFLinkedWindowParent.GetChromium: TChromium;
|
|
begin
|
|
Result := FChromium;
|
|
end;
|
|
|
|
procedure TCEFLinkedWindowParent.SetChromium(aValue : TChromium);
|
|
begin
|
|
FChromium := aValue;
|
|
if (aValue <> nil) then aValue.FreeNotification(Self);
|
|
end;
|
|
|
|
{$IFDEF FPC}
|
|
procedure Register;
|
|
begin
|
|
{$I res/tceflinkedwindowparent.lrs}
|
|
RegisterComponents('Chromium', [TCEFLinkedWindowParent]);
|
|
end;
|
|
{$ENDIF}
|
|
|
|
end.
|