UNPKG

openfl

Version:

A fast, productive library for 2D cross-platform development.

1,409 lines (1,400 loc) 68.5 kB
// Class: openfl.display.Stage 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 $hxEnums = require("./../../hxEnums_stub").default; var $import = require("./../../import_stub").default; var $bind = require("./../../bind_stub").default; var $extend = require("./../../extend_stub").default; function lime_app_IModule() {return require("./../../lime/app/IModule");} function openfl_display_DisplayObjectContainer() {return require("./../../openfl/display/DisplayObjectContainer");} function openfl_display_DisplayObject() {return require("./../../openfl/display/DisplayObject");} function haxe_CallStack() {return require("./../../haxe/CallStack");} function js__$Boot_HaxeError() {return require("./../../js/_Boot/HaxeError");} function Std() {return require("./../../Std");} function openfl_display_CanvasRenderer() {return require("./../../openfl/display/CanvasRenderer");} function openfl_display_DOMRenderer() {return require("./../../openfl/display/DOMRenderer");} function openfl_display3D_Context3D() {return require("./../../openfl/display3D/Context3D");} function openfl_display_OpenGLRenderer() {return require("./../../openfl/display/OpenGLRenderer");} function openfl_events_UncaughtErrorEvent() {return require("./../../openfl/events/UncaughtErrorEvent");} function openfl_Lib() {return require("./../../openfl/Lib");} function lime_utils_Log() {return require("./../../lime/utils/Log");} function Reflect() {return require("./../../Reflect");} function openfl_events_MouseEvent() {return require("./../../openfl/events/MouseEvent");} function lime_ui__$KeyModifier_KeyModifier_$Impl_$() {return require("./../../lime/ui/_KeyModifier/KeyModifier_Impl_");} function openfl_ui_Keyboard() {return require("./../../openfl/ui/Keyboard");} function openfl_display_Sprite() {return require("./../../openfl/display/Sprite");} function js_Boot() {return require("./../../js/Boot");} function openfl_geom_Point() {return require("./../../openfl/geom/Point");} function openfl_events_KeyboardEvent() {return require("./../../openfl/events/KeyboardEvent");} function haxe_ds_ArraySort() {return require("./../../haxe/ds/ArraySort");} function openfl_display_InteractiveObject() {return require("./../../openfl/display/InteractiveObject");} function openfl_events_FocusEvent() {return require("./../../openfl/events/FocusEvent");} function openfl_text_TextField() {return require("./../../openfl/text/TextField");} function openfl_events_Event() {return require("./../../openfl/events/Event");} function openfl_ui_GameInput() {return require("./../../openfl/ui/GameInput");} function lime_ui_MouseWheelMode() {return require("./../../lime/ui/MouseWheelMode");} function openfl__$Vector_VectorIterator() {return require("./../../openfl/_Vector/VectorIterator");} function openfl_events_TextEvent() {return require("./../../openfl/events/TextEvent");} function openfl_events_FullScreenEvent() {return require("./../../openfl/events/FullScreenEvent");} function openfl_ui_Mouse() {return require("./../../openfl/ui/Mouse");} function openfl_ui__$MouseCursor_MouseCursor_$Impl_$() {return require("./../../openfl/ui/_MouseCursor/MouseCursor_Impl_");} function lime_ui_MouseCursor() {return require("./../../lime/ui/MouseCursor");} function HxOverrides() {return require("./../../HxOverrides");} function openfl_utils__$internal_TouchData() {return require("./../../openfl/utils/_internal/TouchData");} function openfl_events_TouchEvent() {return require("./../../openfl/events/TouchEvent");} function lime_ui_Gamepad() {return require("./../../lime/ui/Gamepad");} function lime_ui_Touch() {return require("./../../lime/ui/Touch");} function openfl_geom_Rectangle() {return require("./../../openfl/geom/Rectangle");} function StringTools() {return require("./../../StringTools");} function openfl_errors_IllegalOperationError() {return require("./../../openfl/errors/IllegalOperationError");} function openfl_geom_Matrix() {return require("./../../openfl/geom/Matrix");} function openfl__$Vector_Vector_$Impl_$() {return require("./../../openfl/_Vector/Vector_Impl_");} function openfl_display_Stage3D() {return require("./../../openfl/display/Stage3D");} function haxe_ds_IntMap() {return require("./../../haxe/ds/IntMap");} function openfl_display_LoaderInfo() {return require("./../../openfl/display/LoaderInfo");} function openfl_display_Application() {return require("./../../openfl/display/Application");} function Type() {return require("./../../Type");} // Constructor var Stage = function(width,height,color,documentClass,windowAttributes) { if(height == null) { height = 0; } if(width == null) { width = 0; } (openfl_display_DisplayObjectContainer().default).call(this); this.__drawableType = 5; this.set_name(null); this.__color = -1; this.__colorSplit = [255,255,255]; this.__colorString = "#FFFFFF"; this.__contentsScaleFactor = 1; this.__currentTabOrderIndex = 0; this.__deltaTime = 0; this.__displayState = "normal"; this.__mouseX = 0; this.__mouseY = 0; this.__lastClickTime = 0; this.__logicalWidth = 0; this.__logicalHeight = 0; this.__displayMatrix = new (openfl_geom_Matrix().default)(); this.__displayRect = new (openfl_geom_Rectangle().default)(); this.__renderDirty = true; this.stage3Ds = (openfl__$Vector_Vector_$Impl_$().default)._new(); (openfl__$Vector_Vector_$Impl_$().default).push(this.stage3Ds,new (openfl_display_Stage3D().default)(this)); (openfl__$Vector_Vector_$Impl_$().default).push(this.stage3Ds,new (openfl_display_Stage3D().default)(this)); (openfl__$Vector_Vector_$Impl_$().default).push(this.stage3Ds,new (openfl_display_Stage3D().default)(this)); (openfl__$Vector_Vector_$Impl_$().default).push(this.stage3Ds,new (openfl_display_Stage3D().default)(this)); this.stage = this; this.align = "topLeft"; this.allowsFullScreen = true; this.allowsFullScreenInteractive = true; this.__quality = "high"; this.__scaleMode = "noScale"; this.showDefaultContextMenu = true; this.softKeyboardRect = new (openfl_geom_Rectangle().default)(); this.stageFocusRect = true; this.__macKeyboard = /AppleWebKit/.test (navigator.userAgent) && /Mobile\/\w+/.test (navigator.userAgent) || /Mac/.test (navigator.platform); this.__clearBeforeRender = true; this.__forceRender = false; this.__stack = []; this.__rollOutStack = []; this.__mouseOutStack = []; this.__touchData = new (haxe_ds_IntMap().default)(); if((openfl_Lib().default).get_current().__loaderInfo == null) { (openfl_Lib().default).get_current().__loaderInfo = (openfl_display_LoaderInfo().default).create(null); (openfl_Lib().default).get_current().__loaderInfo.content = (openfl_Lib().default).get_current(); } this.__uncaughtErrorEvents = (openfl_Lib().default).get_current().__loaderInfo.uncaughtErrorEvents; if(windowAttributes == null) { windowAttributes = { }; } var app = null; if(!isNaN(width)) { var resizable = width == 0 && width == 0; if(windowAttributes.element != null) { this.element = windowAttributes.element; } else { this.element = window.document.createElement("div"); } if(resizable) { this.element.style.width = "100%"; this.element.style.height = "100%"; } windowAttributes.width = width; windowAttributes.height = height; windowAttributes.element = this.element; windowAttributes.resizable = resizable; windowAttributes.stage = this; if(!(Reflect().default).hasField(windowAttributes,"context")) { windowAttributes.context = { }; } var contextAttributes = windowAttributes.context; if((Reflect().default).hasField(windowAttributes,"renderer")) { var type = (Std().default).string(windowAttributes.renderer); if(type == "webgl1") { contextAttributes.type = "webgl"; contextAttributes.version = "1"; } else if(type == "webgl2") { contextAttributes.type = "webgl"; contextAttributes.version = "2"; } else { (Reflect().default).setField(contextAttributes,"type",windowAttributes.renderer); } } if(!(Reflect().default).hasField(contextAttributes,"stencil")) { contextAttributes.stencil = true; } if(!(Reflect().default).hasField(contextAttributes,"depth")) { contextAttributes.depth = true; } if(!(Reflect().default).hasField(contextAttributes,"background")) { contextAttributes.background = null; } app = new (openfl_display_Application().default)(); this.window = app.createWindow(windowAttributes); this.set_color(color); } else { this.window = width; this.set_color(height); } this.__contentsScaleFactor = this.window.get_scale(); this.__wasFullscreen = this.window.get_fullscreen(); this.__resize(); if((openfl_Lib().default).get_current().stage == null) { this.stage.addChild((openfl_Lib().default).get_current()); } if(documentClass != null) { (openfl_display_DisplayObject().default).__initStage = this; var sprite = (Type().default).createInstance(documentClass,[]); sprite.dispatchEvent(new (openfl_events_Event().default)("addedToStage",false,false)); } if(app != null) { app.addModule(this); app.exec(); } } // Meta Stage.__name__ = "openfl.display.Stage"; Stage.__isInterface__ = false; Stage.__interfaces__ = [(lime_app_IModule().default)]; Stage.__super__ = (openfl_display_DisplayObjectContainer().default); Stage.prototype = $extend((openfl_display_DisplayObjectContainer().default).prototype, { invalidate: function() { this.__invalidated = true; this.__renderDirty = true; }, localToGlobal: function(pos) { return pos.clone(); }, __broadcastEvent: function(event) { if((openfl_display_DisplayObject().default).__broadcastEvents.exists(event.type)) { var dispatchers = (openfl_display_DisplayObject().default).__broadcastEvents.get(event.type); var _g = 0; while(_g < dispatchers.length) { var dispatcher = dispatchers[_g]; ++_g; if(dispatcher.stage == this || dispatcher.stage == null) { if(this.__uncaughtErrorEvents.__enabled) { try { dispatcher.__dispatch(event); } catch( e ) { (haxe_CallStack().default).lastException = e; this.__handleError(((e) instanceof (js__$Boot_HaxeError().default)) ? e.val : e); } } else { dispatcher.__dispatch(event); } } } } }, __createRenderer: function() { var windowWidth = (Std().default).int(this.window.get_width() * this.window.get_scale()); var windowHeight = (Std().default).int(this.window.get_height() * this.window.get_scale()); switch(this.window.context.type) { case "cairo": break; case "canvas": this.__renderer = new (openfl_display_CanvasRenderer().default)(this.window.context.canvas2D); break; case "dom": this.__renderer = new (openfl_display_DOMRenderer().default)(this.window.context.dom); break; case "opengl":case "opengles":case "webgl": this.context3D = new (openfl_display3D_Context3D().default)(this); this.context3D.configureBackBuffer(this.stageWidth,this.stageHeight,0,true,true,true); this.context3D.present(); this.__renderer = new (openfl_display_OpenGLRenderer().default)(this.context3D); break; default: } if(this.__renderer != null) { var tmp = this.get_quality(); this.__renderer.__allowSmoothing = tmp != "low"; this.__renderer.__pixelRatio = this.window.get_scale(); this.__renderer.__worldTransform = this.__displayMatrix; this.__renderer.__stage = this; this.__renderer.__resize(windowWidth,windowHeight); } }, __dispatchEvent: function(event) { var result; if(this.__uncaughtErrorEvents.__enabled) { try { result = (openfl_display_DisplayObjectContainer().default).prototype.__dispatchEvent.call(this,event); } catch( e ) { (haxe_CallStack().default).lastException = e; this.__handleError(((e) instanceof (js__$Boot_HaxeError().default)) ? e.val : e); result = false; } } else { result = (openfl_display_DisplayObjectContainer().default).prototype.__dispatchEvent.call(this,event); } return result; }, __dispatchPendingMouseEvent: function() { if(this.__pendingMouseEvent) { this.__onMouse("mouseMove",this.__pendingMouseX,this.__pendingMouseY,0); this.__pendingMouseEvent = false; } }, __dispatchStack: function(event,stack) { if(this.__uncaughtErrorEvents.__enabled) { try { var target; var length = stack.length; if(length == 0) { event.eventPhase = 2; target = event.target; target.__dispatch(event); } else { event.eventPhase = 1; event.target = stack[stack.length - 1]; var _g = 0; var _g1 = length - 1; while(_g < _g1) { var i = _g++; stack[i].__dispatch(event); if(event.__isCanceled) { return; } } event.eventPhase = 2; target = event.target; target.__dispatch(event); if(event.__isCanceled) { return; } if(event.bubbles) { event.eventPhase = 3; var i1 = length - 2; while(i1 >= 0) { stack[i1].__dispatch(event); if(event.__isCanceled) { return; } --i1; } } } } catch( e ) { (haxe_CallStack().default).lastException = e; this.__handleError(((e) instanceof (js__$Boot_HaxeError().default)) ? e.val : e); } } else { var target1; var length1 = stack.length; if(length1 == 0) { event.eventPhase = 2; target1 = event.target; target1.__dispatch(event); } else { event.eventPhase = 1; event.target = stack[stack.length - 1]; var _g2 = 0; var _g11 = length1 - 1; while(_g2 < _g11) { var i2 = _g2++; stack[i2].__dispatch(event); if(event.__isCanceled) { return; } } event.eventPhase = 2; target1 = event.target; target1.__dispatch(event); if(event.__isCanceled) { return; } if(event.bubbles) { event.eventPhase = 3; var i3 = length1 - 2; while(i3 >= 0) { stack[i3].__dispatch(event); if(event.__isCanceled) { return; } --i3; } } } } }, __dispatchTarget: function(target,event) { if(this.__uncaughtErrorEvents.__enabled) { try { return target.__dispatchEvent(event); } catch( e ) { (haxe_CallStack().default).lastException = e; this.__handleError(((e) instanceof (js__$Boot_HaxeError().default)) ? e.val : e); return false; } } else { return target.__dispatchEvent(event); } }, __drag: function(mouse) { var parent = this.__dragObject.parent; if(parent != null) { parent.__getWorldTransform().__transformInversePoint(mouse); } var x = mouse.x + this.__dragOffsetX; var y = mouse.y + this.__dragOffsetY; if(this.__dragBounds != null) { if(x < this.__dragBounds.x) { x = this.__dragBounds.x; } else if(x > this.__dragBounds.get_right()) { x = this.__dragBounds.get_right(); } if(y < this.__dragBounds.y) { y = this.__dragBounds.y; } else if(y > this.__dragBounds.get_bottom()) { y = this.__dragBounds.get_bottom(); } } this.__dragObject.set_x(x); this.__dragObject.set_y(y); }, __getInteractive: function(stack) { if(stack != null) { stack.push(this); } return true; }, __globalToLocal: function(global,local) { if(global != local) { local.copyFrom(global); } return local; }, __handleError: function(e) { var event = new (openfl_events_UncaughtErrorEvent().default)("uncaughtError",true,true,e); (openfl_Lib().default).get_current().__loaderInfo.uncaughtErrorEvents.dispatchEvent(event); if(!event.__preventDefault) { (lime_utils_Log().default).println((haxe_CallStack().default).toString((haxe_CallStack().default).exceptionStack())); (lime_utils_Log().default).println((Std().default).string(e)); try { var exc = (haxe_CallStack().default).lastException; if(exc != null && (Reflect().default).hasField(exc,"stack") && exc.stack != null && exc.stack != "") { (console.log)(exc.stack); e.stack = exc.stack; } else { var msg = (haxe_CallStack().default).toString((haxe_CallStack().default).callStack()); (console.log)(msg); } } catch( e2 ) { (haxe_CallStack().default).lastException = e2; var e21 = ((e2) instanceof (js__$Boot_HaxeError().default)) ? e2.val : e2; } throw e; } }, __onKey: function(type,keyCode,modifier) { this.__dispatchPendingMouseEvent(); (openfl_events_MouseEvent().default).__altKey = (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_altKey(modifier); (openfl_events_MouseEvent().default).__commandKey = (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_metaKey(modifier); (openfl_events_MouseEvent().default).__controlKey = (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_ctrlKey(modifier) && !(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_metaKey(modifier); (openfl_events_MouseEvent().default).__ctrlKey = (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_ctrlKey(modifier); (openfl_events_MouseEvent().default).__shiftKey = (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier); var stack = []; if(this.__focus == null) { this.__getInteractive(stack); } else { this.__focus.__getInteractive(stack); } if(stack.length > 0) { var keyLocation = (openfl_ui_Keyboard().default).__getKeyLocation(keyCode); var keyCode1 = (openfl_ui_Keyboard().default).__convertKeyCode(keyCode); var charCode = (openfl_ui_Keyboard().default).__getCharCode(keyCode1,(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier)); if(type == "keyUp" && (keyCode1 == 32 || keyCode1 == 13) && ((this.__focus) instanceof (openfl_display_Sprite().default))) { var sprite = (js_Boot().default).__cast(this.__focus , (openfl_display_Sprite().default)); if(sprite.get_buttonMode() && sprite.focusRect == true) { var localPoint = (openfl_geom_Point().default).__pool.get(); var targetPoint = (openfl_geom_Point().default).__pool.get(); targetPoint.x = this.__mouseX; targetPoint.y = this.__mouseY; var clickEvent = (openfl_events_MouseEvent().default).__create("click",0,0,this.__mouseX,this.__mouseY,sprite.__globalToLocal(targetPoint,localPoint),sprite); this.__dispatchStack(clickEvent,stack); if(clickEvent.__updateAfterEventFlag) { this.__renderAfterEvent(); } (openfl_geom_Point().default).__pool.release(targetPoint); (openfl_geom_Point().default).__pool.release(localPoint); } } var event = new (openfl_events_KeyboardEvent().default)(type,true,true,charCode,keyCode1,keyLocation,this.__macKeyboard ? (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_ctrlKey(modifier) || (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_metaKey(modifier) : (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_ctrlKey(modifier),(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_altKey(modifier),(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier),(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_ctrlKey(modifier),(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_metaKey(modifier)); stack.reverse(); this.__dispatchStack(event,stack); if(event.__preventDefault) { if(type == "keyDown") { this.window.onKeyDown.cancel(); } else { this.window.onKeyUp.cancel(); } } else if(type == "keyDown" && keyCode1 == 9) { var tabStack = []; this.__tabTest(tabStack); var nextIndex = -1; var nextObject = null; var nextOffset = (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier) ? -1 : 1; if(tabStack.length > 1) { (haxe_ds_ArraySort().default).sort(tabStack,function(a,b) { return a.get_tabIndex() - b.get_tabIndex(); }); if(tabStack[tabStack.length - 1].get_tabIndex() != -1) { var i = 0; while(i < tabStack.length) { if(tabStack[i].get_tabIndex() > -1) { if(i > 0) { tabStack.splice(0,i); } break; } ++i; } } if(this.get_focus() != null) { var current = this.get_focus(); var index = tabStack.indexOf(current); while(index == -1 && current != null) { var currentParent = current.parent; if(currentParent != null && currentParent.get_tabChildren()) { var currentIndex = currentParent.getChildIndex(current); if(currentIndex == -1) { current = currentParent; continue; } var i1 = currentIndex + nextOffset; while((lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier) ? i1 >= 0 : i1 < currentParent.get_numChildren()) { var sibling = currentParent.getChildAt(i1); if(((sibling) instanceof (openfl_display_InteractiveObject().default))) { var interactiveSibling = (js_Boot().default).__cast(sibling , (openfl_display_InteractiveObject().default)); index = tabStack.indexOf(interactiveSibling); if(index != -1) { nextOffset = 0; break; } } i1 += nextOffset; } } else if((lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier)) { index = tabStack.indexOf(currentParent); if(index != -1) { nextOffset = 0; } } current = currentParent; } if(index < 0) { nextIndex = 0; } else { nextIndex = index + nextOffset; } } else { nextIndex = this.__currentTabOrderIndex; } } else if(tabStack.length == 1) { nextObject = tabStack[0]; if(this.get_focus() == nextObject) { nextObject = null; } } var cancelTab = nextIndex >= 0 && nextIndex < tabStack.length; if(tabStack.length == 1 || tabStack.length == 0 && this.get_focus() != null) { nextIndex = 0; } else if(tabStack.length > 1) { if(nextIndex < 0) { nextIndex += tabStack.length; } nextIndex %= tabStack.length; nextObject = tabStack[nextIndex]; if(nextObject == this.get_focus()) { nextIndex += nextOffset; if(nextIndex < 0) { nextIndex += tabStack.length; } nextIndex %= tabStack.length; nextObject = tabStack[nextIndex]; } } var focusEvent = null; if(this.get_focus() != null) { focusEvent = new (openfl_events_FocusEvent().default)("keyFocusChange",true,true,nextObject,(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier),0); stack = []; this.get_focus().__getInteractive(stack); stack.reverse(); this.__dispatchStack(focusEvent,stack); if(focusEvent.isDefaultPrevented()) { this.window.onKeyDown.cancel(); } } if(focusEvent == null || !focusEvent.isDefaultPrevented()) { this.__currentTabOrderIndex = nextIndex; if(nextObject != null) { this.set_focus(nextObject); } if(cancelTab) { this.window.onKeyDown.cancel(); } } } else if(type == "keyDown" && this.get_focus() != null && !((this.get_focus()) instanceof (openfl_text_TextField().default))) { var ctrlKey = this.__macKeyboard ? (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_ctrlKey(modifier) || (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_metaKey(modifier) : (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_ctrlKey(modifier); if(ctrlKey && !(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_altKey(modifier) && !(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier)) { switch(keyCode1) { case 65: var selectAllEvent = new (openfl_events_Event().default)("selectAll",true,true); this.get_focus().dispatchEvent(selectAllEvent); break; case 67: var copyEvent = new (openfl_events_Event().default)("copy",true,true); this.get_focus().dispatchEvent(copyEvent); break; case 86: var pasteEvent = new (openfl_events_Event().default)("paste",true,true); this.get_focus().dispatchEvent(pasteEvent); break; case 88: var cutEvent = new (openfl_events_Event().default)("cut",true,true); this.get_focus().dispatchEvent(cutEvent); break; } } } if(event.__updateAfterEventFlag) { this.__renderAfterEvent(); } } }, __onLimeCreateWindow: function($window) { if(this.window != $window) { return; } var f = $bind(this,this.__onLimeWindowActivate); var window1 = $window; var tmp = function() { f(window1); }; $window.onActivate.add(tmp); var f1 = $bind(this,this.__onLimeWindowClose); var window2 = $window; var tmp1 = function() { f1(window2); }; $window.onClose.add(tmp1,false,-9000); var f2 = $bind(this,this.__onLimeWindowDeactivate); var window3 = $window; var tmp2 = function() { f2(window3); }; $window.onDeactivate.add(tmp2); var f3 = $bind(this,this.__onLimeWindowDropFile); var window4 = $window; var tmp3 = function(file) { f3(window4,file); }; $window.onDropFile.add(tmp3); var f4 = $bind(this,this.__onLimeWindowEnter); var window5 = $window; var tmp4 = function() { f4(window5); }; $window.onEnter.add(tmp4); var f5 = $bind(this,this.__onLimeWindowExpose); var window6 = $window; var tmp5 = function() { f5(window6); }; $window.onExpose.add(tmp5); var f6 = $bind(this,this.__onLimeWindowFocusIn); var window7 = $window; var tmp6 = function() { f6(window7); }; $window.onFocusIn.add(tmp6); var f7 = $bind(this,this.__onLimeWindowFocusOut); var window8 = $window; var tmp7 = function() { f7(window8); }; $window.onFocusOut.add(tmp7); var f8 = $bind(this,this.__onLimeWindowFullscreen); var window9 = $window; var tmp8 = function() { f8(window9); }; $window.onFullscreen.add(tmp8); var f9 = $bind(this,this.__onLimeKeyDown); var window10 = $window; var tmp9 = function(keyCode,modifier) { f9(window10,keyCode,modifier); }; $window.onKeyDown.add(tmp9); var f10 = $bind(this,this.__onLimeKeyUp); var window11 = $window; var tmp10 = function(keyCode1,modifier1) { f10(window11,keyCode1,modifier1); }; $window.onKeyUp.add(tmp10); var f11 = $bind(this,this.__onLimeWindowLeave); var window12 = $window; var tmp11 = function() { f11(window12); }; $window.onLeave.add(tmp11); var f12 = $bind(this,this.__onLimeWindowMinimize); var window13 = $window; var tmp12 = function() { f12(window13); }; $window.onMinimize.add(tmp12); var f13 = $bind(this,this.__onLimeMouseDown); var window14 = $window; var tmp13 = function(x,y,button) { f13(window14,x,y,button); }; $window.onMouseDown.add(tmp13); var f14 = $bind(this,this.__onLimeMouseMove); var window15 = $window; var tmp14 = function(x1,y1) { f14(window15,x1,y1); }; $window.onMouseMove.add(tmp14); var f15 = $bind(this,this.__onLimeMouseMoveRelative); var window16 = $window; var tmp15 = function(x2,y2) { f15(window16,x2,y2); }; $window.onMouseMoveRelative.add(tmp15); var f16 = $bind(this,this.__onLimeMouseUp); var window17 = $window; var tmp16 = function(x3,y3,button1) { f16(window17,x3,y3,button1); }; $window.onMouseUp.add(tmp16); var f17 = $bind(this,this.__onLimeMouseWheel); var window18 = $window; var tmp17 = function(deltaX,deltaY,deltaMode) { f17(window18,deltaX,deltaY,deltaMode); }; $window.onMouseWheel.add(tmp17); var f18 = $bind(this,this.__onLimeWindowMove); var window19 = $window; var tmp18 = function(x4,y4) { f18(window19,x4,y4); }; $window.onMove.add(tmp18); $window.onRender.add($bind(this,this.__onLimeRender)); $window.onRenderContextLost.add($bind(this,this.__onLimeRenderContextLost)); $window.onRenderContextRestored.add($bind(this,this.__onLimeRenderContextRestored)); var f19 = $bind(this,this.__onLimeWindowResize); var window20 = $window; var tmp19 = function(width,height) { f19(window20,width,height); }; $window.onResize.add(tmp19); var f20 = $bind(this,this.__onLimeWindowRestore); var window21 = $window; var tmp20 = function() { f20(window21); }; $window.onRestore.add(tmp20); var f21 = $bind(this,this.__onLimeTextEdit); var window22 = $window; var tmp21 = function(text,start,length) { f21(window22,text,start,length); }; $window.onTextEdit.add(tmp21); var f22 = $bind(this,this.__onLimeTextInput); var window23 = $window; var tmp22 = function(text1) { f22(window23,text1); }; $window.onTextInput.add(tmp22); this.__onLimeWindowCreate($window); }, __onLimeGamepadAxisMove: function(gamepad,axis,value) { if(this.__uncaughtErrorEvents.__enabled) { try { (openfl_ui_GameInput().default).__onGamepadAxisMove(gamepad,axis,value); } catch( e ) { (haxe_CallStack().default).lastException = e; this.__handleError(((e) instanceof (js__$Boot_HaxeError().default)) ? e.val : e); } } else { (openfl_ui_GameInput().default).__onGamepadAxisMove(gamepad,axis,value); } }, __onLimeGamepadButtonDown: function(gamepad,button) { if(this.__uncaughtErrorEvents.__enabled) { try { (openfl_ui_GameInput().default).__onGamepadButtonDown(gamepad,button); } catch( e ) { (haxe_CallStack().default).lastException = e; this.__handleError(((e) instanceof (js__$Boot_HaxeError().default)) ? e.val : e); } } else { (openfl_ui_GameInput().default).__onGamepadButtonDown(gamepad,button); } }, __onLimeGamepadButtonUp: function(gamepad,button) { if(this.__uncaughtErrorEvents.__enabled) { try { (openfl_ui_GameInput().default).__onGamepadButtonUp(gamepad,button); } catch( e ) { (haxe_CallStack().default).lastException = e; this.__handleError(((e) instanceof (js__$Boot_HaxeError().default)) ? e.val : e); } } else { (openfl_ui_GameInput().default).__onGamepadButtonUp(gamepad,button); } }, __onLimeGamepadConnect: function(gamepad) { if(this.__uncaughtErrorEvents.__enabled) { try { (openfl_ui_GameInput().default).__onGamepadConnect(gamepad); } catch( e ) { (haxe_CallStack().default).lastException = e; this.__handleError(((e) instanceof (js__$Boot_HaxeError().default)) ? e.val : e); } } else { (openfl_ui_GameInput().default).__onGamepadConnect(gamepad); } var f = $bind(this,this.__onLimeGamepadAxisMove); var gamepad1 = gamepad; var tmp = function(axis,value) { f(gamepad1,axis,value); }; gamepad.onAxisMove.add(tmp); var f1 = $bind(this,this.__onLimeGamepadButtonDown); var gamepad2 = gamepad; var tmp1 = function(button) { f1(gamepad2,button); }; gamepad.onButtonDown.add(tmp1); var f2 = $bind(this,this.__onLimeGamepadButtonUp); var gamepad3 = gamepad; var tmp2 = function(button1) { f2(gamepad3,button1); }; gamepad.onButtonUp.add(tmp2); var f3 = $bind(this,this.__onLimeGamepadDisconnect); var gamepad4 = gamepad; var tmp3 = function() { f3(gamepad4); }; gamepad.onDisconnect.add(tmp3); }, __onLimeGamepadDisconnect: function(gamepad) { if(this.__uncaughtErrorEvents.__enabled) { try { (openfl_ui_GameInput().default).__onGamepadDisconnect(gamepad); } catch( e ) { (haxe_CallStack().default).lastException = e; this.__handleError(((e) instanceof (js__$Boot_HaxeError().default)) ? e.val : e); } } else { (openfl_ui_GameInput().default).__onGamepadDisconnect(gamepad); } }, __onLimeKeyDown: function($window,keyCode,modifier) { if(this.window == null || this.window != $window) { return; } this.__onKey("keyDown",keyCode,modifier); }, __onLimeKeyUp: function($window,keyCode,modifier) { if(this.window == null || this.window != $window) { return; } this.__onKey("keyUp",keyCode,modifier); }, __onLimeModuleExit: function(code) { if(this.window != null) { var event = null; event = new (openfl_events_Event().default)("deactivate"); this.__broadcastEvent(event); } }, __onLimeMouseDown: function($window,x,y,button) { if(this.window == null || this.window != $window) { return; } this.__dispatchPendingMouseEvent(); var type; switch(button) { case 1: type = "middleMouseDown"; break; case 2: type = "rightMouseDown"; break; default: type = "mouseDown"; } this.__onMouse(type,(Std().default).int(x * $window.get_scale()),(Std().default).int(y * $window.get_scale()),button); if(!this.showDefaultContextMenu && button == 2) { $window.onMouseDown.cancel(); } }, __onLimeMouseMove: function($window,x,y) { if(this.window == null || this.window != $window) { return; } this.__pendingMouseEvent = true; this.__pendingMouseX = (Std().default).int(x * $window.get_scale()); this.__pendingMouseY = (Std().default).int(y * $window.get_scale()); }, __onLimeMouseMoveRelative: function($window,x,y) { }, __onLimeMouseUp: function($window,x,y,button) { if(this.window == null || this.window != $window) { return; } this.__dispatchPendingMouseEvent(); var type; switch(button) { case 1: type = "middleMouseUp"; break; case 2: type = "rightMouseUp"; break; default: type = "mouseUp"; } this.__onMouse(type,(Std().default).int(x * $window.get_scale()),(Std().default).int(y * $window.get_scale()),button); if(!this.showDefaultContextMenu && button == 2) { $window.onMouseUp.cancel(); } }, __onLimeMouseWheel: function($window,deltaX,deltaY,deltaMode) { if(this.window == null || this.window != $window) { return; } this.__dispatchPendingMouseEvent(); if(deltaMode == (lime_ui_MouseWheelMode().default).PIXELS) { this.__onMouseWheel((Std().default).int(deltaX * $window.get_scale()),(Std().default).int(deltaY * $window.get_scale()),deltaMode); } else { this.__onMouseWheel((Std().default).int(deltaX),(Std().default).int(deltaY),deltaMode); } }, __renderAfterEvent: function() { var cancelled = this.__render(this.window.context); }, __render: function(context) { var cancelled = false; var event = null; var shouldRender = this.__renderer != null && (this.__renderDirty || this.__forceRender); if(this.__invalidated && shouldRender) { this.__invalidated = false; event = new (openfl_events_Event().default)("render"); this.__broadcastEvent(event); } this.__update(false,true); if(this.__renderer != null) { if(this.context3D != null) { var stage3D = new (openfl__$Vector_VectorIterator().default)(this.stage3Ds); while(stage3D.hasNext()) { var stage3D1 = stage3D.next(); this.context3D.__renderStage3D(stage3D1); } if(this.context3D.__present) { shouldRender = true; } } if(shouldRender) { var tmp = this.__renderer.__type == "cairo"; if(this.context3D == null) { this.__renderer.__clear(); } this.__renderer.__render(this); } else if(this.context3D == null) { cancelled = true; } if(this.context3D != null) { if(!this.context3D.__present) { cancelled = true; } else { if(!this.__renderer.__cleared) { this.__renderer.__clear(); } this.context3D.__present = false; this.context3D.__cleared = false; } } this.__renderer.__cleared = false; } return cancelled; }, __onLimeRender: function(context) { if(this.__rendering) { return; } this.__rendering = true; var event = null; this.__broadcastEvent(new (openfl_events_Event().default)("enterFrame")); this.__broadcastEvent(new (openfl_events_Event().default)("frameConstructed")); this.__broadcastEvent(new (openfl_events_Event().default)("exitFrame")); this.__renderable = true; this.__enterFrame(this.__deltaTime); this.__deltaTime = 0; var cancelled = this.__render(context); if(cancelled) { this.window.onRender.cancel(); } this.__rendering = false; }, __onLimeRenderContextLost: function() { this.__renderer = null; this.context3D = null; var stage3D = new (openfl__$Vector_VectorIterator().default)(this.stage3Ds); while(stage3D.hasNext()) { var stage3D1 = stage3D.next(); stage3D1.__lostContext(); } }, __onLimeRenderContextRestored: function(context) { this.__createRenderer(); var stage3D = new (openfl__$Vector_VectorIterator().default)(this.stage3Ds); while(stage3D.hasNext()) { var stage3D1 = stage3D.next(); stage3D1.__restoreContext(); } }, __onLimeTextEdit: function($window,text,start,length) { }, __onLimeTextInput: function($window,text) { if(this.window == null || this.window != $window) { return; } var stack = []; if(this.__focus == null) { this.__getInteractive(stack); } else { this.__focus.__getInteractive(stack); } var event = new (openfl_events_TextEvent().default)("textInput",true,true,text); if(stack.length > 0) { stack.reverse(); this.__dispatchStack(event,stack); } else { this.__dispatchEvent(event); } if(event.isDefaultPrevented()) { $window.onTextInput.cancel(); } }, __onLimeTouchCancel: function(touch) { var isPrimaryTouchPoint = this.__primaryTouch == touch; if(isPrimaryTouchPoint) { this.__primaryTouch = null; } this.__onTouch("touchEnd",touch,isPrimaryTouchPoint); }, __onLimeTouchMove: function(touch) { this.__onTouch("touchMove",touch,this.__primaryTouch == touch); }, __onLimeTouchEnd: function(touch) { var isPrimaryTouchPoint = this.__primaryTouch == touch; if(isPrimaryTouchPoint) { this.__primaryTouch = null; } this.__onTouch("touchEnd",touch,isPrimaryTouchPoint); }, __onLimeTouchStart: function(touch) { if(this.__primaryTouch == null) { this.__primaryTouch = touch; } this.__onTouch("touchBegin",touch,this.__primaryTouch == touch); }, __onLimeUpdate: function(deltaTime) { this.__deltaTime = deltaTime; this.__dispatchPendingMouseEvent(); }, __onLimeWindowActivate: function($window) { if(this.window == null || this.window != $window) { return; } }, __onLimeWindowClose: function($window) { if(this.window == $window) { this.window = null; } this.__primaryTouch = null; var event = null; event = new (openfl_events_Event().default)("deactivate"); this.__broadcastEvent(event); }, __onLimeWindowCreate: function($window) { if(this.window == null || this.window != $window) { return; } if($window.context != null) { this.__createRenderer(); } }, __onLimeWindowDeactivate: function($window) { if(this.window == null || this.window != $window) { return; } }, __onLimeWindowDropFile: function($window,file) { }, __onLimeWindowEnter: function($window) { }, __onLimeWindowExpose: function($window) { if(this.window == null || this.window != $window) { return; } this.__renderDirty = true; }, __onLimeWindowFocusIn: function($window) { if(this.window == null || this.window != $window) { return; } this.__renderDirty = true; var event = null; event = new (openfl_events_Event().default)("activate"); this.__broadcastEvent(event); this.set_focus(this.__cacheFocus); }, __onLimeWindowFocusOut: function($window) { if(this.window == null || this.window != $window) { return; } this.__primaryTouch = null; var event = null; event = new (openfl_events_Event().default)("deactivate"); this.__broadcastEvent(event); var currentFocus = this.get_focus(); this.set_focus(null); this.__cacheFocus = currentFocus; (openfl_events_MouseEvent().default).__altKey = false; (openfl_events_MouseEvent().default).__commandKey = false; (openfl_events_MouseEvent().default).__ctrlKey = false; (openfl_events_MouseEvent().default).__shiftKey = false; }, __onLimeWindowFullscreen: function($window) { if(this.window == null || this.window != $window) { return; } this.__resize(); if(!this.__wasFullscreen) { this.__wasFullscreen = true; if(this.__displayState == "normal") { this.__displayState = "fullScreenInteractive"; } this.__dispatchEvent(new (openfl_events_FullScreenEvent().default)("fullScreen",false,false,true,true)); } }, __onLimeWindowLeave: function($window) { if(this.window == null || this.window != $window || (openfl_events_MouseEvent().default).__buttonDown) { return; } this.__dispatchPendingMouseEvent(); var event = null; event = new (openfl_events_Event().default)("mouseLeave"); this.__dispatchEvent(event); }, __onLimeWindowMinimize: function($window) { if(this.window == null || this.window != $window) { return; } }, __onLimeWindowMove: function($window,x,y) { }, __onLimeWindowResize: function($window,width,height) { if(this.window == null || this.window != $window) { return; } this.__resize(); if(this.__wasFullscreen && !$window.get_fullscreen()) { this.__wasFullscreen = false; this.__displayState = "normal"; this.__dispatchEvent(new (openfl_events_FullScreenEvent().default)("fullScreen",false,false,false,true)); } }, __onLimeWindowRestore: function($window) { if(this.window == null || this.window != $window) { return; } if(this.__wasFullscreen && !$window.get_fullscreen()) { this.__wasFullscreen = false; this.__displayState = "normal"; this.__dispatchEvent(new (openfl_events_FullScreenEvent().default)("fullScreen",false,false,false,true)); } }, __onMouse: function(type,x,y,button) { if(button > 2) { return; } var targetPoint = (openfl_geom_Point().default).__pool.get(); targetPoint.setTo(x,y); this.__displayMatrix.__transformInversePoint(targetPoint); this.__mouseX = targetPoint.x; this.__mouseY = targetPoint.y; var stack = []; var target = null; if(this.__hitTest(this.__mouseX,this.__mouseY,true,stack,true,this)) { target = stack[stack.length - 1]; } else { target = this; stack = [this]; } if(target == null) { target = this; } var clickType = null; var supportsClickCount = false; switch(type) { case "middleMouseDown": this.__mouseDownMiddle = target; supportsClickCount = true; break; case "middleMouseUp": if(this.__mouseDownMiddle == target) { clickType = "middleClick"; } this.__mouseDownMiddle = null; supportsClickCount = true; break; case "mouseDown": if(this.get_focus() != null) { if(this.get_focus() != target) { var focusEvent = new (openfl_events_FocusEvent().default)("mouseFocusChange",true,true,target,false,0); this.get_focus().dispatchEvent(focusEvent); if(!focusEvent.isDefaultPrevented()) { if(target.__allowMouseFocus()) { this.set_focus(target); } else { this.set_focus(null); } } } } else if(target.__allowMouseFocus()) { this.set_focus(target); } else { this.set_focus(null); } this.__mouseDownLeft = target; if(this.__lastClickTarget != target) { this.__lastClickTarget = null; this.__lastClickTime = 0; } (openfl_events_MouseEvent().default).__buttonDown = true; supportsClickCount = true; break; case "mouseUp": if(this.__mouseDownLeft != null) { (openfl_events_MouseEvent().default).__buttonDown = false; if(this.__mouseDownLeft == target) { clickType = "click"; } else { var event = null; event = (openfl_events_MouseEvent().default).__create("releaseOutside",1,0,this.__mouseX,this.__mouseY,new (openfl_geom_Point().default)(this.__mouseX,this.__mouseY),this); this.__mouseDownLeft.dispatchEvent(event); } this.__mouseDownLeft = null; } supportsClickCount = true; break; case "rightMouseDown": this.__mouseDownRight = target; supportsClickCount = true; break; case "rightMouseUp": if(this.__mouseDownRight == target) { clickType = "rightClick"; } this.__mouseDownRight = null; supportsClickCount = true; break; default: } var localPoint = (openfl_geom_Point().default).__pool.get(); var event1 = null; var clickCount = 0; event1 = (openfl_events_MouseEvent().default).__create(type,button,clickCount,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target); this.__dispatchStack(event1,stack); if(event1.__updateAfterEventFlag) { this.__renderAfterEvent(); } if(clickType != null) { event1 = (openfl_events_MouseEvent().default).__create(clickType,button,0,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target); this.__dispatchStack(event1,stack); if(event1.__updateAfterEventFlag) { this.__renderAfterEvent(); } if(type == "mouseUp") { if(target.doubleClickEnabled) { var currentTime = (openfl_Lib().default).getTimer(); if(currentTime - this.__lastClickTime < 500 && target == this.__lastClickTarget) { event1 = (openfl_events_MouseEvent().default).__create("doubleClick",button,0,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target); this.__dispatchStack(event1,stack); if(event1.__updateAfterEventFlag) { this.__renderAfterEvent(); } this.__lastClickTime = 0; this.__lastClickTarget = null; } else { this.__lastClickTarget = target; this.__lastClickTime = currentTime; } } else { this.__lastClickTarget = null; this.__lastClickTime = 0; } } } if((openfl_ui_Mouse().default).__cursor == "auto" && !(openfl_ui_Mouse().default).__hidden) { var cursor = null; if(this.__mouseDownLeft != null) { cursor = this.__mouseDownLeft.__getCursor(); } else { var _g = 0; while(_g < stack.length) { var target1 = stack[_g]; ++_g; cursor = target1.__getCursor(); if(cursor != null && this.window != null) { this.window.set_cursor((openfl_ui__$MouseCursor_MouseCursor_$Impl_$().default).toLimeCursor(cursor)); break; } } } if(cursor == null && this.window != null) { this.window.set_cursor((lime_ui_MouseCursor().default).ARROW); } } var event2; if(target != this.__mouseOverTarget) { if(this.__mouseOverTarget != null) { event2 = (openfl_events_MouseEvent().default).__create("mouseOut",button,0,this.__mouseX,this.__mouseY,this.__mouseOverTarget.__globalToLocal(targetPoint,localPoint),this.__mouseOverTarget); this.__dispatchStack(event2,this.__mouseOutStack); if(event2.__updateAfterEventFlag) { this.__renderAfterEvent(); } } } var item; var i = 0; while(i < this.__rollOutStack.length) { item = this.__rollOutStack[i]; if(stack.indexOf(item) == -1) { (HxOverrides().default).remove(this.__rollOutStack,item); event2 = (openfl_events_MouseEvent().default).__create("rollOut",button,0,this.__mouseX,this.__mouseY,this.__mouseOverTarget.__globalToLocal(targetPoint,localPoint),item); event2.bubbles = false; this.__dispatchTarget(item,event2); if(event2.__updateAfterEventFlag) { this.__renderAfterEvent(); } } else { ++i; } } var _g1 = 0; while(_g1 < stack.length) { var item1 = stack[_g1]; ++_g1; if(this.__rollOutStack.indexOf(item1) == -1 && this.__mouseOverTarget != null) { if(item1.hasEventListener("rollOver")) { event2 = (openfl_events_MouseEvent().default).__create("rollOver",button,0,this.__mouseX,this.__mouseY,this.__mouseOverTarget.__globalToLocal(targetPoint,localPoint),item1); event2.bubbles = false; this.__dispatchTarget(item1,event2); if(event2.__updateAfterEventFlag) { this.__renderAfterEvent(); } } if(item1.hasEventListener("rollOut") || item1.hasEventListener("rollOver")) { this.__rollOutStack.push(item1); } } } if(target != this.__mouseOverTarget) { if(target != null) { event2 = (openfl_events_MouseEvent().default).__create("mouseOver",button,0,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target); this.__dispatchStack(event2,stack); if(event2.__updateAfterEventFlag) { this.__renderAfterEvent(); } } this.__mouseOverTarget = target; this.__mouseOutStack = stack; } if(this.__dragObject != null) { this.__drag(targetPoint); var dropTarget = null; if(this.__mouseOverTarget == this.__dragObject) { var cacheMouseEnabled = this.__dragObject.mouseEnabled; var cacheMouseChildren = this.__dragObject.mouseChildren; this.__dragObject.mouseEnabled = false; this.__dragObject.mouseChildren = false; var stack1 = []; if(this.__hitTest(this.__mouseX,this.__mouseY,true,stack1,true,this)) { dropTarget = stack1[stack1.length - 1]; } this.__dragObject.mouseEnabled = cacheMouseEnabled; this.__dragObject.mouseChildren = cacheMouseChildren; } else if(this.__mouseOverTarget != this) { dropTarget = this.__mouseOverTarget; } this.__dragObject.dropTarget = dropTarget; } (openfl_geom_Point().default).__pool.release(targetPoint); (openfl_geom_Point().default).__pool.release(localPoint); }, __onMouseWheel: function(deltaX,deltaY,deltaMode) { var x = this.__mouseX; var y = this.__mouseY; var stack = []; var target = null; if(this.__hitTest(this.__mouseX,this.__mouseY,true,stack,true,this)) { target = stack[stack.length - 1]; } else { target = this; stack = [this]; } if(target == null) { target = this; } var targetPoint = (openfl_geom_Point().default).__pool.get(); targetPoint.setTo(x,y); this.__displayMatrix.__transformInversePoint(targetPoint); var delta = (Std().default).int(deltaY); var event = (openfl_events_MouseEvent().default).__create("mouseWheel",0,0,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,targetPoint),target,delta); event.cancelable = true; this.__dispatchStack(event,stack); if(event.isDefaultPrevented()) { this.window.onMouseWheel.cancel(); } if(event.__updateAfterEventFlag) { this.__renderAfterEvent(); } (openfl_geom_Point().default).__pool.release(targetPoint); }, __onTouch: function(type,touch,isPrimaryTouchPoint) { var targetPoint = (openfl_geom_Point().default).__pool.get();