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.
235 lines
6.2 KiB
235 lines
6.2 KiB
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); |
|
} |
|
} |
|
} |
|
}
|
|
|