Public Attributes

# IMousePointerShapeChangedEvent Interface Reference

Notification when the guest mouse pointer shape has changed. More...

Inheritance diagram for IMousePointerShapeChangedEvent:

List of all members.

## Public Attributes
readonly attribute boolean | visible
| Flag whether the pointer is visible.
readonly attribute boolean | alpha
| Flag whether the pointer has an alpha channel.
readonly attribute unsigned long | xhot
| The pointer hot spot X coordinate.
readonly attribute unsigned long | yhot
| The pointer hot spot Y coordinate.
readonly attribute unsigned long | width
| Width of the pointer shape in pixels.
readonly attribute unsigned long | height
| Height of the pointer shape in pixels.
readonly attribute octet[] | shape
| Shape buffer arrays.

## Detailed Description

Notification when the guest mouse pointer shape has changed.

The new shape data is given.

Interface ID:
  `{A6DCF6E8-416B-4181-8C4A-45EC95177AEF}`

## Member Data Documentation

readonly attribute boolean IMousePointerShapeChangedEvent::visible

Flag whether the pointer is visible.

readonly attribute boolean IMousePointerShapeChangedEvent::alpha

Flag whether the pointer has an alpha channel.

readonly attribute unsigned long IMousePointerShapeChangedEvent::xhot

The pointer hot spot X coordinate.

readonly attribute unsigned long IMousePointerShapeChangedEvent::yhot

The pointer hot spot Y coordinate.

readonly attribute unsigned long IMousePointerShapeChangedEvent::width

Width of the pointer shape in pixels.

readonly attribute unsigned long IMousePointerShapeChangedEvent::height

Height of the pointer shape in pixels.

readonly attribute octet [] IMousePointerShapeChangedEvent::shape

Shape buffer arrays.

The shape buffer contains a 1-bpp (bits per pixel) AND mask followed by a 32-bpp XOR (color) mask.

For pointers without alpha channel the XOR mask pixels are 32 bit values: (lsb)BGR0(msb). For pointers with alpha channel the XOR mask consists of (lsb)BGRA(msb) 32 bit values.

An AND mask is used for pointers with alpha channel, so if the callback does not support alpha, the pointer could be displayed as a normal color pointer.

The AND mask is a 1-bpp bitmap with byte aligned scanlines. The size of the AND mask therefore is `cbAnd = (width + 7) / 8 * height`. The padding bits at the end of each scanline are undefined.

The XOR mask follows the AND mask on the next 4-byte aligned offset: `uint8_t *pXor = pAnd + (cbAnd + 3) & ~3`. Bytes in the gap between the AND and the XOR mask are undefined. The XOR mask scanlines have no gap between them and the size of the XOR mask is: `cXor = width * 4 * height`.

Note:
  If shape is 0, only the pointer visibility is changed.