Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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));
        }