//////////////////////////////////////////////////////////////////////////////// // // Licensed to the Apache Software Foundation (ASF) under one or more // contributor license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright ownership. // The ASF licenses this file to You under the Apache License, Version 2.0 // (the "License"); you may not use this file except in compliance with // the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // //////////////////////////////////////////////////////////////////////////////// package mx.events { import flash.events.Event; import flash.events.IEventDispatcher; /** * An event that is sent between applications through the sharedEvents * dispatcher that exists between two application SWFs. * The event describes a request for the listener in the other SWF * to perform some action on objects in its SWF and potentially * return some data back to the dispatching SWF. * Unlike typical events, SWFBridgeRequests are an exception to the * event model because properties of the event are modified in order * to return data back to the dispatching SWF. * * @see flash.display.LoaderInfo#sharedEvents * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public class SWFBridgeRequest extends Event { include "../core/Version.as"; //-------------------------------------------------------------------------- // // Class constants // //-------------------------------------------------------------------------- /** * Requests that a child application's pop up be activated. * This request is sent from a top-level SystemManager to a child SystemManager * through the bridge. * The data property contains an identifier for the pop up. It is not * always an actual reference to the pop up. No data is * returned. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const ACTIVATE_POP_UP_REQUEST:String = "activatePopUpRequest"; /** * Tests if a given pop up can be activated. * If a pop up is not visible or is not enabled, * then it cannot be activated. * This message is always sent from the top-level SystemManager through the bridge to * the SystemManager that owns the pop up. The data property * is an identifier for the pop up. It is not * always an actual reference to the pop up. The receiving * SystemManager sets the request's data property to true if * the pop up can be activated. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const CAN_ACTIVATE_POP_UP_REQUEST:String = "canActivateRequestPopUpRequest"; /** * Requests that a child application's pop up be deactivated. * This request is sent from a child SystemManager to the top-level SystemManager * through the bridge. * The data property contains an identifier for the pop up. It is not * always an actual reference to the pop up. No data is * returned. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const DEACTIVATE_POP_UP_REQUEST:String = "deactivatePopUpRequest"; /** * Requests that the parent SystemManager calculate the visible portion * of the requesting SWF based on any DisplayObjects that * might be clipping the requesting SWF. * The requests is sent to a parent SystemManager through the bridge. * The results are returned * in the data property which is a Rectangle * in global coordinates. * * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const GET_VISIBLE_RECT_REQUEST:String = "getVisibleRectRequest"; /** * Tests if a given DisplayObject is a child of a SWF * or one of its child SWFs. This request is sent from a SystemManager * to one or more of its children's SystemManagers through their bridges. * The data property * is a reference to the DisplayObject. The receiving * SystemManager sets the request's data property to true if * the DisplayObject is a child of the SWF or one of its child SWFs. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const IS_BRIDGE_CHILD_REQUEST:String = "isBridgeChildRequest"; /** * Requests that the loader of the current application invalidate its * properties, size, or display list. This request is sent from * a SystemManager to its parent SystemManager. The data property * is a combination of InvalidationRequestData flags. No data is * returned. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const INVALIDATE_REQUEST:String = "invalidateRequest"; /** * Requests that the mouse cursor should be hidden * when over this application. This request is sent to the bridge that is shared with * the parent application and propagated up to the top-level root. * The data property is not used * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const HIDE_MOUSE_CURSOR_REQUEST:String = "hideMouseCursorRequest"; /** * Asks the top-level root if the mouse cursor should be hidden given its * current location. Sent to the bridge shared with * the parent application and propagated up to the top-level root. * The data is set to true if the mouse cursor should be shown at this location * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const SHOW_MOUSE_CURSOR_REQUEST:String = "showMouseCursorRequest"; /** * Requests that the show/hide mouse cursor logic be reset for a new mouse * event so that the various applications can request whether the mouse cursor * should be shown or hidden. This request is sent to the bridge shared with * the parent application and propagated up to the top-level root. * The data property is not used * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const RESET_MOUSE_CURSOR_REQUEST:String = "resetMouseCursorRequest"; /** * Sent from the top-level focus manager to a subordinate focus managers * so all the focus managers participating in a tab loop get activated. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const ACTIVATE_FOCUS_REQUEST:String = "activateFocusRequest"; /** * Sent from the top-level focus manager to a subordinate focus managers * so all the focus managers participating in a tab loop get deactivated. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const DEACTIVATE_FOCUS_REQUEST:String = "deactivateFocusRequest"; /** * Request to move control over focus to another FocusManager.and have * that FocusManager give focus to a control under its management based * on the direction property in the event. * * When focus is moved back to the parent SWFs FocusManager, the direction * property is set to FocusDirection.FORWARD or FocusDirection.BACKWARD. * When focus is moved to a child SWFs FocusManager, the direction * property is set to FocusDirection.TOP or FocusDirection.BOTTOM. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const MOVE_FOCUS_REQUEST:String = "moveFocusRequest"; /** * Creates a modal window. * * The show property can be used to show the modal window * after creating it. A value of true shows the modal window. * A value of false lets the modal window remain hidden * until a ModalWindowRequest.SHOW request is dispatched. * * The data property might have a Rectangle that * describes the area to exclude from the modal window. The coordinates * of the Rectangle are in global coordinates. The parameter will only be present when * the requestor trusts the recipient of the request. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const CREATE_MODAL_WINDOW_REQUEST:String = "createModalWindowRequest"; /** * Shows a modal window. * * The skip property is used with this request. A value of true * indicates that the recipient should just forward the request up the parent chain * without processing the request. * * The data property might have a Rectangle that * describes the area to exclude based on the current parent. The coordinates * are in screen coordinates. The parameter will only be present when * the requestor trusts the recipient of the message. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const SHOW_MODAL_WINDOW_REQUEST:String = "showModalWindowRequest"; /** * Hides a modal window. * * The remove property determines if the modal window is * removed from the display lists as well as hidden. A value of true * removes the modal window. A value of false hides only the * modal window. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const HIDE_MODAL_WINDOW_REQUEST:String = "hideModalWindowRequest"; /** * Adds a popup on the targeted application. * The request is not honored by the targeted application unless there * is mutual trust between the dispatching and receiving applications. * * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const ADD_POP_UP_REQUEST:String = "addPopUpRequest"; /** * Removes a popup from the sandboxRoot's SystemManager. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const REMOVE_POP_UP_REQUEST:String = "removePopUpRequest"; /** * Adds a placeholder for a pop up window hosted by a child SystemManager. * The pop up window is untrusted so it must remain hosted * by a child that trusts it. * A placeholder is sent to the top-level root SystemManager * so activation and deactivation of all the pop ups can be managed there. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const ADD_POP_UP_PLACE_HOLDER_REQUEST:String = "addPopUpPlaceHolderRequest"; /** * Removes a placeholder. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const REMOVE_POP_UP_PLACE_HOLDER_REQUEST:String = "removePopUpPlaceHolderRequest"; /** * Gets the size of the child SystemManager. * Dispatched by the SWFLoader control to the child SystemManager * to get the size of its content. The child SystemManager * updates the width and height properties in the event object * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const GET_SIZE_REQUEST:String = "getSizeRequest"; /** * Sets the size of the child.systemManager. * Dispatched by the SWFLoader control to the child SystemManager. The child * SystemManager should update the size of its children * based on the width and height properties in the event object * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const SET_ACTUAL_SIZE_REQUEST:String = "setActualSizeRequest"; /** * Set the value of the showFocusIndicator property in every application's * FocusManager. The data property is a Boolean that contains the value * showFocusIndicator property will be set to. This request is initially * sent from the FocusManager that has its showFocusIndicator * property set. From there the request is relayed to each FocusManager in * the system. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const SET_SHOW_FOCUS_INDICATOR_REQUEST:String = "setShowFocusIndicatorRequest"; //-------------------------------------------------------------------------- // // Class methods // //-------------------------------------------------------------------------- /** * Marshals a SWFBridgeRequest from a remote ApplicationDomain into the current * ApplicationDomain. * * @param event A SWFBridgeRequest which may have been created in a different ApplicationDomain. * * @return A SWFBridgeRequest created in the caller's ApplicationDomain. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static function marshal(event:Event):SWFBridgeRequest { var eventObj:Object = event; return new SWFBridgeRequest(eventObj.type, eventObj.bubbles, eventObj.cancelable, eventObj.requestor, eventObj.data); } //-------------------------------------------------------------------------- // // Constructor // //-------------------------------------------------------------------------- /** * Constructor. * * @param type The event type; indicates the action that caused the event. * * @param bubbles Specifies whether the event can bubble up the display list hierarchy. * * @param cancelable Specifies whether the behavior associated with the event can be prevented. * * @param requestor The bridge that sent the message. * * @param data Data related to the event. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public function SWFBridgeRequest(type:String, bubbles:Boolean = false, cancelable:Boolean = false, requestor:IEventDispatcher = null, data:Object = null) { super(type, bubbles, cancelable); this.requestor = requestor; this.data = data; } //-------------------------------------------------------------------------- // // Properties // //-------------------------------------------------------------------------- //---------------------------------- // data //---------------------------------- /** * Data related to the event. For information on how this object is used, see each event type. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var data:Object; //---------------------------------- // requestor //---------------------------------- /** * The bridge that sent the message. * This in used by the receiving SWF to track which SWFLoader * holds the requesting SWF * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var requestor:IEventDispatcher; //-------------------------------------------------------------------------- // // Overridden methods: Event // //-------------------------------------------------------------------------- /** * @private */ override public function clone():Event { return new SWFBridgeRequest(type, bubbles, cancelable, requestor, data); } } }