103 lines
2.5 KiB
C#
103 lines
2.5 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
namespace FairyGUI.Utils
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
///
|
|||
|
/// </summary>
|
|||
|
public class HtmlSelect : IHtmlObject
|
|||
|
{
|
|||
|
public GComboBox comboBox { get; private set; }
|
|||
|
|
|||
|
public const string CHANGED_EVENT = "OnHtmlSelectChanged";
|
|||
|
|
|||
|
public static string resource;
|
|||
|
|
|||
|
RichTextField _owner;
|
|||
|
HtmlElement _element;
|
|||
|
EventCallback0 _changeHandler;
|
|||
|
|
|||
|
public HtmlSelect()
|
|||
|
{
|
|||
|
comboBox = UIPackage.CreateObjectFromURL(resource).asComboBox;
|
|||
|
_changeHandler = () =>
|
|||
|
{
|
|||
|
_owner.DispatchEvent(CHANGED_EVENT, null, this);
|
|||
|
};
|
|||
|
}
|
|||
|
|
|||
|
public DisplayObject displayObject
|
|||
|
{
|
|||
|
get { return comboBox.displayObject; }
|
|||
|
}
|
|||
|
|
|||
|
public HtmlElement element
|
|||
|
{
|
|||
|
get { return _element; }
|
|||
|
}
|
|||
|
|
|||
|
public float width
|
|||
|
{
|
|||
|
get { return comboBox != null ? comboBox.width : 0; }
|
|||
|
}
|
|||
|
|
|||
|
public float height
|
|||
|
{
|
|||
|
get { return comboBox != null ? comboBox.height : 0; }
|
|||
|
}
|
|||
|
|
|||
|
public void Create(RichTextField owner, HtmlElement element)
|
|||
|
{
|
|||
|
_owner = owner;
|
|||
|
_element = element;
|
|||
|
|
|||
|
if (comboBox == null)
|
|||
|
return;
|
|||
|
|
|||
|
comboBox.onChanged.Add(_changeHandler);
|
|||
|
|
|||
|
int width = element.GetInt("width", comboBox.sourceWidth);
|
|||
|
int height = element.GetInt("height", comboBox.sourceHeight);
|
|||
|
comboBox.SetSize(width, height);
|
|||
|
comboBox.items = (string[])element.Get("items");
|
|||
|
comboBox.values = (string[])element.Get("values");
|
|||
|
comboBox.value = element.GetString("value");
|
|||
|
}
|
|||
|
|
|||
|
public void SetPosition(float x, float y)
|
|||
|
{
|
|||
|
if (comboBox != null)
|
|||
|
comboBox.SetXY(x, y);
|
|||
|
}
|
|||
|
|
|||
|
public void Add()
|
|||
|
{
|
|||
|
if (comboBox != null)
|
|||
|
_owner.AddChild(comboBox.displayObject);
|
|||
|
}
|
|||
|
|
|||
|
public void Remove()
|
|||
|
{
|
|||
|
if (comboBox != null && comboBox.displayObject.parent != null)
|
|||
|
_owner.RemoveChild(comboBox.displayObject);
|
|||
|
}
|
|||
|
|
|||
|
public void Release()
|
|||
|
{
|
|||
|
if (comboBox != null)
|
|||
|
comboBox.RemoveEventListeners();
|
|||
|
|
|||
|
_owner = null;
|
|||
|
_element = null;
|
|||
|
}
|
|||
|
|
|||
|
public void Dispose()
|
|||
|
{
|
|||
|
if (comboBox != null)
|
|||
|
comboBox.Dispose();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|