rendered paste bodyEnumeration 1 ;Windows
#Window_0
EndEnumeration
Enumeration 1;Gadgets
#ImageGadget_0
#ImageGadget_1
EndEnumeration
Enumeration 1 ;Images
#Image_0
#Image_1
#Image_2
#Image_3
#Image_4
#image_5
EndEnumeration
Declare MyCallback(WindowID,message,wParam,lParam)
LeftNormal = CreateImage(#Image_0, 16, 16)
RightNormal = CreateImage(#Image_1, 16, 16)
LeftHot = CreateImage(#Image_2, 16, 16)
RightHot = CreateImage(#Image_3, 16, 16)
LeftDown = CreateImage(#Image_4, 16, 16)
Rightdown = CreateImage(#image_5, 16, 16)
UseImage(#Image_0)
StartDrawing(ImageOutput())
Box(0, 0, 16, 16, RGB(0, 0, 255))
StopDrawing()
UseImage(#Image_1)
StartDrawing(ImageOutput())
Box(0, 0, 16, 16, RGB(255, 0, 0))
StopDrawing()
UseImage(#Image_2)
StartDrawing(ImageOutput())
Box(0, 0, 16, 16, RGB(0, 255, 0))
StopDrawing()
UseImage(#Image_3)
StartDrawing(ImageOutput())
Box(0, 0, 16, 16, RGB(0, 255, 0))
StopDrawing()
UseImage(#Image_4)
StartDrawing(ImageOutput())
Box(0, 0, 16, 16, RGB(255, 255, 0))
StopDrawing()
UseImage(#image_5)
StartDrawing(ImageOutput())
Box(0, 0, 16, 16, RGB(255, 255, 0))
StopDrawing()
If OpenWindow(#Window_0, 0, 0, 300, 300, #PB_Window_SystemMenu, "OwnButton Test")
If CreateGadgetList(WindowID())
IG_Handle = ImageGadget(#ImageGadget_0, 5, 5, 16, 16, LeftNormal)
IG_Handle2 = ImageGadget(#ImageGadget_1, 30, 5, 16, 16, RightNormal)
EndIf
EndIf
CB = GetWindowLong_(IG_Handle, #GWL_STYLE)
SetWindowLong_(IG_Handle, #GWL_STYLE, CB | #SS_NOTIFY)
CD = GetWindowLong_(IG_Handle2, #GWL_STYLE)
SetWindowLong_(IG_Handle2, #GWL_STYLE, CD | #SS_NOTIFY)
SetWindowCallback(@MyCallback())
MouseEvent = 0 ;0 = Mouse is up (reset), 1 = mouse is down (hold)
Repeat
Event = WindowEvent()
If Event = #PB_Event_Gadget
MouseEvent = 1
EndIf
If Event = #WM_LBUTTONUP
MouseEvent = 0
EndIf
GetCursorPos_(Cursor.POINT)
If WindowFromPoint_(Cursor\x,Cursor\y)=GadgetID(#ImageGadget_0)
If MouseEvent = 0
SetGadgetState(#ImageGadget_0, LeftHot)
Else
Select Event
Case #PB_Event_Gadget
Select EventGadgetID()
Case #ImageGadget_0
SetGadgetState(#ImageGadget_0, LeftDown)
EndSelect
EndSelect
EndIf
Else
SetGadgetState(#ImageGadget_0, LeftNormal)
EndIf
If WindowFromPoint_(Cursor\x,Cursor\y)=GadgetID(#ImageGadget_1)
If MouseEvent = 0
SetGadgetState(#ImageGadget_1, RightHot)
Else
Select Event
Case #PB_Event_Gadget
Select EventGadgetID()
Case #ImageGadget_1
SetGadgetState(#ImageGadget_1, Rightdown)
EndSelect
EndSelect
EndIf
Else
SetGadgetState(#ImageGadget_1, RightNormal)
EndIf
Delay(10)
Until Event = #PB_EventCloseWindow
Procedure MyCallback(WindowID,message,wParam,lParam)
Result = #PB_ProcessPureBasicEvents
Select message
EndSelect
ProcedureReturn Result
EndProcedure