public void Pin(OptionDefinition obj, int order = -1) { if (_uiRoot == null) { Load(); } if (_pinnedObjects.ContainsKey(obj)) { return; } var control = OptionControlFactory.CreateControl(obj); control.CachedTransform.SetParent(_uiRoot.Container, false); if (order >= 0) { control.CachedTransform.SetSiblingIndex(order); } _pinnedObjects.Add(obj, control); _controlList.Add(control); OnPinnedStateChanged(obj, true); }
protected void CreateCategory(string title, List <OptionDefinition> options) { options.Sort((d1, d2) => d1.SortPriority.CompareTo(d2.SortPriority)); var instance = SRInstantiate.Instantiate(CategoryGroupPrefab); instance.CachedTransform.SetParent(ContentContainer, false); instance.Header.text = title; foreach (var option in options) { var control = OptionControlFactory.CreateControl(option, title); if (control == null) { Debug.LogError("[SRDebugger.OptionsTab] Failed to create option control for {0}".Fmt(option.Name)); continue; } control.CachedTransform.SetParent(instance.Container, false); control.IsSelected = Service.PinnedUI.HasPinned(option); control.SelectionModeEnabled = false; _options.Add(option, control); _controls.Add(control); } }