Public Attributes

IMousePointerShapeChangedEvent Interface Reference

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

Inheritance diagram for IMousePointerShapeChangedEvent:
IEvent

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.