public void BringToFront(string name) { if (!this.ActiveGUIs.Any(gui => gui.Name.Equals(name, StringComparison.OrdinalIgnoreCase))) { return; } GUIData toFront = this.ActiveGUIs.First(g => g.Name.Equals(name, StringComparison.OrdinalIgnoreCase)); foreach (GUIData gui in this.ActiveGUIs) { if (toFront.Equals(gui) || gui.AlwaysOnTop) { continue; } //gui.ZIndex = gui.DefaultSortingOrder; } GUIData[] found = this.ActiveGUIs .Where(data => data.AlwaysOpen == false) .ToArray(); if (found.Any()) { //toFront.ZIndex = found.Max(data => data.DefaultSortingOrder) + 1; } }
public bool RemoveActiveGUI(string name, bool close = false, bool disable = false) { if (this.ActiveGUIs.Any(data => data.Name.Equals(name, StringComparison.OrdinalIgnoreCase)) == false) { return(false); } GUIData toClose = this.ActiveGUIs.First(data => data.Name.Equals(name, StringComparison.OrdinalIgnoreCase)); if (toClose.AlwaysOpen) { return(false); } if (close) { toClose.Close(this); } if (disable) { toClose.SetProcess(false); } return(this.ActiveGUIs.Remove(toClose)); }
public GUIData OpenGUI(object sender, string name, bool bringToFront = false) { if (this.ActiveGUIs.Any(widget => widget.Name.Equals(name, StringComparison.OrdinalIgnoreCase))) { GUIData openGUI = this.ActiveGUIs.First(ui => ui.Name.Equals(name, StringComparison.OrdinalIgnoreCase)); if (bringToFront) { this.BringToFront(openGUI.Name); } return(openGUI); } GUIData toOpen = this.GUIs.FirstOrDefault(gui => gui.Name.Equals(name, StringComparison.OrdinalIgnoreCase)); if (toOpen is null) { return(null); } if (toOpen.ClosesOthers) { List <GUIData> activeCopy = new List <GUIData>(this.ActiveGUIs); foreach (GUIData widget in activeCopy) { this.CloseGUI(sender, widget.Name); } } toOpen.Display(); toOpen.SetProcess(true); this.ActiveGUIs.Add(toOpen); if (bringToFront) { this.BringToFront(toOpen.Name); } return(toOpen); }
public void CloseGUI(object sender, string activeName) { if (this.ActiveGUIs.Any(data => data.Name.Equals(activeName, StringComparison.OrdinalIgnoreCase)) == false) { return; } GUIData toClose = this.ActiveGUIs .First(gui => gui.Name.Equals(activeName, StringComparison.OrdinalIgnoreCase)); if (toClose.AlwaysOpen) { return; } if (toClose.Close(sender)) { toClose.SetProcess(false); this.ActiveGUIs.Remove(toClose); } }
public bool Add(GUIData gui) { this.Initialise(); if (this.GUIs.Contains(gui)) { return(false); } gui.GUIManager = this; //gui.Close(); this.SetupManagedComponents(gui); this.GUIs.Add(gui); if (gui.Visible) { this.ActiveGUIs.Add(gui); } return(true); }
public bool Destroy(string key) { GUIData gui = this.GUIs.FirstOrDefault(data => data.Name.Equals(key, StringComparison.OrdinalIgnoreCase)); return(!(gui is null) && this.GUIs.Remove(gui)); }