mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-16 20:49:30 +02:00
84 lines
2.6 KiB
PHP
84 lines
2.6 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 copyright. *
|
|
* *
|
|
* This program is distributed in the hope that it will be useful, *
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
|
* *
|
|
*****************************************************************************
|
|
}
|
|
|
|
{ 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;
|
|
|