 import flashx.textLayout.formats.TextLayoutFormat;
 import flashx.textLayout.tlf_internal;
 
+// FIXME (gosmith): mx_internal once the class moves to mx.core
 use namespace tlf_internal;
 
 /**

 */
class TLFTextFieldTextContainerManager extends TextContainerManager
{
    /**
     *  @private
     */
    public function TLFTextFieldTextContainerManager(container:Sprite, configuration:IConfiguration = null)
    {
        super(container, configuration);
    }
    
    /**
     *  @private
     */
    override public function drawBackgroundAndSetScrollRect(scrollX:Number, scrollY:Number):Boolean
    {
        return true;
    }
}

/**

 */
class TLFTextFieldHostFormat implements ITextLayoutFormat
{
	public function TLFTextFieldHostFormat(textField:TLFTextField)
	{
		super();
		
		this.textField = textField;
	}
	
	private var textField:TLFTextField;
	
	public function get alignmentBaseline():*
	{
		return undefined;
	}
	
	public function get backgroundAlpha():*
	{
		return undefined;
	}
	
	public function get backgroundColor():*
	{
		return undefined;
	}
	
	public function get baselineShift():*
	{
		return undefined;
	}
	
	public function get blockProgression():*
	{
		return undefined;
	}
	
	public function get breakOpportunity():*
	{
		return undefined;
	}
	
	public function get cffHinting():*
	{
		return undefined;
	}
	
	public function get color():*
	{
		textField._defaultTextFormat.color;
	}
	
	public function get columnCount():*
	{
		return undefined;
	}
	
	public function get columnGap():*
	{
		return undefined;
	}
	
	public function get columnWidth():*
	{
		return undefined;
	}
	
	public function get digitCase():*
	{
		return undefined;
	}
	
	public function get digitWidth():*
	{
		return undefined;
	}
	
	public function get direction():*
	{
		return textField.direction;
	}
	
	public function get dominantBaseline():*
	{
		return undefined;
	}
	
	public function get firstBaselineOffset():*
	{
		return undefined;
	}
	
	public function get fontFamily():*
	{
		return textField._defaultTextFormat.font;
	}
	
	public function get fontLookup():*
	{
		return textField.embedFonts ?
			   FontLookup.EMBEDDED_CFF :
			   FontLookup.DEVICE;
	}
	
	public function get fontSize():*
	{
		return textField._defaultTextFormat.size;
	}
	
	public function get fontStyle():*
	{
		return textField._defaultTextFormat.italic ?
			   FontPosture.ITALIC :
			   FontPosture.NORMAL;
	}
	
	public function get fontWeight():*
	{
		return textField._defaultTextFormat.bold ?
			   FontWeight.BOLD :
			   FontWeight.NORMAL;
	}
	
	public function get justificationRule():*
	{
		return undefined;
	}
	
	public function get justificationStyle():*
	{
		return undefined;
	}
	
	public function get kerning():*
	{
		return textField._defaultTextFormat.kerning ?
			   Kerning.AUTO :
			   Kerning.OFF;
	}
	
	public function get leadingModel():*
	{
		return LeadingModel.ASCENT_DESCENT_UP;
	}
	
	public function get ligatureLevel():*
	{
		return undefined;
	}
	
	public function get lineBreak():*
	{
		return textField.wordWrap ?
			   LineBreak.TO_FIT :
			   LineBreak.EXPLICIT;
	}
	
	public function get lineHeight():*
	{
		return textField._defaultTextFormat.leading + 2; // FIXME (gosmith)
	}
	
	public function get lineThrough():*
	{
		return undefined;
	}
	
	public function get locale():*
	{
		return textField.locale;
	}
	
	public function get paddingBottom():*
	{
		return TLFTextField.PADDING_BOTTOM;
	}
	
	public function get paddingLeft():*
	{
		return TLFTextField.PADDING_LEFT;
	}
	
	public function get paddingRight():*
	{
		return TLFTextField.PADDING_RIGHT;
	}
	
	public function get paddingTop():*
	{
		return TLFTextField.PADDING_TOP;
	}
	
	public function get paragraphEndIndent():*
	{
		return textField._defaultTextFormat.rightMargin;
	}
	
	public function get paragraphSpaceAfter():*
	{
		return undefined;
	}
	
	public function get paragraphSpaceBefore():*
	{
		return undefined;
	}
	
	public function get paragraphStartIndent():*
	{
		return textField._defaultTextFormat.leftMargin;
	}
	
	public function get renderingMode():*
	{
		return undefined;
	}
	
	public function get tabStops():*
	{
		return textField._defaultTextFormat.tabStops; // FIXME (gosmith)
	}
	
	public function get textAlign():*
	{
		return textField._defaultTextFormat.align;
	}
	
	public function get textAlignLast():*
	{
		return textField._defaultTextFormat.align;
	}
	
	public function get textAlpha():*
	{
		return undefined;
	}
	
	public function get textDecoration():*
	{
		return textField._defaultTextFormat.underline ?
			   TextDecoration.UNDERLINE :
			   TextDecoration.NONE;
	}
	
	public function get textIndent():*
	{
		return textField._defaultTextFormat.indent;
	}
	
	public function get textJustify():*
	{
		return undefined;
	}
	
	public function get textRotation():*
	{
		return undefined;
	}
	
	public function get trackingLeft():*
	{
		return undefined; // FIXME (gosmith): divide letterSpacing in 2?
	}
	
	public function get trackingRight():*
	{
		return textField._defaultTextFormat.letterSpacing;
	}
	
	public function get typographicCase():*
	{
		return undefined;
	}
	
	public function get verticalAlign():*
	{
		return undefined;
	}
	
	public function get whiteSpaceCollapse():*
	{
		return undefined;
	}
}
