//////////////////////////////////////////////////////////////////////////////// // // 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.managers { /** * The IFocusManagerComponent interface defines the interface * that focusable components must implement in order to * receive focus from the FocusManager. * The base implementations of this interface are in the UIComponent class, * but UIComponent does not implement the full IFocusManagerComponent interface * since some UIComponents are not intended to receive focus. * Therefore, to make a UIComponent-derived component be a valid focusable * component, you simply add "implements IFocusManagerComponent" to the class * definition. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public interface IFocusManagerComponent { //-------------------------------------------------------------------------- // // Properties // //-------------------------------------------------------------------------- //---------------------------------- // focusEnabled //---------------------------------- /** * A flag that indicates whether the component can receive focus when selected. * *

As an optimization, if a child component in your component * implements the IFocusManagerComponent interface, and you * never want it to receive focus, * you can set focusEnabled * to false before calling addChild() * on the child component.

* *

This will cause the FocusManager to ignore this component * and not monitor it for changes to the tabFocusEnabled, * hasFocusableChildren, and mouseFocusEnabled properties. * This also means you cannot change this value after * addChild() and expect the FocusManager to notice.

* *

Note: It does not mean that you cannot give this object focus * programmatically in your setFocus() method; * it just tells the FocusManager to ignore this IFocusManagerComponent * component in the Tab and mouse searches.

* * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get focusEnabled():Boolean; /** * @private */ function set focusEnabled(value:Boolean):void; //---------------------------------- // hasFocusableChildren //---------------------------------- /** * @copy mx.core.UIComponent#hasFocusableChildren * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function get hasFocusableChildren():Boolean; /** * @private */ function set hasFocusableChildren(value:Boolean):void; //---------------------------------- // mouseFocusEnabled //---------------------------------- /** * A flag that indicates whether the component can receive focus * when selected with the mouse. * If false, focus will be transferred to * the first parent that is mouseFocusEnabled. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get mouseFocusEnabled():Boolean; //---------------------------------- // tabFocusEnabled //---------------------------------- /** * A flag that indicates whether pressing the Tab key eventually * moves focus to this component. * Even if false, you can still be given focus * by being selected with the mouse or via a call to * setFocus(). This property replaces * InteractiveObject.tabEnabled which must be set to true * in Flex apps. * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ function get tabFocusEnabled():Boolean; //---------------------------------- // tabIndex //---------------------------------- /** * If tabFocusEnabled, the order in which the component receives focus. * If -1, then the component receives focus based on z-order. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get tabIndex():int; /** * @private */ function set tabIndex(value:int):void; //-------------------------------------------------------------------------- // // Methods // //-------------------------------------------------------------------------- /** * Called by the FocusManager when the component receives focus. * The component may in turn set focus to an internal component. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function setFocus():void; /** * Called by the FocusManager when the component receives focus. * The component should draw or hide a graphic * that indicates that the component has focus. * * @param isFocused If true, draw the focus indicator, * otherwise hide it. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function drawFocus(isFocused:Boolean):void; } }