Difference between revisions of "$mouse"
From Scriptwiki
m (Reordered and made that page comply with Guidelines) |
m (Added .cx/.cy) |
||
Line 10: | Line 10: | ||
.mx/.my returns mouse x- and y-coordinates relative to mirc window. | .mx/.my returns mouse x- and y-coordinates relative to mirc window. | ||
.dx/.dy returns mouse x- and y-coordinates relative to desktop. | .dx/.dy returns mouse x- and y-coordinates relative to desktop. | ||
+ | .cx/.cy returns mouse x- and y-coordinates relative to primary monitor. (Use for multi-monitor purposes rather than .dx/.dy.) | ||
.lb property returns $true if a mouse event occurred over a listbox, or $false if it didn't. | .lb property returns $true if a mouse event occurred over a listbox, or $false if it didn't. | ||
.key returns a bitwise value of the key(s) being pressed. | .key returns a bitwise value of the key(s) being pressed. |
Latest revision as of 12:32, 8 July 2014
Returns the x, y position of the current mouse event, and whether the left mouse button, shift key, and/or control key are pressed. The $mouse identifier can be used in the mouse/click events.
$mouse
Properties:
.win property returns the name of the active window. .x/.y returns mouse x- and y-coordinates relative to active window. .mx/.my returns mouse x- and y-coordinates relative to mirc window. .dx/.dy returns mouse x- and y-coordinates relative to desktop. .cx/.cy returns mouse x- and y-coordinates relative to primary monitor. (Use for multi-monitor purposes rather than .dx/.dy.) .lb property returns $true if a mouse event occurred over a listbox, or $false if it didn't. .key returns a bitwise value of the key(s) being pressed.
For $mouse.key you can use the & bitwise operator to check if the left button, shift key, and/or control key are pressed:
if ($mouse.key & 1) echo left button is pressed. if ($mouse.key & 2) echo control key is pressed. if ($mouse.key & 4) echo shift key is pressed. if ($mouse.key & 8) echo alt key is pressed. if ($mouse.key & 16) echo right mouse button is pressed.
The following menu commands are available for mouse actions:
mouse: triggers when mouse moves in a window sclick: triggers on single left-click (mouse1; left button) dclick: triggers on double click (mouse1; left button) uclick: triggers when button is released inside window, triggers before drop (mouse1; left button) rclick: triggers on single right-click (mouse2; right button) lbclick: triggers when user single clicks on window listbox leave: triggers when mouse moves outside from window area $leftwin = windowname, $leftwinwid = windowID drop: triggers when button is released inside the window (mouse1; left button)
Example
; First we'll need to create a picture window from editbox: ; -p means it's a picture window, first @test is the name of the window, the second @test is the name of the popupfile ; (we'll use the window's name so we can use the menu prefix in remote script) /window -p @test @test ; the menu for our @test window menu @test { ; "mouse" triggers whenever mouse moves in the window, and executes draw alias mouse:draw ; "dclick" triggers whenever user doubleclicks in the window, we'll use this to clear the window dclick:clear @test } ; this is the alias that is executed everytime mouse moves in @test window alias draw { ; an if to check if left mouse button is pressed, if so draw a dot into the window with colorcode 4, size 2px, ; and read the X and Y location for the dot from $mouse.x and $mouse.y if ($mouse.key & 1) { drawdot @test 4 2 $mouse.x $mouse.y } ; else if left mouse button wasn't pressed, see if right mouse button was ; we'll do the drawdot like earlier, but use background color as the color (erase) and make it a bit bigger elseif ($mouse.key & 16) { drawdot @test $color(background) 6 $mouse.x $mouse.y } }
See Also
* $click Stores a history of x/y clicks in a window. * Menu Prefix Various mouse events inside the custom menus.