Script function
world.WindowCircleOp
Read about scripting
Type
Method
Summary
Draws ellipses, filled rectangles, round rectangles, chords, pies in a miniwindow
Prototype
long WindowCircleOp(BSTR WindowName, short Action, long Left, long Top, long Right, long Bottom, long PenColour, long PenStyle, long PenWidth, long BrushColour, long BrushStyle, long Extra1, long Extra2, long Extra3, long Extra4);
View list of data type meanings
Description
This draws an ellipse, rectangle, round rectangle, chord or pie, controlled by the Action parameter.
Unlike WindowRectOp described above the rectangles drawn here can be filled with a brush, thus allowing you to have patterned interiors if desired.
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 (however see below)
3 = Round Rectangle
4 = Chord
5 = Pie
Left, Top, Right, Bottom - describes the rectangle into which the shape must fit.
Note for rectangles: Due to the behaviour of the Windows drawing function which this calls, the rectangle excludes the bottom and right-hand edges (that is, stops one pixel short).
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 RGB colour for this brush
BrushStyle - what style of brush to use:
0: solid (filled with a solid colour)
1: null (not filled)
2: hatch: horizontal
3: hatch: vertical
4: hatch: forwards diagonal
5: hatch: backwards diagonal
6: hatch: cross
7: hatch: diagonal cross
8: fine pattern
9: medium pattern
10: coarse pattern
11: waves - horizontal
12: waves - vertical
For more information, see:
http://www.gammon.com.au/mushclient/mw_shapes.htm
For actions 1 and 2 (ellipse and rectangle):
Extra1, Extra2, Extra3, Extra4 are ignored.
For action 3 (round rectangle):
Extra1 is the width of the ellipse used to draw the rounded corner.
Extra2 is the height of the ellipse used to draw the rounded corner.
Extra3, Extra4 are ignored.
For action 4 (chord):
Extra1, Extra2 is the x, y position of the chord's starting point.
Extra3, Extra4 is the x, y position of the chord's ending point.
For action 5 (pie):
Extra1, Extra2 is the x, y position of the pie's starting point.
Extra3, Extra4 is the x, y position of the pie's ending point.
Available in MUSHclient version 4.34 onwards.
Lua example
-- Ellipses
WindowCircleOp (win, 1, 0, 0, 40, 40, -- circle
ColourNameToRGB("blue"), 0, 2, ColourNameToRGB("cyan"), 0)
WindowCircleOp (win, 1, 50, 20, 100, 100, -- ellipse
ColourNameToRGB("magenta"), 0, 2, ColourNameToRGB("cyan"), 0)
-- Rectangles
WindowCircleOp (win, 2, 5, 5, 40, 40, -- square
ColourNameToRGB("blue"), 0, 3, ColourNameToRGB("cyan"), 8)
WindowCircleOp (win, 2, 50, 20, 95, 95, -- rectangle
ColourNameToRGB("magenta"), 0, 3, ColourNameToRGB("cyan"), 11)
-- Round Rectangle
WindowCircleOp (win, 3, 15, 15, 90, 90, -- round rectangle
ColourNameToRGB("blue"), 0, 2, ColourNameToRGB("cyan"), 10, 25, 25)
-- Chord
WindowCircleOp (win, 4, 15, 15, 90, 90, -- chord
ColourNameToRGB("green"), 0, 2, ColourNameToRGB("cyan"), 0,
40, 10, 70, 95)
-- Pie
WindowCircleOp (win, 5, 15, 15, 90, 90, -- pie
ColourNameToRGB("green"), 0, 2, ColourNameToRGB("cyan"), 0,
60, 10, 80, 80)
Lua notes
You can use the following constants for the action:
miniwin.circle_ellipse = 1
miniwin.circle_rectangle = 2
miniwin.circle_round_rectangle = 3
miniwin.circle_chord = 4
miniwin.circle_pie = 5
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
You can use the following constants for the brush style:
miniwin.brush_solid = 0
miniwin.brush_null = 1
miniwin.brush_hatch_horizontal = 2
miniwin.brush_hatch_vertical = 3
miniwin.brush_hatch_forwards_diagonal = 4
miniwin.brush_hatch_backwards_diagonal = 5
miniwin.brush_hatch_cross = 6
miniwin.brush_hatch_cross_diagonal = 7
miniwin.brush_fine_pattern = 8
miniwin.brush_medium_pattern = 9
miniwin.brush_coarse_pattern = 10
miniwin.brush_waves_horizontal = 11
miniwin.brush_waves_vertical = 12
Return value
eNoSuchWindow - no such miniwindow
ePenStyleNotValid - invalid pen style
eBrushStyleNotValid - invalid brush style
eUnknownOption - Action not in list above
eOK - completed OK
View list of return code meanings
See Also ...
Topic
MiniWindows
Functions
(GetDeviceCaps) Gets screen device capabilities
(SetCursor) Changes the shape of the mouse cursor
(TextRectangle) Specifies the size of the rectangle in which text is displayed in the output window.
(WindowAddHotspot) Adds a hotspot to a miniwindow
(WindowArc) Draws an arc in a miniwindow
(WindowBezier) Draws a Bézier curve in a miniwindow
(WindowBlendImage) Blends an image into a miniwindow, using a specified blending mode
(WindowCreate) Creates a miniwindow
(WindowCreateImage) Creates an image in a miniwindow
(WindowDelete) Deletes 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
(WindowDrawImage) Draws an image into a miniwindow
(WindowDrawImageAlpha) Draws an image into a miniwindow respecting the alpha channel
(WindowFilter) Performs a filtering operation over part of the miniwindow.
(WindowFont) Loads a font into a miniwindow
(WindowFontInfo) Returns information about a font
(WindowFontList) Lists all fonts loaded into a miniwindow
(WindowGetImageAlpha) Draws the alpha channel of an image into a miniwindow
(WindowGetPixel) Gets the colour of a single pixel in a miniwindow
(WindowGradient) Draws a gradient in a rectangle
(WindowHotspotInfo) Returns information about a hotspot
(WindowHotspotList) Lists all hotspots installed into a miniwindow
(WindowHotspotTooltip) Changes the tooltip text for a hotspot in a miniwindow
(WindowImageFromWindow) Creates an image from another miniwindow
(WindowImageInfo) Returns information about an image
(WindowImageList) Lists all images installed into a miniwindow
(WindowImageOp) Draws an ellipse, rectangle or round rectangle, filled with an image
(WindowInfo) Returns information about a miniwindow
(WindowLine) Draws a line in a miniwindow
(WindowList) Lists all miniwindows
(WindowLoadImage) Loads an image into a miniwindow from a disk file
(WindowMenu) Creates a pop-up menu inside a miniwindow
(WindowMergeImageAlpha) Merges an image into a miniwindow based on an alpha mask
(WindowMoveHotspot) Moves a hotspot in a miniwindow
(WindowPolygon) Draws a polygon in a miniwindow
(WindowPosition) Moves a miniwindow
(WindowRectOp) Draws a rectangle in a miniwindow
(WindowResize) Resizes a miniwindow
(WindowScrollwheelHandler) Adds a scroll-wheel handler to a miniwindow hotspot
(WindowSetPixel) Sets a single pixel in a miniwindow to the specified colour
(WindowSetZOrder) Sets the Z-Order for a miniwindow
(WindowShow) Shows or hides a miniwindow
(WindowText) Draws text into a miniwindow
(WindowTextWidth) Calculates the width of text in a miniwindow
(WindowTransformImage) Draws an image into a miniwindow with optional rotation, scaling, reflection and shearing
(WindowWrite) Writes the contents of a miniwindow to disk as a graphics file
(Help topic: function=WindowCircleOp)