DesktopMouseX/Y?
BlitzMax Forums/BlitzMax Beginners Area/DesktopMouseX/Y?| 
 | ||
| Is there a way to *get* the mouse position values that you can set with MoveMouse()? | 
| 
 | ||
| GadgetX(Desktop()) ought to work, but last time I  checked, it didn't. | 
| 
 | ||
| MaxGUI Global MX:Int;MY:Int Select EventID() Case Event_MouseMove MX=EventX() MY=EventY() End Select | 
| 
 | ||
| 
Strict 
Local window:TGadget
window=CreateWindow("My Window",40,40,320,240)
Local P:TGadget = CreatePanel(0,0,ClientWidth(window),ClientHeight(window),Window,PANEL_ACTIVE)
While True
	WaitEvent 
	Print CurrentEvent.ToString()
	Select EventID()
		Case EVENT_WINDOWCLOSE
			End
		Case EVENT_MOUSEMOVE
			SetStatusText(window,EventX()+ ":" + EventY() )
		Case EVENT_WindowSize
			SetGadgetShape(P,0,0,ClientWidth(window),ClientHeight(window))
	End Select
Wend
 | 
| 
 | ||
| No, no, not inside the application window - on the Desktop. I want to move a window to where the mouse is, and to do that I need the mouse's co-ordinates relative to the top left corner of the screen. Adding GadgetX/Y to window co-ordinates won't help because it won't be offset by the size of the window title bar/edge. There should be a way to do this, MoveMouse can *set* the values. Edit: Also, klepto: Case EVENT_WindowSize SetGadgetShape(P,0,0,ClientWidth(window),ClientHeight(window)) Another way to do this (though you might already know and prefer to do it your way) is: SetGadgetLayout P,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED ...once, after you create it. | 
| 
 | ||
| Yes, I alread know that, but forget it with this sample. Maybe, this is what you are looking for: Win32 only: 
Strict 
Local window:TGadget
Global PT: POINT = New POINT
GetCursorPos_( pt )
window=CreateWindow("My Window",pt.x,pt.y,200,300)
While True
	GetCursorPos_( pt )
	SetStatusText(Window,pt.x + " : " + pt.y)
	
	WaitEvent 
	
	Print CurrentEvent.ToString()
	Select EventID()
		Case EVENT_WINDOWCLOSE
			End
	End Select
Wend
?Win32
	Extern "Win32"
		Function GetCursorPos_(lpPoint:Byte Ptr) = "GetCursorPos@4"
	End Extern
?
Type POINT
	Field x%
	Field y%
End Type
 | 
| 
 | ||
| Aha! Yeah, that looks like it, thank you. Surely Cocoa and FLTK have equivalent functions, this should be made an official function... | 
| 
 | ||
| What about getting the screen position of gadgets, is that as easy? I suppose I could iterate back through using GadgetGroup(), adding up all the GadgetX()'s, but that would still have the titlebar/sidebar problem. |