Example #1
0
    public GTWindow OpenWindow(EWindowID windowID)
    {
        if (!m_AllWindows.ContainsKey(windowID))
        {
            return(null);
        }
        GTWindow window = m_AllWindows[windowID];

        DealWindowStack(window, true);
        window.Show();
        Transform trans = window.transform;

        if (trans == null)
        {
            return(null);
        }
        if (window.MaskType != EWindowMaskType.None)
        {
            GTEventCenter.FireEvent(GTEventID.TYPE_FORCE_STOPJOYSTICK);
        }
        if (window.ShowMode == EWindowShowMode.SaveTarget && m_MutexStacks.Count > 0)
        {
            GTWindow w = m_MutexStacks[m_MutexStacks.Count - 1];
            window.TargetID = w.ID;
        }
        GTCameraManager.Instance.AddUI(trans.gameObject);
        if (m_OpenWindows.Contains(window) == false)
        {
            m_OpenWindows.Add(window);
        }
        RefreshDepth(window);
        DealMask();
        return(window);
    }
Example #2
0
 void DealWindowStack(GTWindow win, bool open)
 {
     if (win.Type != EWindowType.WINDOW)
     {
         return;
     }
     if (open)
     {
         for (int i = 0; i < mOpenWinStack.Count; i++)
         {
             if (mOpenWinStack[i] != win)
             {
                 mOpenWinStack[i].CacheTransform.gameObject.SetActive(false);
             }
         }
         mOpenWinStack.Add(win);
     }
     else
     {
         mOpenWinStack.Remove(win);
         if (mOpenWinStack.Count > 0)
         {
             GTWindow last = mOpenWinStack[mOpenWinStack.Count - 1];
             last.CacheTransform.gameObject.SetActive(true);
         }
     }
 }
Example #3
0
    void DealMask()
    {
        GTWindow needBlackWindow            = null;
        GTWindow needBlackTransparentWindow = null;
        GTWindow needWhiteTransparentWindow = null;
        GTWindow needBlurWindow             = null;

        for (int i = 0; i < m_OpenWindows.Count; i++)
        {
            GTWindow w = m_OpenWindows[i];
            switch (w.MaskType)
            {
            case EWindowMaskType.Black:
                FindMask(ref needBlackWindow, w);
                break;

            case EWindowMaskType.BlackTransparent:
                FindMask(ref needBlackTransparentWindow, w);
                break;

            case EWindowMaskType.WhiteTransparent:
                FindMask(ref needWhiteTransparentWindow, w);
                break;

            case EWindowMaskType.Blur:
                FindMask(ref needBlurWindow, w);
                break;
            }
        }
        LoadMask <MaskBlack>(needBlackWindow, "Guis/Mask/MaskBlack", ref m_Black);
        LoadMask <MaskBlackTransparent>(needBlackTransparentWindow, "Guis/Mask/MaskBlackTransparent", ref m_BlackTransparent);
        LoadMask <MaskWhiteTransparent>(needWhiteTransparentWindow, "Guis/Mask/MaskWhiteTransparent", ref m_WhiteTransparent);
        LoadMask <MaskBlur>(needBlurWindow, "Guis/Mask/MaskBlur", ref m_Blur);
    }
Example #4
0
    public GTWindow GetWindow(EWindowID windowID)
    {
        GTWindow window = null;

        m_AllWindows.TryGetValue(windowID, out window);
        return(window);
    }
