static int Parse(IntPtr L) { try { ToLua.CheckArgsCount(L, 2); FairyGUI.Margin obj = (FairyGUI.Margin)ToLua.CheckObject(L, 1, typeof(FairyGUI.Margin)); string arg0 = ToLua.CheckString(L, 2); obj.Parse(arg0); ToLua.SetBack(L, 1, obj); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
internal void ConstructFromResource(List <GObject> objectPool, int poolIndex) { XML xml = packageItem.componentData; string str; string[] arr; underConstruct = true; arr = xml.GetAttributeArray("size"); sourceWidth = int.Parse(arr[0]); sourceHeight = int.Parse(arr[1]); initWidth = sourceWidth; initHeight = sourceHeight; SetSize(sourceWidth, sourceHeight); arr = xml.GetAttributeArray("pivot"); if (arr != null) { float f1 = float.Parse(arr[0]); float f2 = float.Parse(arr[1]); this.SetPivot(f1, f2, xml.GetAttributeBool("anchor")); } this.opaque = xml.GetAttributeBool("opaque", true); arr = xml.GetAttributeArray("hitTest"); if (arr != null) { PixelHitTestData hitTestData = packageItem.owner.GetPixelHitTestData(arr[0]); if (hitTestData != null) { this.rootContainer.hitArea = new PixelHitTest(hitTestData, int.Parse(arr[1]), int.Parse(arr[2])); } } OverflowType overflow; str = xml.GetAttribute("overflow"); if (str != null) { overflow = FieldTypes.ParseOverflowType(str); } else { overflow = OverflowType.Visible; } str = xml.GetAttribute("margin"); if (str != null) { _margin.Parse(str); } if (overflow == OverflowType.Scroll) { ScrollType scroll; str = xml.GetAttribute("scroll"); if (str != null) { scroll = FieldTypes.ParseScrollType(str); } else { scroll = ScrollType.Vertical; } ScrollBarDisplayType scrollBarDisplay; str = xml.GetAttribute("scrollBar"); if (str != null) { scrollBarDisplay = FieldTypes.ParseScrollBarDisplayType(str); } else { scrollBarDisplay = ScrollBarDisplayType.Default; } int scrollBarFlags = xml.GetAttributeInt("scrollBarFlags"); Margin scrollBarMargin = new Margin(); str = xml.GetAttribute("scrollBarMargin"); if (str != null) { scrollBarMargin.Parse(str); } string vtScrollBarRes = null; string hzScrollBarRes = null; arr = xml.GetAttributeArray("scrollBarRes"); if (arr != null) { vtScrollBarRes = arr[0]; hzScrollBarRes = arr[1]; } SetupScroll(scrollBarMargin, scroll, scrollBarDisplay, scrollBarFlags, vtScrollBarRes, hzScrollBarRes); } else { SetupOverflow(overflow); } arr = xml.GetAttributeArray("clipSoftness"); if (arr != null) { this.clipSoftness = new Vector2(int.Parse(arr[0]), int.Parse(arr[1])); } _buildingDisplayList = true; XMLList.Enumerator et = xml.GetEnumerator("controller"); Controller controller; while (et.MoveNext()) { controller = new Controller(); _controllers.Add(controller); controller.parent = this; controller.Setup(et.Current); } GObject child; DisplayListItem[] displayList = packageItem.displayList; int childCount = displayList.Length; for (int i = 0; i < childCount; i++) { DisplayListItem di = displayList[i]; if (objectPool != null) { child = objectPool[poolIndex + i]; } else { if (di.packageItem != null) { di.packageItem.Load(); child = UIObjectFactory.NewObject(di.packageItem); child.packageItem = di.packageItem; child.ConstructFromResource(); } else { child = UIObjectFactory.NewObject(di.type); } } child.underConstruct = true; child.Setup_BeforeAdd(di.desc); child.parent = this; _children.Add(child); } this.relations.Setup(xml); for (int i = 0; i < childCount; i++) { _children[i].relations.Setup(displayList[i].desc); } for (int i = 0; i < childCount; i++) { child = _children[i]; child.Setup_AfterAdd(displayList[i].desc); child.underConstruct = false; } str = xml.GetAttribute("mask"); if (str != null) { this.mask = GetChildById(str).displayObject; } et = xml.GetEnumerator("transition"); while (et.MoveNext()) { Transition trans = new Transition(this); trans.Setup(et.Current); _transitions.Add(trans); } if (_transitions.Count > 0) { this.onAddedToStage.Add(__addedToStage); this.onRemovedFromStage.Add(__removedFromStage); } ApplyAllControllers(); _buildingDisplayList = false; underConstruct = false; BuildNativeDisplayList(); SetBoundsChangedFlag(); ConstructFromXML(xml); }
public virtual void ConstructFromXML(XML xml) { string str; string[] arr; underConstruct = true; arr = xml.GetAttributeArray("size"); sourceWidth = int.Parse(arr[0]); sourceHeight = int.Parse(arr[1]); initWidth = sourceWidth; initHeight = sourceHeight; OverflowType overflow; str = xml.GetAttribute("overflow"); if (str != null) overflow = FieldTypes.ParseOverflowType(str); else overflow = OverflowType.Visible; ScrollType scroll; str = xml.GetAttribute("scroll"); if (str != null) scroll = FieldTypes.ParseScrollType(str); else scroll = ScrollType.Vertical; ScrollBarDisplayType scrollBarDisplay; str = xml.GetAttribute("scrollBar"); if (str != null) scrollBarDisplay = FieldTypes.ParseScrollBarDisplayType(str); else scrollBarDisplay = ScrollBarDisplayType.Default; int scrollBarFlags = xml.GetAttributeInt("scrollBarFlags"); Margin scrollBarMargin = new Margin(); str = xml.GetAttribute("scrollBarMargin"); if (str != null) scrollBarMargin.Parse(str); str = xml.GetAttribute("margin"); if (str != null) _margin.Parse(str); SetSize(sourceWidth, sourceHeight); SetupOverflowAndScroll(overflow, scrollBarMargin, scroll, scrollBarDisplay, scrollBarFlags); arr = xml.GetAttributeArray("clipSoftness"); if (arr != null) this.clipSoftness = new Vector2(int.Parse(arr[0]), int.Parse(arr[1])); _buildingDisplayList = true; XMLList col = xml.Elements("controller"); Controller controller; foreach (XML cxml in col) { controller = new Controller(); _controllers.Add(controller); controller.parent = this; controller.Setup(cxml); } XML listNode = xml.GetNode("displayList"); if (listNode != null) { col = listNode.Elements(); GObject u; foreach (XML cxml in col) { u = ConstructChild(cxml); if (u == null) continue; u.underConstruct = true; u.constructingData = cxml; u.Setup_BeforeAdd(cxml); AddChild(u); } } this.relations.Setup(xml); int cnt = _children.Count; for (int i = 0; i < cnt; i++) { GObject u = _children[i]; u.relations.Setup(u.constructingData); } for (int i = 0; i < cnt; i++) { GObject u = _children[i]; u.Setup_AfterAdd(u.constructingData); u.underConstruct = false; u.constructingData = null; } XMLList transCol = xml.Elements("transition"); foreach (XML cxml in transCol) { Transition trans = new Transition(this); trans.Setup(cxml); _transitions.Add(trans); } ApplyAllControllers(); _buildingDisplayList = false; underConstruct = false; //build real display list foreach (GObject child in _children) { if (child.displayObject != null && child.finalVisible) container.AddChild(child.displayObject); } }
virtual public void ConstructFromXML(XML xml) { string str; string[] arr; underConstruct = true; arr = xml.GetAttributeArray("size"); sourceWidth = int.Parse(arr[0]); sourceHeight = int.Parse(arr[1]); initWidth = sourceWidth; initHeight = sourceHeight; SetSize(sourceWidth, sourceHeight); arr = xml.GetAttributeArray("pivot"); if (arr != null) { float f1 = float.Parse(arr[0]); float f2 = float.Parse(arr[1]); this.SetPivot(f1, f2, xml.GetAttributeBool("anchor")); } this.opaque = xml.GetAttributeBool("opaque", true); arr = xml.GetAttributeArray("hitTest"); if (arr != null) { PixelHitTestData hitTestData = _packageItem.owner.GetPixelHitTestData(arr[0]); if (hitTestData != null) { this.rootContainer.hitArea = new PixelHitTest(hitTestData, int.Parse(arr[1]), int.Parse(arr[2])); } } OverflowType overflow; str = xml.GetAttribute("overflow"); if (str != null) { overflow = FieldTypes.ParseOverflowType(str); } else { overflow = OverflowType.Visible; } str = xml.GetAttribute("margin"); if (str != null) { _margin.Parse(str); } if (overflow == OverflowType.Scroll) { ScrollType scroll; str = xml.GetAttribute("scroll"); if (str != null) { scroll = FieldTypes.ParseScrollType(str); } else { scroll = ScrollType.Vertical; } ScrollBarDisplayType scrollBarDisplay; str = xml.GetAttribute("scrollBar"); if (str != null) { scrollBarDisplay = FieldTypes.ParseScrollBarDisplayType(str); } else { scrollBarDisplay = ScrollBarDisplayType.Default; } int scrollBarFlags = xml.GetAttributeInt("scrollBarFlags"); Margin scrollBarMargin = new Margin(); str = xml.GetAttribute("scrollBarMargin"); if (str != null) { scrollBarMargin.Parse(str); } string vtScrollBarRes = null; string hzScrollBarRes = null; arr = xml.GetAttributeArray("scrollBarRes"); if (arr != null) { vtScrollBarRes = arr[0]; hzScrollBarRes = arr[1]; } SetupScroll(scrollBarMargin, scroll, scrollBarDisplay, scrollBarFlags, vtScrollBarRes, hzScrollBarRes); } else { SetupOverflow(overflow); } arr = xml.GetAttributeArray("clipSoftness"); if (arr != null) { this.clipSoftness = new Vector2(int.Parse(arr[0]), int.Parse(arr[1])); } _buildingDisplayList = true; XMLList col = xml.Elements("controller"); Controller controller; foreach (XML cxml in col) { controller = new Controller(); _controllers.Add(controller); controller.parent = this; controller.Setup(cxml); } XML listNode = xml.GetNode("displayList"); if (listNode != null) { col = listNode.Elements(); GObject u; foreach (XML cxml in col) { u = ConstructChild(cxml); if (u == null) { continue; } u.underConstruct = true; u.constructingData = cxml; u.Setup_BeforeAdd(cxml); AddChild(u); } } this.relations.Setup(xml); int cnt = _children.Count; for (int i = 0; i < cnt; i++) { GObject u = _children[i]; u.relations.Setup(u.constructingData); } for (int i = 0; i < cnt; i++) { GObject u = _children[i]; u.Setup_AfterAdd(u.constructingData); u.underConstruct = false; u.constructingData = null; } str = xml.GetAttribute("mask"); if (str != null) { this.mask = GetChildById(str).displayObject; } XMLList transCol = xml.Elements("transition"); foreach (XML cxml in transCol) { Transition trans = new Transition(this); trans.Setup(cxml); _transitions.Add(trans); } if (_transitions.Count > 0) { this.onAddedToStage.Add(__addedToStage); this.onRemovedFromStage.Add(__removedFromStage); } ApplyAllControllers(); _buildingDisplayList = false; underConstruct = false; BuildNativeDisplayList(); }
public override void Setup_BeforeAdd(XML xml) { base.Setup_BeforeAdd(xml); string str; string[] arr; str = xml.GetAttribute("layout"); if (str != null) _layout = FieldTypes.ParseListLayoutType(str); else _layout = ListLayoutType.SingleColumn; str = xml.GetAttribute("selectionMode"); if (str != null) selectionMode = FieldTypes.ParseListSelectionMode(str); else selectionMode = ListSelectionMode.Single; OverflowType overflow; str = xml.GetAttribute("overflow"); if (str != null) overflow = FieldTypes.ParseOverflowType(str); else overflow = OverflowType.Visible; str = xml.GetAttribute("margin"); if (str != null) _margin.Parse(str); str = xml.GetAttribute("align"); if (str != null) _align = FieldTypes.ParseAlign(str); str = xml.GetAttribute("vAlign"); if (str != null) _verticalAlign = FieldTypes.ParseVerticalAlign(str); if (overflow == OverflowType.Scroll) { ScrollType scroll; str = xml.GetAttribute("scroll"); if (str != null) scroll = FieldTypes.ParseScrollType(str); else scroll = ScrollType.Vertical; ScrollBarDisplayType scrollBarDisplay; str = xml.GetAttribute("scrollBar"); if (str != null) scrollBarDisplay = FieldTypes.ParseScrollBarDisplayType(str); else scrollBarDisplay = ScrollBarDisplayType.Default; int scrollBarFlags = xml.GetAttributeInt("scrollBarFlags"); Margin scrollBarMargin = new Margin(); str = xml.GetAttribute("scrollBarMargin"); if (str != null) scrollBarMargin.Parse(str); string vtScrollBarRes = null; string hzScrollBarRes = null; arr = xml.GetAttributeArray("scrollBarRes"); if (arr != null) { vtScrollBarRes = arr[0]; hzScrollBarRes = arr[1]; } SetupScroll(scrollBarMargin, scroll, scrollBarDisplay, scrollBarFlags, vtScrollBarRes, hzScrollBarRes); } else { SetupOverflow(overflow); } arr = xml.GetAttributeArray("clipSoftness"); if (arr != null) this.clipSoftness = new Vector2(int.Parse(arr[0]), int.Parse(arr[1])); _lineGap = xml.GetAttributeInt("lineGap"); _columnGap = xml.GetAttributeInt("colGap"); _lineItemCount = xml.GetAttributeInt("lineItemCount"); defaultItem = xml.GetAttribute("defaultItem"); autoResizeItem = xml.GetAttributeBool("autoItemSize", true); XMLList.Enumerator et = xml.GetEnumerator("item"); while (et.MoveNext()) { XML ix = et.Current; string url = ix.GetAttribute("url"); if (string.IsNullOrEmpty(url)) { url = defaultItem; if (string.IsNullOrEmpty(url)) continue; } GObject obj = GetFromPool(url); if (obj != null) { AddChild(obj); str = ix.GetAttribute("title"); if (str != null) obj.text = str; str = ix.GetAttribute("icon"); if (str != null) obj.icon = str; str = ix.GetAttribute("name"); if (str != null) obj.name = str; } } }
public override void Setup_BeforeAdd(XML xml) { base.Setup_BeforeAdd(xml); string str; str = xml.GetAttribute("layout"); if (str != null) _layout = FieldTypes.ParseListLayoutType(str); else _layout = ListLayoutType.SingleColumn; str = xml.GetAttribute("selectionMode"); if (str != null) selectionMode = FieldTypes.ParseListSelectionMode(str); else selectionMode = ListSelectionMode.Single; OverflowType overflow; str = xml.GetAttribute("overflow"); if (str != null) overflow = FieldTypes.ParseOverflowType(str); else overflow = OverflowType.Visible; ScrollType scroll; str = xml.GetAttribute("scroll"); if (str != null) scroll = FieldTypes.ParseScrollType(str); else scroll = ScrollType.Vertical; ScrollBarDisplayType scrollBarDisplay; str = xml.GetAttribute("scrollBar"); if (str != null) scrollBarDisplay = FieldTypes.ParseScrollBarDisplayType(str); else scrollBarDisplay = ScrollBarDisplayType.Default; int scrollBarFlags = xml.GetAttributeInt("scrollBarFlags"); Margin scrollBarMargin = new Margin(); str = xml.GetAttribute("scrollBarMargin"); if (str != null) scrollBarMargin.Parse(str); str = xml.GetAttribute("margin"); if (str != null) _margin.Parse(str); SetupOverflowAndScroll(overflow, scrollBarMargin, scroll, scrollBarDisplay, scrollBarFlags); string[] arr = xml.GetAttributeArray("clipSoftness"); if (arr != null) this.clipSoftness = new Vector2(int.Parse(arr[0]), int.Parse(arr[1])); _lineGap = xml.GetAttributeInt("lineGap"); _columnGap = xml.GetAttributeInt("colGap"); defaultItem = xml.GetAttribute("defaultItem"); autoResizeItem = xml.GetAttributeBool("autoItemSize", true); XMLList col = xml.Elements("item"); foreach (XML ix in col) { string url = ix.GetAttribute("url"); if (string.IsNullOrEmpty(url)) url = defaultItem; if (string.IsNullOrEmpty(url)) continue; GObject obj = AddItemFromPool(url); if (obj is GButton) { ((GButton)obj).title = ix.GetAttribute("title"); ((GButton)obj).icon = ix.GetAttribute("icon"); } else if (obj is GLabel) { ((GLabel)obj).title = ix.GetAttribute("title"); ((GLabel)obj).icon = ix.GetAttribute("icon"); } } }
public virtual void ConstructFromXML(XML xml) { string str; string[] arr; underConstruct = true; arr = xml.GetAttributeArray("size"); sourceWidth = int.Parse(arr[0]); sourceHeight = int.Parse(arr[1]); initWidth = sourceWidth; initHeight = sourceHeight; SetSize(sourceWidth, sourceHeight); arr = xml.GetAttributeArray("pivot"); if (arr != null) { float f1 = float.Parse(arr[0]); float f2 = float.Parse(arr[1]); this.SetPivot(f1, f2, xml.GetAttributeBool("anchor")); } this.opaque = xml.GetAttributeBool("opaque", true); arr = xml.GetAttributeArray("hitTest"); if (arr != null) { PixelHitTestData hitTestData = _packageItem.owner.GetPixelHitTestData(arr[0]); if (hitTestData != null) this.rootContainer.hitArea = new PixelHitTest(hitTestData, int.Parse(arr[1]), int.Parse(arr[2])); } OverflowType overflow; str = xml.GetAttribute("overflow"); if (str != null) overflow = FieldTypes.ParseOverflowType(str); else overflow = OverflowType.Visible; str = xml.GetAttribute("margin"); if (str != null) _margin.Parse(str); if (overflow == OverflowType.Scroll) { ScrollType scroll; str = xml.GetAttribute("scroll"); if (str != null) scroll = FieldTypes.ParseScrollType(str); else scroll = ScrollType.Vertical; ScrollBarDisplayType scrollBarDisplay; str = xml.GetAttribute("scrollBar"); if (str != null) scrollBarDisplay = FieldTypes.ParseScrollBarDisplayType(str); else scrollBarDisplay = ScrollBarDisplayType.Default; int scrollBarFlags = xml.GetAttributeInt("scrollBarFlags"); Margin scrollBarMargin = new Margin(); str = xml.GetAttribute("scrollBarMargin"); if (str != null) scrollBarMargin.Parse(str); string vtScrollBarRes = null; string hzScrollBarRes = null; arr = xml.GetAttributeArray("scrollBarRes"); if (arr != null) { vtScrollBarRes = arr[0]; hzScrollBarRes = arr[1]; } SetupScroll(scrollBarMargin, scroll, scrollBarDisplay, scrollBarFlags, vtScrollBarRes, hzScrollBarRes); } else SetupOverflow(overflow); arr = xml.GetAttributeArray("clipSoftness"); if (arr != null) this.clipSoftness = new Vector2(int.Parse(arr[0]), int.Parse(arr[1])); _buildingDisplayList = true; XMLList col = xml.Elements("controller"); Controller controller; foreach (XML cxml in col) { controller = new Controller(); _controllers.Add(controller); controller.parent = this; controller.Setup(cxml); } XML listNode = xml.GetNode("displayList"); if (listNode != null) { col = listNode.Elements(); GObject u; foreach (XML cxml in col) { u = ConstructChild(cxml); if (u == null) continue; u.underConstruct = true; u.constructingData = cxml; u.Setup_BeforeAdd(cxml); AddChild(u); } } this.relations.Setup(xml); int cnt = _children.Count; for (int i = 0; i < cnt; i++) { GObject u = _children[i]; u.relations.Setup(u.constructingData); } for (int i = 0; i < cnt; i++) { GObject u = _children[i]; u.Setup_AfterAdd(u.constructingData); u.underConstruct = false; u.constructingData = null; } str = xml.GetAttribute("mask"); if (str != null) this.mask = GetChildById(str).displayObject; XMLList transCol = xml.Elements("transition"); foreach (XML cxml in transCol) { Transition trans = new Transition(this); trans.Setup(cxml); _transitions.Add(trans); } if (_transitions.Count > 0) { this.onAddedToStage.Add(__addedToStage); this.onRemovedFromStage.Add(__removedFromStage); } ApplyAllControllers(); _buildingDisplayList = false; underConstruct = false; BuildNativeDisplayList(); }
virtual public void ConstructFromXML(XML xml) { string str; string[] arr; underConstruct = true; arr = xml.GetAttributeArray("size"); sourceWidth = int.Parse(arr[0]); sourceHeight = int.Parse(arr[1]); initWidth = sourceWidth; initHeight = sourceHeight; OverflowType overflow; str = xml.GetAttribute("overflow"); if (str != null) { overflow = FieldTypes.ParseOverflowType(str); } else { overflow = OverflowType.Visible; } ScrollType scroll; str = xml.GetAttribute("scroll"); if (str != null) { scroll = FieldTypes.ParseScrollType(str); } else { scroll = ScrollType.Vertical; } ScrollBarDisplayType scrollBarDisplay; str = xml.GetAttribute("scrollBar"); if (str != null) { scrollBarDisplay = FieldTypes.ParseScrollBarDisplayType(str); } else { scrollBarDisplay = ScrollBarDisplayType.Default; } int scrollBarFlags = xml.GetAttributeInt("scrollBarFlags"); Margin scrollBarMargin = new Margin(); str = xml.GetAttribute("scrollBarMargin"); if (str != null) { scrollBarMargin.Parse(str); } str = xml.GetAttribute("margin"); if (str != null) { _margin.Parse(str); } SetSize(sourceWidth, sourceHeight); SetupOverflowAndScroll(overflow, scrollBarMargin, scroll, scrollBarDisplay, scrollBarFlags); arr = xml.GetAttributeArray("clipSoftness"); if (arr != null) { this.clipSoftness = new Vector2(int.Parse(arr[0]), int.Parse(arr[1])); } _buildingDisplayList = true; XMLList col = xml.Elements("controller"); Controller controller; foreach (XML cxml in col) { controller = new Controller(); _controllers.Add(controller); controller.parent = this; controller.Setup(cxml); } XML listNode = xml.GetNode("displayList"); if (listNode != null) { col = listNode.Elements(); GObject u; foreach (XML cxml in col) { u = ConstructChild(cxml); if (u == null) { continue; } u.underConstruct = true; u.constructingData = cxml; u.Setup_BeforeAdd(cxml); AddChild(u); } } this.relations.Setup(xml); int cnt = _children.Count; for (int i = 0; i < cnt; i++) { GObject u = _children[i]; u.relations.Setup(u.constructingData); } for (int i = 0; i < cnt; i++) { GObject u = _children[i]; u.Setup_AfterAdd(u.constructingData); u.underConstruct = false; u.constructingData = null; } XMLList transCol = xml.Elements("transition"); foreach (XML cxml in transCol) { Transition trans = new Transition(this); trans.Setup(cxml); _transitions.Add(trans); } ApplyAllControllers(); _buildingDisplayList = false; underConstruct = false; //build real display list foreach (GObject child in _children) { if (child.displayObject != null && child.finalVisible) { container.AddChild(child.displayObject); } } }
override public void Setup_BeforeAdd(XML xml) { base.Setup_BeforeAdd(xml); string str; str = xml.GetAttribute("layout"); if (str != null) { _layout = FieldTypes.ParseListLayoutType(str); } else { _layout = ListLayoutType.SingleColumn; } str = xml.GetAttribute("selectionMode"); if (str != null) { selectionMode = FieldTypes.ParseListSelectionMode(str); } else { selectionMode = ListSelectionMode.Single; } OverflowType overflow; str = xml.GetAttribute("overflow"); if (str != null) { overflow = FieldTypes.ParseOverflowType(str); } else { overflow = OverflowType.Visible; } ScrollType scroll; str = xml.GetAttribute("scroll"); if (str != null) { scroll = FieldTypes.ParseScrollType(str); } else { scroll = ScrollType.Vertical; } ScrollBarDisplayType scrollBarDisplay; str = xml.GetAttribute("scrollBar"); if (str != null) { scrollBarDisplay = FieldTypes.ParseScrollBarDisplayType(str); } else { scrollBarDisplay = ScrollBarDisplayType.Default; } int scrollBarFlags = xml.GetAttributeInt("scrollBarFlags"); Margin scrollBarMargin = new Margin(); str = xml.GetAttribute("scrollBarMargin"); if (str != null) { scrollBarMargin.Parse(str); } str = xml.GetAttribute("margin"); if (str != null) { _margin.Parse(str); } SetupOverflowAndScroll(overflow, scrollBarMargin, scroll, scrollBarDisplay, scrollBarFlags); string[] arr = xml.GetAttributeArray("clipSoftness"); if (arr != null) { this.clipSoftness = new Vector2(int.Parse(arr[0]), int.Parse(arr[1])); } _lineGap = xml.GetAttributeInt("lineGap"); _columnGap = xml.GetAttributeInt("colGap"); defaultItem = xml.GetAttribute("defaultItem"); autoResizeItem = xml.GetAttributeBool("autoItemSize", true); XMLList col = xml.Elements("item"); foreach (XML ix in col) { string url = ix.GetAttribute("url"); if (string.IsNullOrEmpty(url)) { url = defaultItem; } if (string.IsNullOrEmpty(url)) { continue; } GObject obj = AddItemFromPool(url); if (obj is GButton) { ((GButton)obj).title = ix.GetAttribute("title"); ((GButton)obj).icon = ix.GetAttribute("icon"); } else if (obj is GLabel) { ((GLabel)obj).title = ix.GetAttribute("title"); ((GLabel)obj).icon = ix.GetAttribute("icon"); } } }
internal void ConstructFromResource(List<GObject> objectPool, int poolIndex) { this.gameObjectName = packageItem.name; XML xml = packageItem.componentData; string str; string[] arr; underConstruct = true; arr = xml.GetAttributeArray("size"); sourceWidth = int.Parse(arr[0]); sourceHeight = int.Parse(arr[1]); initWidth = sourceWidth; initHeight = sourceHeight; SetSize(sourceWidth, sourceHeight); arr = xml.GetAttributeArray("pivot"); if (arr != null) { float f1 = float.Parse(arr[0]); float f2 = float.Parse(arr[1]); this.SetPivot(f1, f2, xml.GetAttributeBool("anchor")); } this.opaque = xml.GetAttributeBool("opaque", true); arr = xml.GetAttributeArray("hitTest"); if (arr != null) { PixelHitTestData hitTestData = packageItem.owner.GetPixelHitTestData(arr[0]); if (hitTestData != null) this.rootContainer.hitArea = new PixelHitTest(hitTestData, int.Parse(arr[1]), int.Parse(arr[2])); } OverflowType overflow; str = xml.GetAttribute("overflow"); if (str != null) overflow = FieldTypes.ParseOverflowType(str); else overflow = OverflowType.Visible; str = xml.GetAttribute("margin"); if (str != null) _margin.Parse(str); if (overflow == OverflowType.Scroll) { ScrollType scroll; str = xml.GetAttribute("scroll"); if (str != null) scroll = FieldTypes.ParseScrollType(str); else scroll = ScrollType.Vertical; ScrollBarDisplayType scrollBarDisplay; str = xml.GetAttribute("scrollBar"); if (str != null) scrollBarDisplay = FieldTypes.ParseScrollBarDisplayType(str); else scrollBarDisplay = ScrollBarDisplayType.Default; int scrollBarFlags = xml.GetAttributeInt("scrollBarFlags"); Margin scrollBarMargin = new Margin(); str = xml.GetAttribute("scrollBarMargin"); if (str != null) scrollBarMargin.Parse(str); string vtScrollBarRes = null; string hzScrollBarRes = null; arr = xml.GetAttributeArray("scrollBarRes"); if (arr != null) { vtScrollBarRes = arr[0]; hzScrollBarRes = arr[1]; } SetupScroll(scrollBarMargin, scroll, scrollBarDisplay, scrollBarFlags, vtScrollBarRes, hzScrollBarRes); } else SetupOverflow(overflow); arr = xml.GetAttributeArray("clipSoftness"); if (arr != null) this.clipSoftness = new Vector2(int.Parse(arr[0]), int.Parse(arr[1])); _buildingDisplayList = true; XMLList.Enumerator et = xml.GetEnumerator("controller"); Controller controller; while (et.MoveNext()) { controller = new Controller(); _controllers.Add(controller); controller.parent = this; controller.Setup(et.Current); } GObject child; DisplayListItem[] displayList = packageItem.displayList; int childCount = displayList.Length; for (int i = 0; i < childCount; i++) { DisplayListItem di = displayList[i]; if (objectPool != null) child = objectPool[poolIndex + i]; else if (di.packageItem != null) { di.packageItem.Load(); child = UIObjectFactory.NewObject(di.packageItem); child.packageItem = di.packageItem; child.ConstructFromResource(); } else child = UIObjectFactory.NewObject(di.type); child.underConstruct = true; child.Setup_BeforeAdd(di.desc); child.InternalSetParent(this); _children.Add(child); } this.relations.Setup(xml); for (int i = 0; i < childCount; i++) _children[i].relations.Setup(displayList[i].desc); for (int i = 0; i < childCount; i++) { child = _children[i]; child.Setup_AfterAdd(displayList[i].desc); child.underConstruct = false; if (child.displayObject != null) ToolSet.SetParent(child.displayObject.cachedTransform, this.displayObject.cachedTransform); } str = xml.GetAttribute("mask"); if (str != null) this.mask = GetChildById(str).displayObject; et = xml.GetEnumerator("transition"); while (et.MoveNext()) { Transition trans = new Transition(this); trans.Setup(et.Current); _transitions.Add(trans); } if (_transitions.Count > 0) { this.onAddedToStage.Add(__addedToStage); this.onRemovedFromStage.Add(__removedFromStage); } ApplyAllControllers(); _buildingDisplayList = false; underConstruct = false; BuildNativeDisplayList(); SetBoundsChangedFlag(); ConstructFromXML(xml); }