Exemplo n.º 1
0
        public async void Close(string winName)
        {
            UIComponent component = Get(winName);

            if (component == null)
            {
                $"找不到窗口{winName}".LogError();
                return;
            }

            if (component.TryGetComponent <UIAnimaComponent>(out var anima))
            {
                World.Instance.RunSystemOfTag <IUIClose>(anima);
                await anima.Close();
            }

            if (component.AutoHide)
            {
                component.rectTransform.gameObject.Hide();
            }
            if (component.ModuleUI && ModuleUiItems.Contains(component))
            {
                ModuleUiItems.Remove(component);
            }
            if (component.rectTransform.gameObject.activeSelf)
            {
                RunSystemAndChild <IUIClose>(component);
            }
            if (OpenItems.Contains(component))
            {
                OpenItems.Remove(component);
            }
            TopView = OpenItems.Count > 0 ? OpenItems[^ 1] : null;
 private void Initialization(int size)
 {
     items = new OpenItems <Tkey, Tvalue> [size];
     for (int i = 0; i < items.Length; i++)
     {
         items[i] = new OpenItems <Tkey, Tvalue>();
     }
 }
Exemplo n.º 3
0
        public async Task <UIComponent> Open(string winName, GameObject go = null)
        {
            UIComponent component = Get(winName) ?? await AddWindow(winName, go);

            if (!OpenItems.Contains(component))
            {
                OpenItems.Add(component);
            }
            else
            {
                Debug.LogWarning($"{winName} is already open");
                return(component);
            }

            if (component.AutoShow)
            {
                component.rectTransform.gameObject.Show();
            }

            if (component.ModuleUI)
            {
                if (!ModuleUiItems.Contains(component))
                {
                    ModuleUiItems.Add(component);
                    component.AddComponent <TopViewComponent>();
                }

                component.rectTransform.SetAsLastSibling();
            }
            else
            {
                component.SetWindowLayer(Transform.childCount - 1 - ModuleUiItems.Count);
            }

            if (component.rectTransform.gameObject.activeSelf)
            {
                RunSystemAndChild <IUIOpen>(component);
            }
            else
            {
                World.Instance.RunSystemOfTag <IUIOpen>(component);
            }

            if (!component.ModuleUI)
            {
                TopView = component;
            }

            if (component.TryGetComponent <UIAnimaComponent>(out var anima))
            {
                World.Instance.RunSystemOfTag <IUIOpen>(anima);
                await anima.Open();
            }

            return(component);
        }
Exemplo n.º 4
0
        public void CloseFile(FileTypeTabItemViewModelBase item)
        {
            if (SelectedItem == item)
            {
                SelectedItemIndex--;
            }

            item.Close();
            OpenItems.Remove(item);
        }
Exemplo n.º 5
0
 public void OpenFile(string path)
 {
     try
     {
         FileTypeTabItemViewModelBase item = Utility.GetViewModelForFile(path);
         OpenItems.Add(item);
         SelectedItem = item;
     }
     catch (Exception ex)
     {
         Log.Error(ex.Message);
         MessageBox.Show(ex.Message, "Error");
     }
 }