Code: Select all
#PB_Canvas_CustomImageCursor = 14
Procedure CanvasCustomCursor(ImageID, X = 0, Y = 0)
If ImageID
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
Protected hCursor, Cursor.ICONINFO
Cursor\fIcon = 0
Cursor\xHotspot = X
Cursor\yHotspot = Y
Cursor\hbmMask = ImageID
Cursor\hbmColor = ImageID
hCursor = CreateIconIndirect_(Cursor)
ProcedureReturn hCursor
CompilerCase #PB_OS_Linux
Protected *Cursor.GdkCursor
*Cursor = gdk_cursor_new_from_pixbuf_(gdk_display_get_default_(), ImageID, X, Y)
ProcedureReturn *Cursor
CompilerEndSelect
EndIf
EndProcedure
ProcedureDLL u_SetGadgetAttribute(Gadget, Attribute, Value)
Protected Result
If IsGadget(Gadget)
If Attribute = #PB_Canvas_CustomImageCursor
SetGadgetAttribute(Gadget, #PB_Canvas_CustomImageCursor, CanvasCustomCursor(Value))
Else
SetGadgetAttribute(Gadget, #PB_Canvas_CustomCursor, Value)
EndIf
EndIf
ProcedureReturn Result
EndProcedure
Macro SetGadgetAttribute(Gadget, Attribute, Value) : u_SetGadgetAttribute(Gadget, Attribute, Value) : EndMacro