Class: Drawing

CIQ. Drawing


new Drawing()

Base class for Drawing Tools. Use ciqInheritsFrom() to build a subclass for custom drawing tools. The name of the subclass should be CIQ.Drawing.yourname. Whenever CIQ.ChartEngine.vectorType==yourname, then your drawing tool will be the one that is enabled when the user begins a drawing. Capitalization of yourname must be an exact match otherwise the kernel will not be able to find your drawing tool.

Each of the CIQ.Drawing prototype functions may be overridden. To create a functioning drawing tool you must override the functions below that create alerts.

Drawing clicks are always delivered in adjusted price. That is, if a stock has experienced splits then the drawing will not display correctly on an unadjusted price chart unless this is considered during the rendering process. Follow the templates to assure correct rendering under both circumstances.

If no color is specified when building a drawing then color will be set to "auto" and the chart will automatically display white or black depending on the background.

Permanent drawings:
To make a drawing permanent set its permanent property to true once created.
Example:
drawingObject.permanent=true;

See Using and Customizing Drawing Tools for more details.

Classes

annotation
average
BaseTwoPoint
callout
channel
continuous
crossline
ellipse
fibarc
fibfan
fibonacci
fibtimezone
freeform
gannfan
gartley
horizontal
line
measure
pitchfork
quadrant
ray
rectangle
regression
retracement
segment
shape
speedarc
speedline
timecycle
tirone
vertical

Members


dragToDraw

Set to true when need to hold mouse down to draw; set to false for click on/off draw

Example
CIQ.Drawing.prototype.dragToDraw=true;

Methods


copyConfig(drawingInstance)

Static function used to copy the relevant drawing parameters into the drawing instance. Use this when overriding the Instance function, to perform basic copy before performing custom operations.

Parameters:
Name Type Description
drawingInstance CIQ.Drawing

to copy into

Since:
  • 3.0.0

getDrawingParameters(stx, drawingName)

Static function used to return the relevant drawing parameters and defaults of the drawing type.

Parameters:
Name Type Description
stx CIQ.ChartEngine

Chart object

drawingName string

Name of drawing, e.g. "ray', "segment"

Since:
  • 3.0.0
Returns:

Map of parameters used in the drawing type, with their current values

Type
object

getDrawingToolList(excludeList)

Function to determine which drawing tools are available.

Parameters:
Name Type Description
excludeList object

Exclusion list of tools in object form ( e.g. {"vertical":true,"annotation":true})

Since:
  • 3.0.0
Returns:

Map of tool names and types

Type
object

abort(forceClear)

Is called to tell a drawing to abort itself. It should clean up any rendered objects such as DOM elements or toggle states. It does not need to clean up anything that it drew on the canvas.

Parameters:
Name Type Description
forceClear boolean

Indicates that the user explicitly has deleted the drawing (advanced usage)


adjust()

Called whenever periodicity changes so that drawings can adjust their rendering.


click(context, tick, value)

Called when a user clicks while drawing.

Parameters:
Name Type Description
context object

The canvas context

tick number

The tick in the dataSet

value number

The value (price) of the click

Returns:

Return true if the drawing is complete. Otherwise the kernel will continue accepting clicks.

Type
boolean

construct(stx, panel)

Initializes the drawing

Parameters:
Name Type Description
stx CIQ.ChartEngine

The chart object

panel CIQ.ChartEngine.Panel

The panel reference


copyConfig()

Instance function used to copy the relevant drawing parameters into itself. It just calls the static function.

Since:
  • 3.0.0

intersected(tick, value, box)

Called to determine whether the drawing is intersected by either the tick/value (pointer location) or box (small box surrounding the pointer). For line based drawings, box should be checked. For area drawings (rectangles, circles) the point should be checked

Parameters:
Name Type Description
tick number

The tick in the dataSet representing the cursor point

value number

The value (price) representing the cursor point

box object

x0,y0,x1,y1 representing an area around the cursor

Returns:

An object that contains information about the intersection. This object is passed back to CIQ.Drawing.reposition when repositioning the drawing. Return false or null if not intersected. Simply returning true will highlight the drawing.

Type
object

measure()

Should call this.stx.setMeasure() with the measurements of the drawing if supported


move()

Called when the user moves while creating a drawing.


pointIntersection(tick, value, box)

Returns true if the tick and value are inside the box

Parameters:
Name Type Description
tick number

The tick

value number

The value

box object

The box

Returns:

True if the tick and value are within the box

Type
boolean

reconstruct()

Reconstruct this drawing type from a serialization object


render()

Called to render the drawing


reposition(context, repositioner, tick, value)

Called when the user attempts to reposition a drawing. The repositioner is the object provided by CIQ.Drawing.intersected and can be used to determine which aspect of the drawing is being repositioned. For instance, this object may indicate which point on the drawing was selected by the user. It might also contain the original coordinates of the point or anything else that is useful to render the drawing.

Parameters:
Name Type Description
context object

The canvas context

repositioner object

The repositioner object

tick number

Current tick in the dataSet for the mouse cursor

value number

Current value in the datSet for the mouse cursor


serialize()

Serialize a drawing into an object.


setLineColor(color)

Compute the proper color to use when rendering lines in the drawing. Will use the color but if set to auto or transparent, will use the container's defaultColor. If drawing is highlighted will use the highlight color as defined in stx_highlight_vector style.

Parameters:
Name Type Description
color string

Color string to check and use as a basis for setting. If not supplied, uses this.color.

Since:
  • 4.0.0
Returns:

Color to use for the line drawing

Type
string
Example
var trendLineColor=this.setLineColor();
		this.stx.plotLine(x0, x1, y0, y1, trendLineColor, "segment", context, panel, parameters);