首次提交
This commit is contained in:
235
Assets/Plugins/FairyGUI/Scripts/UI/GLabel.cs
Normal file
235
Assets/Plugins/FairyGUI/Scripts/UI/GLabel.cs
Normal file
@@ -0,0 +1,235 @@
|
||||
using UnityEngine;
|
||||
using FairyGUI.Utils;
|
||||
|
||||
namespace FairyGUI
|
||||
{
|
||||
/// <summary>
|
||||
/// GLabel class.
|
||||
/// </summary>
|
||||
public class GLabel : GComponent, IColorGear
|
||||
{
|
||||
protected GObject _titleObject;
|
||||
protected GObject _iconObject;
|
||||
|
||||
public GLabel()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Icon of the label.
|
||||
/// </summary>
|
||||
override public string icon
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_iconObject != null)
|
||||
return _iconObject.icon;
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (_iconObject != null)
|
||||
_iconObject.icon = value;
|
||||
UpdateGear(7);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Title of the label.
|
||||
/// </summary>
|
||||
public string title
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_titleObject != null)
|
||||
return _titleObject.text;
|
||||
else
|
||||
return null;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (_titleObject != null)
|
||||
_titleObject.text = value;
|
||||
UpdateGear(6);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Same of the title.
|
||||
/// </summary>
|
||||
override public string text
|
||||
{
|
||||
get { return this.title; }
|
||||
set { this.title = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// If title is input text.
|
||||
/// </summary>
|
||||
public bool editable
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_titleObject is GTextInput)
|
||||
return _titleObject.asTextInput.editable;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (_titleObject is GTextInput)
|
||||
_titleObject.asTextInput.editable = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Title color of the label
|
||||
/// </summary>
|
||||
public Color titleColor
|
||||
{
|
||||
get
|
||||
{
|
||||
GTextField tf = GetTextField();
|
||||
if (tf != null)
|
||||
return tf.color;
|
||||
else
|
||||
return Color.black;
|
||||
}
|
||||
set
|
||||
{
|
||||
GTextField tf = GetTextField();
|
||||
if (tf != null)
|
||||
{
|
||||
tf.color = value;
|
||||
UpdateGear(4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public int titleFontSize
|
||||
{
|
||||
get
|
||||
{
|
||||
GTextField tf = GetTextField();
|
||||
if (tf != null)
|
||||
return tf.textFormat.size;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
set
|
||||
{
|
||||
GTextField tf = GetTextField();
|
||||
if (tf != null)
|
||||
{
|
||||
TextFormat format = tf.textFormat;
|
||||
format.size = value;
|
||||
tf.textFormat = format;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public Color color
|
||||
{
|
||||
get { return this.titleColor; }
|
||||
set { this.titleColor = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public GTextField GetTextField()
|
||||
{
|
||||
if (_titleObject is GTextField)
|
||||
return (GTextField)_titleObject;
|
||||
else if (_titleObject is GLabel)
|
||||
return ((GLabel)_titleObject).GetTextField();
|
||||
else if (_titleObject is GButton)
|
||||
return ((GButton)_titleObject).GetTextField();
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
override protected void ConstructExtension(ByteBuffer buffer)
|
||||
{
|
||||
_titleObject = GetChild("title");
|
||||
_iconObject = GetChild("icon");
|
||||
}
|
||||
|
||||
override public void Setup_AfterAdd(ByteBuffer buffer, int beginPos)
|
||||
{
|
||||
base.Setup_AfterAdd(buffer, beginPos);
|
||||
|
||||
if (!buffer.Seek(beginPos, 6))
|
||||
return;
|
||||
|
||||
if ((ObjectType)buffer.ReadByte() != packageItem.objectType)
|
||||
return;
|
||||
|
||||
string str;
|
||||
str = buffer.ReadS();
|
||||
if (str != null)
|
||||
this.title = str;
|
||||
str = buffer.ReadS();
|
||||
if (str != null)
|
||||
this.icon = str;
|
||||
if (buffer.ReadBool())
|
||||
this.titleColor = buffer.ReadColor();
|
||||
int iv = buffer.ReadInt();
|
||||
if (iv != 0)
|
||||
this.titleFontSize = iv;
|
||||
|
||||
if (buffer.ReadBool())
|
||||
{
|
||||
GTextInput input = GetTextField() as GTextInput;
|
||||
if (input != null)
|
||||
{
|
||||
str = buffer.ReadS();
|
||||
if (str != null)
|
||||
input.promptText = str;
|
||||
|
||||
str = buffer.ReadS();
|
||||
if (str != null)
|
||||
input.restrict = str;
|
||||
|
||||
iv = buffer.ReadInt();
|
||||
if (iv != 0)
|
||||
input.maxLength = iv;
|
||||
iv = buffer.ReadInt();
|
||||
if (iv != 0)
|
||||
input.keyboardType = iv;
|
||||
if (buffer.ReadBool())
|
||||
input.displayAsPassword = true;
|
||||
}
|
||||
else
|
||||
buffer.Skip(13);
|
||||
}
|
||||
|
||||
if (buffer.version >= 5)
|
||||
{
|
||||
string sound = buffer.ReadS();
|
||||
if (!string.IsNullOrEmpty(sound))
|
||||
{
|
||||
float volumeScale = buffer.ReadFloat();
|
||||
displayObject.onClick.Add(() =>
|
||||
{
|
||||
NAudioClip audioClip = UIPackage.GetItemAssetByURL(sound) as NAudioClip;
|
||||
if (audioClip != null && audioClip.nativeClip != null)
|
||||
Stage.inst.PlayOneShotSound(audioClip.nativeClip, volumeScale);
|
||||
});
|
||||
}
|
||||
else
|
||||
buffer.Skip(4);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user