world.WindowImageOp

MUSHclient script function (Method) — introduced in version 4.34

Draws an ellipse, rectangle or round rectangle, filled with an image

Prototype

long WindowImageOp(BSTR WindowName, short Action, long Left, long Top, long Right, long Bottom, long PenColour, long PenStyle, long PenWidth, long BrushColour, BSTR ImageId, long EllipseWidth, long EllipseHeight);

Data type meanings

Description

This draws an ellipse, rectangle, round rectangle, controlled by the Action parameter. The specified shape is filled with a previously-loaded image.

Note that changes to miniwindows will not become visible until the output window is redrawn. This happens when new (visible) lines arrive from the MUD, or if you call WindowShow, or Redraw.

Parameters:

WindowName - the name of an existing miniwindow.

Action - what sort of shape to draw, as follows:

1 = Ellipse
2 = Rectangle
3 = Round Rectangle

Left, Top, Right, Bottom - describes the rectangle into which the shape must fit.

PenColour - the RGB colour for this pen

PenStyle - what style of pen to use:

0 - solid (an unbroken pen)
1 - dash: -------
2 - dot: .......
3 - dashdot: _._._._
4 - dashdotdot: _.._.._
5 - null (no pen)
6 - insideframe - a solid pen, drawn inside the shape

Also you can add into the style:

0x0000 - round ends (0 = the default)
0x0100 - square ends (256)
0x0200 - flat ends (512)

0x0000 - round joins (0 = the default)
0x1000 - bevel joins (4096)
0x2000 - miter joins (8192)

PenWidth - the width of the pen in pixels. For styles 1 to 4 only a width of 1 is valid.

For a particular shape, specify style 5 (no pen) if you only want to fill the shape, and not stroke it as well.

BrushColour - the colour used for drawing the background, when displaying monochrome bitmaps.

ImageId - an image id that you have loaded.

EllipseWidth, EllipseHeight - the dimensions of the ellipse in the corner of a round rectangle, if applicable.

For more information, see:

http://www.gammon.com.au/mushclient/mw_images.htm

Lua example

WindowImageOp (win, 1, 20, 20, 150, 150,    -- circle
              ColourNameToRGB("blue"), 0, 2, 
              ColourNameToRGB("cyan"), "im")

WindowImageOp (win, 2, 0, 0, 0, 0,    -- rectangle 
              ColourNameToRGB("blue"), 5, 1, 
              ColourNameToRGB("cyan"), "im")


WindowImageOp (win, 3, 20, 20, 160, 160,    -- round rectangle
              ColourNameToRGB("blue"), 0, 3, 
              ColourNameToRGB("cyan"), "im", 
              20, 20)

Lua notes

You can use the following constants for the action:

miniwin.image_fill_ellipse = 1
miniwin.image_fill_rectangle = 2
miniwin.image_fill_round_fill_rectangle = 3

You can use the following constants for the pen style:

miniwin.pen_solid = 0
miniwin.pen_dash = 1
miniwin.pen_dot = 2
miniwin.pen_dash_dot = 3
miniwin.pen_dash_dot_dot = 4
miniwin.pen_null = 5
miniwin.pen_inside_frame = 6

-- how lines join (eg. in polygons) (add this to the style)

miniwin.pen_join_round = 0
miniwin.pen_join_bevel = 4096
miniwin.pen_join_miter = 8192

-- how lines end (add this to the style)

miniwin.pen_endcap_round = 0
miniwin.pen_endcap_square = 256
miniwin.pen_endcap_flat = 512

Return value

eNoSuchWindow - no such miniwindow

eImageNotInstalled - that image was not loaded with WindowLoadImage

ePenStyleNotValid - invalid pen style

eUnknownOption - drawing mode not in list above

eOK - completed OK

Return code meanings

Related topic

MiniWindows

See also

FunctionDescription
WindowCreateCreates a miniwindow
WindowCreateImageCreates an image in a miniwindow
WindowDrawImageDraws an image into a miniwindow
WindowImageInfoReturns information about an image
WindowImageListLists all images installed into a miniwindow