MUSHclient from version 4.34 onwards now has "floating miniwindows" which appear on top of, or to the side of, the main output window. As these are part of the main window, if you move or resize the main window, the extra windows automatically move with it.
Miniwindows are created and manipulated purely by script commands, generally intended to be inside plugins.
You can have any number of miniwindows at once. Each one has a name which is used by the script to refer to it. Your only limitation would be available screen space, and your imagination. Names are case-sensitive.
Miniwindows do not necessarily have to be visible. Thus you could be adding to a miniwindow (such as your inventory) during combat, when you might not want to see it. Later, you can show it, and its most recent contents will be displayed.
Each miniwindow is rectangular in shape, and can be any size you like. They start off with a background colour you specify, however you can change that partly or completely by drawing in the window.
You can position the miniwindows whereever you want to, however there are various auto-positioning options, such as top left corner, middle of top of window, top right corner, and so on.
Miniwindows are drawn in an off-screen buffer (bitmap), and then automatically copied to the main output window, whenever the output window is redrawn. This provides fast, flicker-free operation.
Miniwindows can be drawn either above or below the normal output window text. Normally for a floating-style window you would want it above (and thus the text scrolls underneath it), however for some background information you can choose to have the text scroll over the miniwindow.
Miniwindows can capture mouse-down, mouse-move, and mouse-up events, in order to react to the player clicking on them. This can be used to implement hyperlinks, buttons, and "mouse-over" help.
Miniwindows can be resized and moved as desired.
Miniwindows can be drawn transparently, so that they can have holes in them, wherever the transparent colour appears.
Miniwindows can have any number of "hotspots" which are rectangular areas which react to mouse-over, mouse-down, and mouse-up events. Each hotspot has a "hotspot ID" which identifies it. Hotspot IDs are case-sensitive. Hotspots can optionally show "hover-over" text (eg. hints) to show what they are used for.
With the assistance of some scripting (see the "movewindow" module) you can arrange for miniwindows to be dragged around to any desired location.
See Also ...
(GetDeviceCaps) Gets screen device capabilities
(Help topic: general=miniwindows)
Enter a search string to find matching documentation.
Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.
Gammon Software support
Forum RSS feed ( https://gammon.com.au/rss/forum.xml )