Esempio n. 1
0
        /// <summary>
        /// 使用默认或设定好的
        /// </summary>
        /// <typeparam name="T"></typeparam>
        public void HideWindow <T>() where T : UIWndBase
        {
            UIWndBase wnd = null;

            if (mWindowDic.TryGetValue(typeof(T), out wnd))
            {
                wnd.HideWnd();
            }
        }
Esempio n. 2
0
 /// <summary>
 /// 隐藏全部窗口 默认或设定的方式
 /// </summary>
 /// <param name="wnd"></param>
 /// <returns></returns>
 public void HideWindow(UIWndBase wnd)
 {
     foreach (Type t in mWindowDic.Keys.ToArray())
     {
         if (mWindowDic[t] == wnd)
         {
             mWindowDic[t].HideWnd();
             break;
         }
     }
 }
Esempio n. 3
0
        /// <summary>
        /// 注册窗口 保存缓存
        /// </summary>
        /// <param name="wnd"></param>
        void RegisterWindow(UIWndBase wnd)
        {
            Type t = wnd.GetType();

            mWindowDic.Add(t, wnd);
            mContextDic.Add(t, wnd.m_Context);

            if (mWindowQueue != null)
            {
                mWindowQueue.Enqueue(t);
                if (mWindowQueue.Count > hideMax)
                {
                    Type type = mWindowQueue.Dequeue();
                    mWindowDic.Remove(type);
                    DestroyWindow(type);
                }
            }
            // wnd.DestroyWndHandler = (wd, e) => { RemoveWindow(wd); };
        }