I'm testing with this situation on a VM:
display1 (main): 1024x768 (DesktopX=0)
display2 (@left): 800x600 (DesktopX=-800)
display3 (@right): 1280x1024 (DesktopX=1024)
maybe in future i can add more display @left or @right
I can't figure out to get the actual display of a running app.
Can someone help me??
Code: Select all
Enumeration #PB_Compiler_EnumerationValue
#Window_0
EndEnumeration
Enumeration #PB_Compiler_EnumerationValue
#ListIcon_0
#Button_0
#Text_0
#Text_1
#Text_2
EndEnumeration
Procedure OpenWindow_0()
OpenWindow(#Window_0, DesktopMouseX(), DesktopMouseY(), 400, 245, "", #PB_Window_SystemMenu)
ListIconGadget(#ListIcon_0, 10, 10, 380, 140, "Display", 90,#PB_ListIcon_FullRowSelect)
AddGadgetColumn(#ListIcon_0, 1, "Width", 45)
AddGadgetColumn(#ListIcon_0, 2, "Height", 45)
AddGadgetColumn(#ListIcon_0, 3, "DesktopX", 60)
AddGadgetColumn(#ListIcon_0, 4, "DesktopY", 60)
ButtonGadget(#Button_0, 10, 155, 380, 45, "Update")
TextGadget(#Text_0, 10, 210, 210, 25, "Actual display: ", #PB_Text_Border)
TextGadget(#Text_1, 230, 210, 75, 25, "X:", #PB_Text_Border)
TextGadget(#Text_2, 315, 210, 75, 25, "Y:", #PB_Text_Border)
EndProcedure
Procedure Update()
ClearGadgetItems(#ListIcon_0)
For i=0 To ExamineDesktops()-1
AddGadgetItem(#ListIcon_0, -1, DesktopName(i)+Chr(10)+DesktopWidth(i)+Chr(10)+DesktopHeight(i)+Chr(10)+Str(DesktopX(i))+Chr(10)+Str(DesktopY(i)))
Next i
SetGadgetText(#Text_1, "X: "+Str(WindowX(#Window_0)))
SetGadgetText(#Text_2, "Y: "+Str(WindowY(#Window_0)))
EndProcedure
Procedure Moving()
SetGadgetText(#Text_1, "X: "+Str(WindowX(#Window_0)))
SetGadgetText(#Text_2, "Y: "+Str(WindowY(#Window_0)))
EndProcedure
Procedure Window_0_Events(event)
Select event
Case #PB_Event_CloseWindow
ProcedureReturn #False
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case #Button_0
Update()
EndSelect
Case #PB_Event_MoveWindow
Moving()
EndSelect
ProcedureReturn #True
EndProcedure
OpenWindow_0()
Update()
Repeat
event = WaitWindowEvent()
Until Window_0_Events(event) = #False
End


