[Home] [Downloads] [Search] [Help/forum]


Register forum user name Search FAQ

MUSHclient scripting

Description of MUSHclient world function: world.WindowScrollwheelHandler


Name WindowScrollwheelHandler
Type Method
Summary Adds a scroll-wheel handler to a miniwindow hotspot
Prototype long WindowScrollwheelHandler(BSTR WindowName, BSTR HotspotId, BSTR MoveCallback);
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.


Note: Available in version 4.52 onwards.


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).
Returns 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
Introduced in version 4.52

See also ...

Function Description
SetCursor Changes the shape of the mouse cursor
WindowAddHotspot Adds a hotspot to a miniwindow
WindowCreate Creates a miniwindow
WindowDeleteAllHotspots Deletes all hotspots from a miniwindow
WindowDeleteHotspot Deletes a hotspot from a miniwindow
WindowDragHandler Adds a drag handler to a miniwindow hotspot
WindowHotspotInfo Returns information about a hotspot
WindowHotspotList Lists all hotspots installed into a miniwindow

Search for script function

Enter a word or phrase in the box below to narrow the list down to those that match.

The function name, prototype, summary, and description are searched.

Search for:   

Leave blank to show all functions.


Return codes

Many functions return a "code" which indicates the success or otherwise of the function.

You can view a list of the return codes


Function prototypes

The "prototype" part of each function description lists exactly how the function is called (what arguments, if any, to pass to it).

You can view a list of the data types used in function prototypes


View all functions

[Back]

Quick links: MUSHclient. MUSHclient help. Forum shortcuts. Posting templates. Lua modules. Lua documentation.

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.

[Home]


Written by Nick Gammon - 5K   profile for Nick Gammon on Stack Exchange, a network of free, community-driven Q&A sites   Marriage equality

Comments to: Gammon Software support
[RH click to get RSS URL] Forum RSS feed ( https://gammon.com.au/rss/forum.xml )

[Best viewed with any browser - 2K]    [Hosted at HostDash]