simulate PB events
Posted: Tue Oct 04, 2005 8:11 pm
Simulate or Emulate PB events system...
Code: Select all
ProcedureDLL SimulateGadgetEvent(Gadget, EventType)
Protected wp=Gadget+EventType<<(SizeOf(Word)*8)
Protected lp=GadgetID(Gadget)
;get parent window
Protected win=GetParent_(GadgetID(Gadget))
;While GetParent_(win) : win=GetParent_(win) : Wend
;send message to window
PostMessage_(win, #WM_COMMAND, wp, lp)
EndProcedure
; ********************
; EXAMPLE by eddy
; ********************
OpenWindow(1, 0, 0, 400, 250, "1", #PB_Window_SystemMenu)
CompilerIf #PB_Compiler_Version<430
CreateGadgetList(Windiwid(1))
CompilerEndIf
ButtonGadget(10, 5, 5, 55, 55, "10")
OpenWindow(2, 0, 0, 400, 250, "2", #PB_Window_SystemMenu, WindowID(1))
CompilerIf #PB_Compiler_Version<430
CreateGadgetList(Windiwid(2))
CompilerEndIf
ContainerGadget(100, 0, 0, 200, 200, #PB_Container_Double)
ButtonGadget(20, 5, 5, 55, 55, "20")
CloseGadgetList()
Repeat
e=WaitWindowEvent()
w=EventWindow()
g=EventGadget()
t=EventType()
Select e
Case #PB_Event_ActivateWindow
If EventWindow()=1
gadget=10
eventtype=Random(100)
Else
gadget=20
eventtype=#PB_EventType_LeftDoubleClick
EndIf
SimulateGadgetEvent(gadget, eventtype)
Debug "(gadget="+Str(gadget)+") Sending a new event "
Case #PB_Event_Gadget
Debug "event window="+Str(w)
Debug "event gadget="+Str(g)
Debug "event type="+Str(t)
Debug ""
EndSelect
Until e=#PB_Event_CloseWindow