// Class: openfl.display.InteractiveObject

var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this

$global.Object.defineProperty(exports, "__esModule", {value: true});

var __map_reserved = {};

// Imports

var $hxClasses = require("./../../hxClasses_stub").default;
var $import = require("./../../import_stub").default;
var $extend = require("./../../extend_stub").default;
function openfl_display_DisplayObject() {return require("./../../openfl/display/DisplayObject");}
function openfl__$internal_Lib() {return require("./../../openfl/_internal/Lib");}

// Constructor

var InteractiveObject = function() {
	(openfl_display_DisplayObject().default).call(this);
	this.doubleClickEnabled = false;
	this.mouseEnabled = true;
	this.needsSoftKeyboard = false;
	this.__tabEnabled = null;
	this.__tabIndex = -1;
}

// Meta

InteractiveObject.__name__ = ["openfl","display","InteractiveObject"];
InteractiveObject.__super__ = (openfl_display_DisplayObject().default);
InteractiveObject.prototype = $extend((openfl_display_DisplayObject().default).prototype, {
	requestSoftKeyboard: function() {
		(openfl__$internal_Lib().default).notImplemented({ fileName : "InteractiveObject.hx", lineNumber : 1183, className : "openfl.display.InteractiveObject", methodName : "requestSoftKeyboard"});
		return false;
	},
	__allowMouseFocus: function() {
		return this.get_tabEnabled();
	},
	__getInteractive: function(stack) {
		if(stack != null) {
			stack.push(this);
			if(this.parent != null) {
				this.parent.__getInteractive(stack);
			}
		}
		return true;
	},
	__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) {
		if(!hitObject.get_visible() || this.__isMask || interactiveOnly && !this.mouseEnabled) {
			return false;
		}
		return (openfl_display_DisplayObject().default).prototype.__hitTest.call(this,x,y,shapeFlag,stack,interactiveOnly,hitObject);
	},
	get_tabEnabled: function() {
		if(this.__tabEnabled == true) {
			return true;
		} else {
			return false;
		}
	},
	set_tabEnabled: function(value) {
		return this.__tabEnabled = value;
	},
	get_tabIndex: function() {
		return this.__tabIndex;
	},
	set_tabIndex: function(value) {
		return this.__tabIndex = value;
	}
});
InteractiveObject.prototype.__class__ = InteractiveObject.prototype.constructor = $hxClasses["openfl.display.InteractiveObject"] = InteractiveObject;

// Init

Object.defineProperties(InteractiveObject.prototype,{ "tabEnabled" : { get : function () { return this.get_tabEnabled (); }, set : function (v) { return this.set_tabEnabled (v); }}, "tabIndex" : { get : function () { return this.get_tabIndex (); }, set : function (v) { return this.set_tabIndex (v); }}});

// Statics




// Export

exports.default = InteractiveObject;