/**
* Default property values of interactive objects
* Used by {@link PIXI.interaction.InteractionManager} to automatically give all DisplayObjects these properties
*
* @mixin
* @name interactiveTarget
* @memberof PIXI.interaction
* @example
* function MyObject() {}
*
* Object.assign(
* core.DisplayObject.prototype,
* PIXI.interaction.interactiveTarget
* );
*/
export default {
/**
* Determines if the displayObject be clicked/touched
*
* @inner {boolean}
*/
interactive: false,
/**
* Determines if the children to the displayObject can be clicked/touched
* Setting this to false allows pixi to bypass a recursive hitTest function
*
* @inner {boolean}
*/
interactiveChildren: true,
/**
* Interaction shape. Children will be hit first, then this shape will be checked.
* Setting this will cause this shape to be checked in hit tests rather than the displayObject's bounds.
*
* @inner {PIXI.Rectangle|PIXI.Circle|PIXI.Ellipse|PIXI.Polygon|PIXI.RoundedRectangle}
*/
hitArea: null,
/**
* If enabled, the mouse cursor use the pointer behavior when hovered over the displayObject if it is interactive
* Setting this changes the 'cursor' property to `'pointer'`.
*
* @member {boolean}
* @memberof PIXI.interaction.interactiveTarget#
*/
get buttonMode()
{
return this.cursor === 'pointer';
},
set buttonMode(value)
{
if (value)
{
this.cursor = 'pointer';
}
else if (this.cursor === 'pointer')
{
this.cursor = null;
}
},
/**
* This defines what cursor mode is used when the mouse cursor
* is hovered over the displayObject.
*
* @see https://developer.mozilla.org/en/docs/Web/CSS/cursor
*
* @inner {string}
*/
cursor: null,
/**
* Internal set of all active pointers, by identifier
*
* @member {Map<number, InteractionTrackingData>}
* @memberof PIXI.interaction.interactiveTarget#
* @private
*/
get trackedPointers()
{
if (this._trackedPointers === undefined) this._trackedPointers = {};
return this._trackedPointers;
},
/**
* Map of all tracked pointers, by identifier. Use trackedPointers to access.
*
* @private {Map<number, InteractionTrackingData>}
*/
_trackedPointers: undefined,
};