Example #5
0
    void RefreshDepth(GTWindow window)
    {
        EWindowType    type  = window.Type;
        List <UIPanel> pList = new List <UIPanel>();

        FindPanels(window, ref pList);

        List <UIPanel> aList = new List <UIPanel>();

        for (int i = 0; i < m_OpenWindows.Count; i++)
        {
            if (m_OpenWindows[i].Type == type)
            {
                FindPanels(m_OpenWindows[i], ref aList);
            }
        }
        for (int i = aList.Count - 1; i >= 0; i--)
        {
            if (aList[i] == null || aList[i].transform == null)
            {
                aList.RemoveAt(i);
            }
        }
        if (pList.Count >= 2)
        {
            pList.Sort(UIPanel.CompareFunc);
        }
        int stDepth = m_MinDepths[type];

        aList.ForEach(item => { stDepth = item.depth > stDepth ? item.depth : stDepth; });
        pList.ForEach(item => { stDepth += 2; item.depth = stDepth; });
        UIPanel.list.Sort(UIPanel.CompareFunc);
    }
Example #6
0
 private void OnBtnMaskClick(GameObject go)
 {
     if (m_TargetWindow != null && m_TargetWindow.OnMaskClick != null)
     {
         m_TargetWindow.OnMaskClick();
         m_TargetWindow = null;
     }
 }
Example #7
0
 public void SetTargetWindow(GTWindow w)
 {
     if (w == null)
     {
         return;
     }
     this.m_TargetWindow = w;
     this.m_Panel.depth  = m_TargetWindow.Panel.depth - 1;
 }
Example #8
0
    public T        GetWindow <T>(EWindowID windowID) where T : GTWindow
    {
        GTWindow baseWindow = null;

        m_AllWindows.TryGetValue(windowID, out baseWindow);
        T window = (T)baseWindow;

        return(window);
    }
Example #9
0
 void FindPanels(GTWindow window, ref List <UIPanel> panels)
 {
     if (window == null || window.Panel == null)
     {
         return;
     }
     panels.AddRange(window.Panel.GetComponents <UIPanel>());
     panels.AddRange(window.Panel.GetComponentsInChildren <UIPanel>());
 }
Example #10
0
 public void SetParent(GTWindow parent)
 {
     if (transform == null)
     {
         return;
     }
     if (parent == null || parent.transform == null)
     {
         return;
     }
     transform.parent = parent.transform;
     HasParentWindow  = true;
 }
Example #11
0
    public void     HideWindow(EWindowID windowID)
    {
        GTWindow window = m_AllWindows[windowID];

        if (window == null)
        {
            return;
        }
        window.HideAsync();
        m_OpenWindows.Remove(window);
        DealWindowStack(window, false);
        DealMask();
    }
Example #12
0
 void DealWindowStack(GTWindow win, bool open)
 {
     if (win.ShowMode != EWindowShowMode.HideOther)
     {
         return;
     }
     if (open)
     {
         if (m_MutexStacks.Count > 0)
         {
             GTWindow w = m_MutexStacks[m_MutexStacks.Count - 1];
             for (int i = 0; i < m_OpenWindows.Count; i++)
             {
                 if (m_OpenWindows[i].ShowMode == EWindowShowMode.SaveTarget &&
                     w.ID == m_OpenWindows[i].TargetID)
                 {
                     m_OpenWindows[i].SetActive(false);
                 }
                 if (m_OpenWindows[i].Type == EWindowType.Window &&
                     m_OpenWindows[i].ShowMode == EWindowShowMode.DoNothing)
                 {
                     m_OpenWindows[i].Hide();
                 }
             }
             w.SetActive(false);
         }
         m_MutexStacks.Add(win);
     }
     else
     {
         m_MutexStacks.Remove(win);
         if (m_MutexStacks.Count > 0)
         {
             GTWindow last = m_MutexStacks[m_MutexStacks.Count - 1];
             last.SetActive(true);
             for (int i = 0; i < m_OpenWindows.Count; i++)
             {
                 if (m_OpenWindows[i].ShowMode == EWindowShowMode.SaveTarget &&
                     m_OpenWindows[i].TargetID == last.ID)
                 {
                     m_OpenWindows[i].SetActive(true);
                 }
             }
         }
     }
 }
