EventX() EventY()

BlitzPlus Forums/BlitzPlus Beginners Area/EventX() EventY()

covi2955(Posted 2013) [#1]
I've been having trouble getting some code to work. I was originally using MouseX() and MouseY() to interact with a canvas, unfortunately, as I have multiple canvases and such in my GUI, MouseX() and MouseY() only returns values based on the canvas they are referred to and don't actually tell you if the mouse is on the canvas or not.

I later ran into what looked like the solution by using
id=waitevent()
if id=$201;;if the mouse clicks
if EventSource()=canvasThatIWant
if EventData()=LeftOrRightClick

But whenever I try to use the
mx=EventX()
my=EventY()
to track the mouse location and see what its actually clicking in the canvases, it always returns a 0.

How does EventX() and EventY() work?


misth(Posted 2013) [#2]
Here's an example of what you can do with EventX() and EventY():
; create a window
win=CreateWindow("Move the mouse over the window",100,100,400,300,0,9)
cnv1=CreateCanvas(10,10,100,100,win)
cnv2=CreateCanvas(120,120,250,150,win)

; and set the status text
SetStatusText win,"Move the mouse over the window"

; a small event loop
Repeat

    id = WaitEvent()

    Select id
        Case $803 ; exit on window close event
            Exit

        Case $203 ; update the status on gadget action
            select eventsource()
                case cnv1
                    SetStatusText win,"Canvas1: "+EventX() + " x " + EventY()
                case cnv2
                    SetStatusText win,"Canvas2: "+EventX() + " x " + EventY()
            end select

    End Select

Forever

End ; bye!


Hope this helps! :)