import enum textLetterCase : Uint8
{
	OriginalCase,
	UpperCase,
	LowerCase,
}

import enum textVerticalAlignment : Uint8
{
	Top,
	Center,
	Bottom,
}

import enum textHorizontalAlignment : Uint8
{
	Left,
	Center,
	Right,
}

import class inkText extends inkLeafWidget
{
	public import function GetText() : String;
	public import function SetText( displayText : String, optional textParams : inkTextParams );
	public import function SetTextDirect( displayText : String );
	public import function SetLocalizedText( locKey : CName, optional textParams : inkTextParams );
	public import function SetLocalizedTextString( locKey : String, optional textParams : inkTextParams );

	public function SetLocalizedTextScript( const locKey : ref< String >, optional textParams : inkTextParams )
	{
		if( IsStringNumber( locKey ) )
		{
			SetText( locKey, textParams );
		}
		else if( !( IsStringValid( locKey ) ) )
		{
			SetText( "", textParams );
		}
		else
		{
			SetLocalizedTextString( locKey, textParams );
		}
	}

	public function SetLocalizedTextScript( locKey : CName, optional textParams : inkTextParams )
	{
		if( !( IsNameValid( locKey ) ) )
		{
			SetText( "", textParams );
		}
		else
		{
			SetLocalizedText( locKey, textParams );
		}
	}

	public import function GetTextParameters() : inkTextParams;
	public import function SetTextParameters( textParams : inkTextParams );
	public import function GetLocalizationKey() : CName;
	public import function SetLocalizationKey( displayText : CName );
	public import function SetLocalizationKeyString( displayText : String );
	public import function SetTextFromParts( textpart1 : String, optional textpart2 : String, optional textpart3 : String );
	public import function GetVerticalAlignment() : textVerticalAlignment;
	public import function SetVerticalAlignment( verticalAlignment : textVerticalAlignment );

	public const function GetVerticalAlignmentEnumValue( nameValue : CName ) : textVerticalAlignment
	{
		var returnValue : textVerticalAlignment;
		if( nameValue == 'Top' )
		{
			returnValue = textVerticalAlignment.Top;
		}
		else if( nameValue == 'Bottom' )
		{
			returnValue = textVerticalAlignment.Bottom;
		}
		else if( nameValue == 'Center' )
		{
			returnValue = textVerticalAlignment.Center;
		}
		return returnValue;
	}

	public import function GetHorizontalAlignment() : textHorizontalAlignment;
	public import function SetHorizontalAlignment( horizontalAlignment : textHorizontalAlignment );

	public const function GetHorizontalAlignmentEnumValue( nameValue : CName ) : textHorizontalAlignment
	{
		var returnValue : textHorizontalAlignment;
		if( nameValue == 'Left' )
		{
			returnValue = textHorizontalAlignment.Left;
		}
		else if( nameValue == 'Right' )
		{
			returnValue == textHorizontalAlignment.Right;
		}
		else if( nameValue == 'Center' )
		{
			returnValue = textHorizontalAlignment.Center;
		}
		return returnValue;
	}

	public import function SetFontFamily( fontFamilyPath : String, optional fontStyle : CName );
	public import function GetFontStyle() : CName;
	public import function SetFontStyle( fontStyle : CName );
	public import function GetFontSize() : Int32;
	public import function SetFontSize( textSize : Int32 );
	public import function GetTracking() : Int32;
	public import function SetTracking( tracking : Int32 );
	public import function GetLetterCase() : textLetterCase;
	public import function SetLetterCase( letterCase : textLetterCase );
	public import function EnableAutoScroll( enableState : Bool );
	public import function SetDateTimeByTimestamp( timestamp : Uint64 );
	public import function GetScrollTextSpeed() : Float;
	public import function SetScrollTextSpeed( scrollTextSpeed : Float );
	public import function SetWrappingAtPosition( position : Float );
}

