Enumeration 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 = 13100 MouseEvent = 1 EndIf If Event = 514 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 13100 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 13100 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