using UnityEngine; using FairyGUI.Utils; namespace FairyGUI { /// /// GLabel class. /// public class GLabel : GComponent, IColorGear { protected GObject _titleObject; protected GObject _iconObject; public GLabel() { } /// /// Icon of the label. /// override public string icon { get { if (_iconObject != null) return _iconObject.icon; else return null; } set { if (_iconObject != null) _iconObject.icon = value; UpdateGear(7); } } /// /// Title of the label. /// public string title { get { if (_titleObject != null) return _titleObject.text; else return null; } set { if (_titleObject != null) _titleObject.text = value; UpdateGear(6); } } /// /// Same of the title. /// override public string text { get { return this.title; } set { this.title = value; } } /// /// If title is input text. /// public bool editable { get { if (_titleObject is GTextInput) return _titleObject.asTextInput.editable; else return false; } set { if (_titleObject is GTextInput) _titleObject.asTextInput.editable = value; } } /// /// Title color of the label /// 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); } } } /// /// /// 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; } } } /// /// /// public Color color { get { return this.titleColor; } set { this.titleColor = value; } } /// /// /// /// 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); } } } }