mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-26 23:43:47 +02:00
78 lines
2.0 KiB
PHP
78 lines
2.0 KiB
PHP
{%mainunit gtkwsprivate.pp}
|
|
|
|
{
|
|
*****************************************************************************
|
|
This file is part of the Lazarus Component Library (LCL)
|
|
|
|
See the file COPYING.modifiedLGPL.txt, included in this distribution,
|
|
for details about the license.
|
|
*****************************************************************************
|
|
}
|
|
|
|
{ TGtkPrivateWidget }
|
|
|
|
class procedure TGtkPrivateWidget.UpdateCursor(AInfo: PWidgetInfo);
|
|
var
|
|
Widget, FixWidget: PGtkWidget;
|
|
Window: PGdkWindow;
|
|
begin
|
|
Widget := AInfo^.CoreWidget;
|
|
FixWidget := GetFixedWidget(Widget);
|
|
Window := GetControlWindow(FixWidget);
|
|
if Window = nil then Exit;
|
|
// always recurse windows which do not accept controls.
|
|
// this way we will catch all widgets with double windows
|
|
if not (csAcceptsControls in TControl(AInfo^.LCLObject).ControlStyle) then
|
|
SetWindowCursor(Window, AInfo^.ControlCursor, True)
|
|
else
|
|
SetCursorForWindowsWithInfo(Window, AInfo);
|
|
end;
|
|
|
|
class procedure TGtkPrivateWidget.SetDefaultCursor(AInfo: PWidgetInfo);
|
|
begin
|
|
AInfo^.DefaultCursor := Screen.Cursors[crDefault];
|
|
end;
|
|
|
|
class procedure TGtkPrivateWidget.SetZPosition(const AWinControl: TWinControl; const APosition: TWSZPosition);
|
|
var
|
|
Widget: PGtkWidget;
|
|
begin
|
|
if not WSCheckHandleAllocated(AWincontrol, 'SetZPosition')
|
|
then Exit;
|
|
|
|
Widget := GetWidgetWithWindow(AWincontrol.Handle);
|
|
if Widget = nil then Exit;
|
|
if Widget^.Window=nil then exit;
|
|
|
|
case APosition of
|
|
wszpBack: begin
|
|
gdk_window_lower(Widget^.Window);
|
|
end;
|
|
wszpFront: begin
|
|
gdk_window_raise(Widget^.Window);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
{ TGtkPrivatePaned }
|
|
|
|
class procedure TGtkPrivatePaned.UpdateCursor(AInfo: PWidgetInfo);
|
|
var
|
|
Widget: PGtkWidget;
|
|
Window: PGdkWindow;
|
|
begin
|
|
Widget := AInfo^.CoreWidget;
|
|
Window := PGTkPaned(Widget)^.handle;
|
|
if Window = nil then Exit;
|
|
SetWindowCursor(Window, AInfo^.ControlCursor, False);
|
|
end;
|
|
|
|
|
|
{ TGtkPrivateEntry }
|
|
|
|
class procedure TGtkPrivateEntry.SetDefaultCursor(AInfo: PWidgetInfo);
|
|
begin
|
|
AInfo^.DefaultCursor := Screen.Cursors[crIBeam];
|
|
end;
|
|
|