gtk3: implemented TWinControl.PaintTo()

git-svn-id: trunk@62921 -
This commit is contained in:
zeljko 2020-04-09 12:54:46 +00:00
parent e7fe8688e3
commit 35e0a7ae4a

View File

@ -42,7 +42,7 @@ uses
Controls, Graphics, LCLType, Types, LCLProc, Controls, Graphics, LCLType, Types, LCLProc,
//////////////////////////////////////////////////// ////////////////////////////////////////////////////
WSLCLClasses, WSControls, WSProc, LazGtk3, LazGdk3, LazGlib2, LazGObject2, WSLCLClasses, WSControls, WSProc, LazGtk3, LazGdk3, LazGlib2, LazGObject2,
gtk3widgets, LazPango1, gtk3widgets, LazPango1, LazCairo1, LazGdkPixbuf2,
{ TODO: remove when CreateHandle/Component code moved } { TODO: remove when CreateHandle/Component code moved }
InterfaceBase; InterfaceBase;
@ -321,12 +321,18 @@ end;
class procedure TGtk3WSWinControl.PaintTo(const AWinControl: TWinControl; ADC: HDC; class procedure TGtk3WSWinControl.PaintTo(const AWinControl: TWinControl; ADC: HDC;
X, Y: Integer); X, Y: Integer);
var
AWidget: TGtk3Widget;
cr: Pcairo_t;
begin begin
if not WSCheckHandleAllocated(AWincontrol, 'PaintTo') or (ADC = 0) then if not WSCheckHandleAllocated(AWincontrol, 'PaintTo') or (ADC = 0) then
Exit; Exit;
{.$IFDEF GTK3DEBUGCORE} AWidget := TGtk3Widget(AWinControl.Handle);
DebugLn('WARNING: TGtk3WSWinControl.PaintTo not implemented'); cr := TGtk3DeviceContext(ADC).Widget;
{.$ENDIF} cairo_save(cr);
cairo_translate(cr, X, Y);
gtk_widget_draw(AWidget.Widget, cr);
cairo_restore(cr);
end; end;
class procedure TGtk3WSWinControl.SetBounds(const AWinControl: TWinControl; const ALeft, ATop, AWidth, AHeight: Integer); class procedure TGtk3WSWinControl.SetBounds(const AWinControl: TWinControl; const ALeft, ATop, AWidth, AHeight: Integer);