Get the parent window (cross platform)
Posted: Mon Jan 13, 2014 6:06 pm
http://www.purebasic.com
https://www.purebasic.fr/english/
Code: Select all
Debug UseGadgetList(0)Code: Select all
Procedure GetRootWindow()
savedgadgetlist = UseGadgetList(0)
result = savedgadgetlist
While (result<>lastresult) And result<>0
result=UseGadgetList(result)
If result
lastresult=result
EndIf
Wend
UseGadgetList(savedgadgetlist)
ProcedureReturn lastresult
EndProcedure
Code: Select all
OpenWindow(1, 100, 200, 200, 100, "Window 1")
ButtonGadget (101, 10, 10, 180, 20, "Hello")
ButtonGadget (102, 10, 40, 180, 20, "World")
OpenWindow(2, 310, 200, 200, 100, "Window 2")
ButtonGadget (201, 10, 10, 180, 20, "Hello")
ButtonGadget (202, 10, 40, 180, 20, "World")
UseGadgetList(WindowID(1))
ButtonGadget (103, 10, 70, 180, 20, "!")
UseGadgetList(WindowID(2))
ButtonGadget (203, 10, 70, 180, 20, "?")
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget : GadgetEvent = EventGadget()
If GadgetEvent > 200 : Debug WindowID(2) : ElseIf GadgetEvent > 100 : Debug WindowID(1) : EndIf
EndIf
Until Event = #PB_Event_CloseWindowCode: Select all
ExamineDesktops()
OpenWindow(1, 100, 200, 200, 100, "Window 1")
ButtonGadget (1, 10, 10, 180, 20, "1")
SetGadgetData(1,1)
ButtonGadget (2, 10, 40, 180, 20, "2")
SetGadgetData(2,1)
OpenWindow(2, 310, 200, 200, 100, "Window 2")
ButtonGadget (3, 10, 10, 180, 20, "3")
SetGadgetData(3,2)
ButtonGadget (4, 10, 40, 180, 20, "4")
SetGadgetData(4,2)
UseGadgetList(WindowID(1))
ButtonGadget (5, 10, 70, 180, 20, "5")
SetGadgetData(5,1)
UseGadgetList(WindowID(2))
ButtonGadget (6, 10, 70, 180, 20, "6")
SetGadgetData(6,2)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Gadget
Select EventGadget()
Case 1
EndSelect
Default
x = DesktopMouseX()
y = DesktopMouseY()
For g = 1 To 6
If x >= GadgetX(g,#PB_Gadget_ScreenCoordinate) And x < GadgetX(g,#PB_Gadget_ScreenCoordinate) + GadgetWidth(g) And y >= GadgetY(g,#PB_Gadget_ScreenCoordinate) And y < GadgetY(g,#PB_Gadget_ScreenCoordinate) + GadgetHeight(g)
If g <> oldg
Debug "Parent Window is : Window "+Str(GetGadgetData(g))
oldg = g
EndIf
; MessageRequester("Info","Parent Window is : Window "+Str(GetGadgetData(g)),#PB_MessageRequester_Ok)
EndIf
Next
EndSelect
Until Quit = 1
End