1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-09-30 21:28:55 +02:00

Added initial QT support (work in progress)

This commit is contained in:
Salvador Díaz Fau
2025-09-13 18:23:07 +02:00
parent c9aba9c250
commit ded23f33a1
3 changed files with 17 additions and 8 deletions

View File

@@ -47,9 +47,9 @@ type
{$IFDEF MSWINDOWS}
procedure WndProc(var aMessage: TMessage); override;
{$ENDIF}
{$IFDEF LCLGTK3}
{$IF DEFINED(LCLQT) OR DEFINED(LCLQT5) OR DEFINED(LCLQT6) OR DEFINED(LCLGTK3)}
procedure Paint; override;
{$ENDIF}
{$IFEND}
/// <summary>
/// TChromium instance used by this component.
/// </summary>
@@ -76,13 +76,13 @@ begin
{$IFDEF MSWINDOWS}
FUseSetFocus := True;
{$ENDIF}
{$IFDEF LCLGTK3}
{$IF DEFINED(LCLQT) OR DEFINED(LCLQT5) OR DEFINED(LCLQT6) OR DEFINED(LCLGTK3)}
BevelOuter := bvNone;
BevelWidth := 0;
Caption := '';
ControlStyle := ControlStyle - [csNoFocus];
TabStop := True;
{$ENDIF}
{$IFEND}
end;
{$IFDEF MSWINDOWS}
@@ -97,13 +97,13 @@ begin
end;
{$ENDIF}
{$IFDEF LCLGTK3}
{$IF DEFINED(LCLQT) OR DEFINED(LCLQT5) OR DEFINED(LCLQT6) OR DEFINED(LCLGTK3)}
procedure TCEFLinkedWinControlBase.Paint;
begin
if (Chromium = nil) or not(Chromium.Initialized) then
inherited Paint;
end;
{$ENDIF}
{$IFEND}
{$IFDEF FPC}
procedure TCEFLinkedWinControlBase.SetVisible(Value: Boolean);

View File

@@ -19,7 +19,7 @@ uses
{$IFDEF MSWINDOWS}WinApi.Windows, {$ENDIF} System.Classes, Vcl.Controls, Vcl.Graphics,
{$ELSE}
{$IFDEF MSWINDOWS}Windows,{$ENDIF} Classes, Forms, Controls, Graphics,
{$IFDEF LCLGTK3}ExtCtrls,{$ENDIF}
{$IF DEFINED(LCLQT) OR DEFINED(LCLQT5) OR DEFINED(LCLQT6) OR DEFINED(LCLGTK3)}ExtCtrls,{$IFEND}
{$IFDEF FPC}
LCLProc, LCLType, LCLIntf, LResources, InterfaceBase,
{$ENDIF}
@@ -33,7 +33,7 @@ type
/// <summary>
/// Custom TWinControl used by CEF browsers.
/// </summary>
TCEFWinControl = class({$IFDEF LCLGTK3}TCustomPanel{$ELSE}TWinControl{$ENDIF})
TCEFWinControl = class({$IF DEFINED(LCLQT) OR DEFINED(LCLQT5) OR DEFINED(LCLQT6) OR DEFINED(LCLGTK3)}TCustomPanel{$ELSE}TWinControl{$IFEND})
protected
function GetChildWindowHandle : {$IFNDEF MSWINDOWS}{$IFDEF FPC}LclType.{$ENDIF}{$ENDIF}THandle; virtual;
procedure Resize; override;

View File

@@ -237,6 +237,9 @@ uses
ctypes, keysym, xf86keysym, x, xlib,
{$IFDEF LCLGTK2}gtk2, glib2, gdk2, gtk2proc, gtk2int, Gtk2Def, gdk2x, Gtk2Extra,{$ENDIF}
{$IFDEF LCLGTK3}LazGdk3, LazGtk3, LazGLib2, Gtk3Widgets, Gtk3Procs, LazGObject2,{$ENDIF}
{$IFDEF LCLQT}qtwidgets, qt4,{$ENDIF}
{$IFDEF LCLQT5}qtwidgets, qt5,{$ENDIF}
{$IFDEF LCLQT6}qtwidgets, qt6,{$ENDIF}
uCEFLinuxFunctions,
{$ENDIF}{$ENDIF}
uCEFMiscFunctions;
@@ -532,6 +535,12 @@ begin
TempParent := gdk_x11_window_get_xid(gtk_widget_get_window(TempWidget));
end;
{$ENDIF}
{$IF DEFINED(LCLQT) OR DEFINED(LCLQT5) OR DEFINED(LCLQT6)}
if ValidCefWindowHandle(aParent) then
begin
TempParent := QWidget_winId(TQtWidget(aParent).Widget);
end;
{$IFEND}
{$ENDIF}
aWindowInfo.parent_window := TempParent;