<commit_before>////////////////////////////////////////////////////////////////////////////////
//
//  ADOBE SYSTEMS INCORPORATED
//  Copyright 2005-2007 Adobe Systems Incorporated
//  All Rights Reserved.
//
//  NOTICE: Adobe permits you to use, modify, and distribute this file
//  in accordance with the terms of the license agreement accompanying it.
//
////////////////////////////////////////////////////////////////////////////////

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.
	 * 
	 *  <p>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 <code>focusEnabled</code>
	 *  to <code>false</code> before calling <code>addChild()</code>
	 *  on the child component.</p>
	 * 
	 *  <p>This will cause the FocusManager to ignore this component
	 *  and not monitor it for changes to the <code>tabEnabled</code>,
	 *  <code>hasFocusableChildren</code>, and <code>mouseFocusEnabled</code> properties.
	 *  This also means you cannot change this value after
	 *  <code>addChild()</code> and expect the FocusManager to notice.</p>
	 *
	 *  <p>Note: It does not mean that you cannot give this object focus
	 *  programmatically in your <code>setFocus()</code> method;
	 *  it just tells the FocusManager to ignore this IFocusManagerComponent
	 *  component in the Tab and mouse searches.</p>
	 *  
	 *  @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
	//----------------------------------

	/**
	 *  A flag that indicates whether child objects can receive focus
	 * 
	 *  <p>This is similar to the <code>tabChildren</code> property
     *  used by the Flash Player.
	 * 
	 *  <p>This is usually <code>false</code> because most components
     *  either receive focus themselves or delegate focus to a single
     *  internal sub-component and appear as if the component has
     *  received focus.  For example, a TextInput contains a focusable
     *  child RichEditableText control, but while the RichEditableText
     *  sub-component actually receives focus, it appears as if the
     *  TextInput has focus.  TextInput sets <code>hasFocusableChildren</code>
     *  to <code>false</code> because TextInput is considered the
     *  component that has focus.  Its internal structure is an
     *  abstraction.</p>
     *
	 *  <p>Usually only navigator components like TabNavigator and
     *  Accordion have this flag set to <code>true</code> because they
     *  receive focus on Tab but focus goes to components in the child
     *  containers on further Tabs.</p>
	 *  
	 *  @langversion 4.0
	 *  @playerversion Flash 10
	 *  @playerversion AIR 1.5<commit_msg>Transferred from the Adobe Open Source Subversion Repository<commit_after>////////////////////////////////////////////////////////////////////////////////
//
//  ADOBE SYSTEMS INCORPORATED
//  Copyright 2005-2007 Adobe Systems Incorporated
//  All Rights Reserved.
//
//  NOTICE: Adobe permits you to use, modify, and distribute this file
//  in accordance with the terms of the license agreement accompanying it.
//
////////////////////////////////////////////////////////////////////////////////

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.
	 * 
	 *  <p>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 <code>focusEnabled</code>
	 *  to <code>false</code> before calling <code>addChild()</code>
	 *  on the child component.</p>
	 * 
	 *  <p>This will cause the FocusManager to ignore this component
	 *  and not monitor it for changes to the <code>tabEnabled</code>,
	 *  <code>hasFocusableChildren</code>, and <code>mouseFocusEnabled</code> properties.
	 *  This also means you cannot change this value after
	 *  <code>addChild()</code> and expect the FocusManager to notice.</p>
	 *
	 *  <p>Note: It does not mean that you cannot give this object focus
	 *  programmatically in your <code>setFocus()</code> method;
	 *  it just tells the FocusManager to ignore this IFocusManagerComponent
	 *  component in the Tab and mouse searches.</p>
	 *  
	 *  @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
	//----------------------------------

	/**
	 *  A flag that indicates whether child objects can receive focus
	 * 
	 *  <p>This is similar to the <code>tabChildren</code> property
     *  used by Flash Player.</p>
	 * 
	 *  <p>This is usually <code>false</code> because most components
     *  either receive focus themselves or delegate focus to a single
     *  internal sub-component and appear as if the component has
     *  received focus.  For example, a TextInput contains a focusable
     *  child RichEditableText control, but while the RichEditableText
     *  sub-component actually receives focus, it appears as if the
     *  TextInput has focus.  TextInput sets <code>hasFocusableChildren</code>
     *  to <code>false</code> because TextInput is considered the
     *  component that has focus.  Its internal structure is an
     *  abstraction.</p>
     *
	 *  <p>Usually only navigator components like TabNavigator and
     *  Accordion have this flag set to <code>true</code> because they
     *  receive focus on Tab but focus goes to components in the child
     *  containers on further Tabs.</p>
	 *  
	 *  @langversion 4.0
	 *  @playerversion Flash 10
	 *  @playerversion AIR 1.5
{'fraction_non_alphanumeric': 0.18335208098987626, 'fraction_numerical': 0.0064991876015498065, 'mean_word_length': 2.116043613707165, 'pattern_counts': {'":': 0, '<': 78, '<?xml version=': 0, '>': 78, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '259856', 'n_tokens_mistral': 2123, 'n_tokens_neox': 1963, 'n_words': 795}