internal void RemovePortableExperienceElement(string id) { if (portableExperiencesPool == null) { return; } if (activePortableExperienceItems.ContainsKey(id)) { PortableExperienceTaskbarItem peToRemove = activePortableExperienceItems[id]; peToRemove.mainButton.OnToggleOn -= OnWindowToggleOn; peToRemove.mainButton.OnToggleOff -= OnWindowToggleOff; activePortableExperienceItems.Remove(id); portableExperiencesPool.Release(activePortableExperiencesPoolables[id]); activePortableExperiencesPoolables.Remove(id); } if (activePortableExperienceItems.Count == 0) { portableExperiencesDiv.SetActive(false); } AdjustRightButtonsLayoutWidth(); }
internal void AddPortableExperienceElement(string id, string name, string iconUrl) { if (portableExperiencesPool == null) { return; } portableExperiencesDiv.SetActive(true); PoolableObject newPEPoolable = portableExperiencesPool.Get(); newPEPoolable.gameObject.name = $"PortableExperienceItem ({id})"; newPEPoolable.gameObject.transform.SetParent(rightButtonsContainer.transform); newPEPoolable.gameObject.transform.localScale = Vector3.one; newPEPoolable.gameObject.transform.SetAsFirstSibling(); PortableExperienceTaskbarItem newPEItem = newPEPoolable.gameObject.GetComponent <PortableExperienceTaskbarItem>(); newPEItem.ConfigureItem(id, name, iconUrl, controller); newPEItem.mainButton.OnToggleOn += OnWindowToggleOn; newPEItem.mainButton.OnToggleOff += OnWindowToggleOff; activePortableExperienceItems.Add(id, newPEItem); activePortableExperiencesPoolables.Add(id, newPEPoolable); AdjustRightButtonsLayoutWidth(); }