world.WindowScrollwheelHandler

MUSHclient script function (Method) — introduced in version 4.52

Adds a scroll-wheel handler to a miniwindow hotspot

Prototype

long WindowScrollwheelHandler(BSTR WindowName, BSTR HotspotId, BSTR MoveCallback);

Data type meanings

Description

Adds a scroll-wheel handler callback to the nominated hotspot.

If:

* The user moves the scroll wheel over a miniwindow hotspot; and
* There is a MoveCallback function defined (by using this function)

... then the callback function is called.

To cancel a scroll wheel handler, just set the function name to the empty string, eg.

WindowScrollwheelHandler(win, "hs1", "")

The callback function should look like this:

function wheel_move (flags, hotspot_id)

if bit.band (flags, 0x100) ~= 0 then
-- wheel scrolled down (towards you)
else
-- wheel scrolled up (away from you)
end -- if

return 0 -- needed for some languages
end -- wheel_move

The flags parameter is a bit mask as follows:

0x01 - Shift key down
0x02 - Control key down
0x04 - Alt key down
0x100 - Scroll wheel scrolled down (towards you)

In Lua you can use bit.band (as illustrated above) to test individual flags. In other languages you can use bit manipulation tests to check the flags. For example, in VBscript if flags is >= 256 then the mouse wheel was scrolled towards you.

The function return code is ignored, however for some languages, like PHP, you should return 0, otherwise you will get a runtime error.

WARNING: The callbacks is not a function, but the name of a function. That is, it should be supplied as a string argument. The supplied name is looked up in the script space at the appropriate time.

Lua example

function wheel_move (flags, hotspot_id)

 if bit.band (flags, 0x100) ~= 0 then
    -- wheel scrolled down (towards you)
  else
    -- wheel scrolled up (away from you)
  end -- if

  return 0  -- needed for some languages
end -- wheel_move

WindowScrollwheelHandler(win, "hs1", "wheel_move")

Lua notes

The handler function name can be omitted and default to the empty string (ie. no function).

Return value

eNoSuchWindow - no such miniwindow
eHotspotNotInstalled - no such hotspot
eInvalidObjectLabel - the script function is not a valid function name
eHotspotPluginChanged - the plugin is not the same one as used before for hotspots
eOK - completed OK

Return code meanings

Related topic

MiniWindows

See also

FunctionDescription
SetCursorChanges the shape of the mouse cursor
WindowAddHotspotAdds a hotspot to a miniwindow
WindowCreateCreates a miniwindow
WindowDeleteAllHotspotsDeletes all hotspots from a miniwindow
WindowDeleteHotspotDeletes a hotspot from a miniwindow
WindowDragHandlerAdds a drag handler to a miniwindow hotspot
WindowHotspotInfoReturns information about a hotspot
WindowHotspotListLists all hotspots installed into a miniwindow