world.WindowArc

MUSHclient script function (Method) — introduced in version 4.34

Draws an arc in a miniwindow

Prototype

long WindowArc(BSTR WindowName, long Left, long Top, long Right, long Bottom, long x1, long y1, long x2, long y2, long PenColour, long PenStyle, long PenWidth);

Data type meanings

Description

This draws an arc from x1,y1 to x2,y2 inside the box (Left,Top,Right,Bottom) with the designated pen.

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.

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

x1, y2 - the starting point for the arc - this point does not have to lie exactly on the arc.

x2, y2 - the ending point for the arc - this point does not have to lie exactly on the arc.

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.

For more information, see:

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

Lua example

WindowArc (win, 20, 20, 80, 80, 30, 30, 120, 50, ColourNameToRGB ("green"), 0, 4)

Lua notes

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
ePenStyleNotValid - invalid pen style
eOK - completed OK

Return code meanings

Related topic

MiniWindows

See also

FunctionDescription
WindowBezierDraws a Bézier curve in a miniwindow
WindowCircleOpDraws ellipses, filled rectangles, round rectangles, chords, pies in a miniwindow
WindowCreateCreates a miniwindow
WindowDrawImageDraws an image into a miniwindow
WindowLineDraws a line in a miniwindow
WindowPolygonDraws a polygon in a miniwindow
WindowRectOpDraws a rectangle in a miniwindow