Example #13
0
 void FindMask(ref GTWindow needWindow, GTWindow w)
 {
     if (w.IsVisable() == false)
     {
         return;
     }
     if (needWindow == null)
     {
         needWindow = w;
     }
     else
     {
         if (needWindow.Panel.depth < w.Panel.depth)
         {
             needWindow = w;
         }
     }
 }
Example #14
0
 private void Switch(Func func)
 {
     if (mSelectFunc == func)
     {
         return;
     }
     if (mSelectFunc != Func.Func_None)
     {
         EWindowID id = mFuncWindows[mSelectFunc];
         GTWindowManager.Instance.CloseWindow(id);
     }
     mSelectFunc = func;
     if (mSelectFunc != Func.Func_None)
     {
         EWindowID newID  = mFuncWindows[mSelectFunc];
         GTWindow  window = GTWindowManager.Instance.OpenWindow(newID);
         window.SetParent(this);
     }
 }
Example #15
0
 private void LoadLeftWindow(EBagType bagType)
 {
     if (bagType == mShow)
     {
         return;
     }
     if (mLeftWindows.ContainsKey(mShow))
     {
         EWindowID closeWindowID = mLeftWindows[mShow];
         GTWindowManager.Instance.CloseWindow(closeWindowID);
     }
     if (mLeftWindows.ContainsKey(bagType))
     {
         EWindowID openWindowID = mLeftWindows[bagType];
         GTWindow  window       = GTWindowManager.Instance.OpenWindow(openWindowID);
         window.SetParent(this);
     }
     mShow = bagType;
 }
Example #16
0
    public void     CloseWindow(EWindowID windowID)
    {
        GTWindow window = mAllWindows[windowID];

        if (window == null)
        {
            return;
        }
        EWindowType type = window.Type;

        window.Close();
        List <GTWindow> list = null;

        mOpenWindows.TryGetValue(type, out list);
        if (list != null)
        {
            list.Remove(window);
        }
        DealWindowStack(window, false);
    }
Example #17
0
 void LoadMask <T>(GTWindow needWindow, string path, ref T mask) where T : MaskGUI
 {
     if (needWindow != null)
     {
         if (mask == null)
         {
             mask = GTResourceManager.Instance.Load <GameObject>(path, true).GetComponent <T>();
             GTCameraManager.Instance.AddUI(mask.gameObject);
         }
         if (mask != null)
         {
             mask.gameObject.SetActive(true);
             mask.SetTargetWindow(needWindow);
         }
     }
     else
     {
         if (mask != null)
         {
             mask.gameObject.SetActive(false);
         }
     }
 }
Example #18
0
    public GTWindow OpenWindow(EWindowID windowID)
    {
        if (!mAllWindows.ContainsKey(windowID))
        {
            return(null);
        }
        GTWindow window = mAllWindows[windowID];

        DealWindowStack(window, true);
        window.Show();
        Transform trans = window.CacheTransform;

        if (trans == null)
        {
            return(null);
        }
        if (window.Type == EWindowType.WINDOW)
        {
            CloseAllWindowByType(EWindowType.DIALOG);
        }
        if (window.Type == EWindowType.WINDOW || window.Type == EWindowType.DIALOG)
        {
            GTEventCenter.FireEvent(GTEventID.TYPE_STOP_JOYSTICK);
        }
        GTCameraManager.Instance.AddUI(trans.gameObject);
        List <GTWindow> list = null;

        mOpenWindows.TryGetValue(window.Type, out list);
        if (list == null)
        {
            list = new List <GTWindow>();
            mOpenWindows[window.Type] = list;
        }
        list.Add(window);
        RefreshDepth(window);
        return(window);
    }
Example #19
0
        public override bool Check()
        {
            GTWindow window = GTWindowManager.Instance.GetWindow(WindowID);

            return(window == null ? false : window.IsVisable());
        }
Example #20
0
 void RegisterWindow(EWindowID id, GTWindow win)
 {
     m_AllWindows[id] = win;
     win.ID           = id;
 }