#### 15.3.3.9 Light Properties

The `light` properties are:

`beingdeleted`: {`"off"`} | `"on"`
`busyaction`: `"cancel"` | {`"queue"`}

  Define how Octave handles the execution of this object’s callback properties when it is unable to interrupt another object’s executing callback. This is only relevant when the currently executing callback object has its `interruptible` property set to `"off"`. The `busyaction` property of the interrupting callback object indicates whether the interrupting callback is queued (`"queue"` (default)) or discarded (`"cancel"`). See Callbacks section.

`buttondownfcn`: string | function handle, def. `[](0x0)`

  For information on how to write graphics listener functions see Callbacks section.

`children` (read-only): vector of graphics handles, def. `[](0x1)`

  `children` is unused.

`clipping`: `"off"` | {`"on"`}

  If `clipping` is `"on"`, the light is clipped in its parent axes limits.

`color`: colorspec, def. `[1 1 1]`

  Color of the light source. See colorspec.

`createfcn`: string | function handle, def. `[](0x0)`

  Callback function executed immediately after light has been created. Function is set by using default property on root object, e.g., `set (groot, "defaultlightcreatefcn", 'disp ("light created!")')`.

  For information on how to write graphics listener functions see Callbacks section.

`deletefcn`: string | function handle, def. `[](0x0)`

  Callback function executed immediately before light is deleted.

  For information on how to write graphics listener functions see Callbacks section.

`handlevisibility`: `"callback"` | `"off"` | {`"on"`}

  If `handlevisibility` is `"off"`, the light’s handle is not visible in its parent’s "children" property.

`hittest`: `"off"` | {`"on"`}

  Specify whether light processes mouse events or passes them to ancestors of the object. When enabled, the object may respond to mouse clicks by evaluating the `"buttondownfcn"`, showing the uicontextmenu, and eventually becoming the root `"currentobject"`. This property is only relevant when the object can accept mouse clicks which is determined by the `"pickableparts"` property. See pickableparts property.

`interruptible`: `"off"` | {`"on"`}

  Specify whether this object’s callback functions may be interrupted by other callbacks. By default `interruptible` is `"on"` and callbacks that make use of `drawnow`, `figure`, `waitfor`, `getframe` or `pause` functions are eventually interrupted. See Callbacks section.

`parent`: graphics handle

  Handle of the parent graphics object.

`pickableparts`: `"all"` | `"none"` | {`"visible"`}

  Specify whether light will accept mouse clicks. By default, `pickableparts` is `"visible"` and only visible parts of the light or its children may react to mouse clicks. When `pickableparts` is `"all"` both visible and invisible parts (or children) may react to mouse clicks. When `pickableparts` is `"none"` mouse clicks on the object are ignored and transmitted to any objects underneath this one. When an object is configured to accept mouse clicks the `"hittest"` property will determine how they are processed. See hittest property.

`position`: def. `[1 0 1]`

  Position of the light source.

`selected`: {`"off"`} | `"on"`
`selectionhighlight`: `"off"` | {`"on"`}
`style`: {`"infinite"`} | `"local"`

  This string defines whether the light emanates from a light source at infinite distance (`"infinite"`) or from a local point source (`"local"`).

`tag`: string, def. `""`

  A user-defined string to label the graphics object.

`type` (read-only): string

  Class name of the graphics object. `type` is always `"light"`

`uicontextmenu`: graphics handle, def. `[](0x0)`

  Graphics handle of the uicontextmenu object that is currently associated to this light object.

`userdata`: Any Octave data, def. `[](0x0)`

  User-defined data to associate with the graphics object.

`visible`: `"off"` | {`"on"`}

  If `visible` is `"off"`, the light is not rendered on screen.