using System.Collections.Generic; using FairyGUI.Utils; namespace FairyGUI { /// /// Gear is a connection between object and controller. /// public class GearFontSize : GearBase { Dictionary _storage; int _default; GTextField _textField; public GearFontSize(GObject owner) : base(owner) { } protected override void Init() { if (_owner is GLabel) _textField = ((GLabel)_owner).GetTextField(); else if (_owner is GButton) _textField = ((GButton)_owner).GetTextField(); else _textField = (GTextField)_owner; _default = _textField.textFormat.size; _storage = new Dictionary(); } override protected void AddStatus(string pageId, ByteBuffer buffer) { if (pageId == null) _default = buffer.ReadInt(); else _storage[pageId] = buffer.ReadInt(); } override public void Apply() { if (_textField == null) return; _owner._gearLocked = true; int cv; if (!_storage.TryGetValue(_controller.selectedPageId, out cv)) cv = _default; TextFormat tf = _textField.textFormat; tf.size = cv; _textField.textFormat = tf; _owner._gearLocked = false; } override public void UpdateState() { if (_textField != null) _storage[_controller.selectedPageId] = _textField.textFormat.size; } } }