You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
3.3 KiB
117 lines
3.3 KiB
using UnityEngine; |
|
|
|
namespace FairyGUI.Utils |
|
{ |
|
/// <summary> |
|
/// |
|
/// </summary> |
|
public class HtmlInput : IHtmlObject |
|
{ |
|
public GTextInput textInput { get; private set; } |
|
|
|
RichTextField _owner; |
|
HtmlElement _element; |
|
bool _hidden; |
|
|
|
public static int defaultBorderSize = 2; |
|
public static Color defaultBorderColor = ToolSet.ColorFromRGB(0xA9A9A9); |
|
public static Color defaultBackgroundColor = Color.clear; |
|
|
|
public HtmlInput() |
|
{ |
|
textInput = (GTextInput)UIObjectFactory.NewObject(ObjectType.InputText); |
|
textInput.gameObjectName = "HtmlInput"; |
|
textInput.verticalAlign = VertAlignType.Middle; |
|
} |
|
|
|
public DisplayObject displayObject |
|
{ |
|
get { return textInput.displayObject; } |
|
} |
|
|
|
public HtmlElement element |
|
{ |
|
get { return _element; } |
|
} |
|
|
|
public float width |
|
{ |
|
get { return _hidden ? 0 : textInput.width; } |
|
} |
|
|
|
public float height |
|
{ |
|
get { return _hidden ? 0 : textInput.height; } |
|
} |
|
|
|
public void Create(RichTextField owner, HtmlElement element) |
|
{ |
|
_owner = owner; |
|
_element = element; |
|
|
|
string type = element.GetString("type"); |
|
if (type != null) |
|
type = type.ToLower(); |
|
|
|
_hidden = type == "hidden"; |
|
if (!_hidden) |
|
{ |
|
int width = element.GetInt("width", 0); |
|
int height = element.GetInt("height", 0); |
|
int borderSize = element.GetInt("border", defaultBorderSize); |
|
Color borderColor = element.GetColor("border-color", defaultBorderColor); |
|
Color backgroundColor = element.GetColor("background-color", defaultBackgroundColor); |
|
|
|
if (width == 0) |
|
{ |
|
width = element.space; |
|
if (width > _owner.width / 2 || width < 100) |
|
width = (int)_owner.width / 2; |
|
} |
|
if (height == 0) |
|
height = element.format.size + 10; |
|
|
|
textInput.textFormat = element.format; |
|
textInput.displayAsPassword = type == "password"; |
|
textInput.maxLength = element.GetInt("maxlength", int.MaxValue); |
|
textInput.border = borderSize; |
|
textInput.borderColor = borderColor; |
|
textInput.backgroundColor = backgroundColor; |
|
textInput.SetSize(width, height); |
|
} |
|
textInput.text = element.GetString("value"); |
|
} |
|
|
|
public void SetPosition(float x, float y) |
|
{ |
|
if (!_hidden) |
|
textInput.SetXY(x, y); |
|
} |
|
|
|
public void Add() |
|
{ |
|
if (!_hidden) |
|
_owner.AddChild(textInput.displayObject); |
|
} |
|
|
|
public void Remove() |
|
{ |
|
if (!_hidden && textInput.displayObject.parent != null) |
|
_owner.RemoveChild(textInput.displayObject); |
|
} |
|
|
|
public void Release() |
|
{ |
|
textInput.RemoveEventListeners(); |
|
textInput.text = null; |
|
|
|
_owner = null; |
|
_element = null; |
|
} |
|
|
|
public void Dispose() |
|
{ |
|
textInput.Dispose(); |
|
} |
|
} |
|
}
|
|
|