示例#1
0
        public void Init(WindowID wndId)
        {
            bool bContain = LocalDataManager.Instance().m_UIFrame_Dict.ContainsKey(wndId.ToString());

            if (!bContain)
            {
                ShowFrame(false);
                Debug.LogWarning(string.Format("该窗口{0}, 还没加入到UIFrame中", wndId.ToString()));
                return;
            }

            dbc.UIFrame frame = LocalDataManager.Instance().m_UIFrame_Dict[wndId.ToString()];
            //没有Frame的窗口
            if (frame.FrameType == 0)
            {
                ShowFrame(false);
            }
            //根据窗口类型显示不同的排版显示
            //type = 1 顶栏显示 ,其他类型暂时没写
            else if (frame.FrameType == 1)
            {
                //跟上一次的一样直接显示
                if (m_LastFrame != null && m_LastFrame.BarContent.Equals(frame.BarContent))
                {
                    ShowFrame(true);
                }
                else
                {
                    ShowFrame(GetFrameItemArray(frame));
                }
            }
            m_LastFrame = frame;
        }
示例#2
0
        public override void ShowWindow(WindowID id, ShowWindowData data)
        {
            if (!IsWindowInControl(id))
            {
                Debug.Log("UIRankManager has no control power of " + id.ToString());
                return;
            }
            if (shownWindows.ContainsKey(id))
            {
                return;
            }
            if (allWindows.ContainsKey(id))
            {
                UIBaseWindow baseWindow = allWindows[id];
                if (baseWindow.windowData.showMode == UIWindowShowMode.NeedBack)
                {
                    BackWindowSequenceData backData = new BackWindowSequenceData();
                    backData.hideTargetWindow = baseWindow;
                    backSequence.Push(backData);
                }
                allWindows[id].ShowWindow();
                shownWindows[id] = allWindows[id];

                this.lastShownNormalWindow = this.curShownNormalWindow;
                curShownNormalWindow       = baseWindow;
            }
        }
示例#3
0
    public BaseWindow OpenWindow(WindowID windowID)
    {
        if (!mAllWindows.ContainsKey(windowID))
        {
            return(null);
        }

        BaseWindow window = mAllWindows[windowID];

        DealWindowStack(window, true);

        window.Show();
        Transform trans = window.CacheTransform;

        CameraManage.Instance.AddUI(trans.gameObject);
        List <BaseWindow> list = null;

        mOpenWindows.TryGetValue(window.Type, out list);
        if (list == null)
        {
            list = new List <BaseWindow>();
            mOpenWindows[window.Type] = list;
        }
        list.Add(window);
        return(window);
    }
 public override void ShowWindow(WindowID id, ShowWindowData showData)
 {
     if (!IsWindowInControl(id))
     {
         Debuger.Log("UIRankManager has no control power of " + id.ToString());
         return;
     }
     if (dicShownWindows.ContainsKey((int)id))
         return;
     if (dicAllWindows.ContainsKey((int)id))
     {
         UIBaseWindow baseWindow = dicAllWindows[(int)id];
         if (baseWindow.ID != id)
         {
             Debuger.LogError(string.Format("[UIRankManager BaseWindowId :{0} != shownWindowId :{1}]", baseWindow.ID, id));
             return;
         }
         if (baseWindow.windowData.navigationMode == UIWindowNavigationMode.NormalNavigation)
         {
             BackWindowSequenceData backData = new BackWindowSequenceData();
             backData.hideTargetWindow = baseWindow;
             backSequence.Push(backData);
         }
         this.RealShowWindow(baseWindow, baseWindow.ID, showData);
     }
 }
示例#5
0
    private void PopNavigationUI(NavigationData nd)
    {
        if (backSequence.Count > 0)
        {
            backSequence.Pop();
        }

        if (nd.beingHidedUI == null)
        {
            return;
        }

        //显示所有的保存的UI
        for (int i = 0; i < nd.beingHidedUI.Count; i++)
        {
            WindowID backId = nd.beingHidedUI[i];
            ShowWindowForNavigation(backId);
            if (i == nd.beingHidedUI.Count - 1)
            {
                UIControllerBase window = GetGameWindowFromCache(backId);
                if (window.UIConfigData.navigationMode == UIWindowNavigationMode.NormalNavigation)
                {
                    this.lastNavigationWindow = this.curNavigationWindow;
                    this.curNavigationWindow  = window;
                }
            }
        }
    }
示例#6
0
 public override void ShowWindow(WindowID id, ShowWindowData showData)
 {
     if (!IsWindowInControl(id))
     {
         Debuger.Log("UIRankManager has no control power of " + id.ToString());
         return;
     }
     if (dicShownWindows.ContainsKey((int)id))
     {
         return;
     }
     if (dicAllWindows.ContainsKey((int)id))
     {
         UIBaseWindow baseWindow = dicAllWindows[(int)id];
         if (baseWindow.ID != id)
         {
             Debuger.LogError(string.Format("[UIRankManager BaseWindowId :{0} != shownWindowId :{1}]", baseWindow.ID, id));
             return;
         }
         if (baseWindow.windowData.navigationMode == UIWindowNavigationMode.NormalNavigation)
         {
             BackWindowSequenceData backData = new BackWindowSequenceData();
             backData.hideTargetWindow = baseWindow;
             backSequence.Push(backData);
         }
         this.RealShowWindow(baseWindow, baseWindow.ID, showData);
     }
 }
示例#7
0
    /// <summary>
    /// Hide target window
    /// </summary>
    public virtual void HideWindow(WindowID id, Action onCompleted = null)
    {
        if (!IsWindowRegistered(id))
        {
            return;
        }

        if (!dicShownWindows.ContainsKey((int)id))
        {
            return;
        }

        if (dicShownWindows.ContainsKey((int)id))
        {
            //关闭后 从显示字典删除
            Action competedAction = delegate
            {
                dicShownWindows.Remove((int)id);
            };

            if (onCompleted != null)
            {
                competedAction += onCompleted;
            }

            dicShownWindows[(int)id].HideWindow(competedAction);
        }
    }
示例#8
0
    public BaseWindow GetWindow(WindowID windowID)
    {
        BaseWindow window = null;

        mAllWindows.TryGetValue(windowID, out window);
        return(window);
    }
示例#9
0
        /// <summary>
        /// 预加载指定窗口
        /// </summary>
        /// <param name="winId"></param>
        public static void PreloadWindow(WindowID winId)
        {
            IView viewInstance = CtrlManager.GetViewInstance(winId);

            viewInstance.WinId = winId;
            UIManager.Instance.PreloadWindow(viewInstance.WinId.ToString(), viewInstance.WinResCfg);
        }
示例#10
0
        private void RefreshBackSequenceData(UIBaseWindow targetWindow, ShowWindowData showData)
        {
            WindowCoreData coreData         = targetWindow.windowData;
            bool           dealBackSequence = true;

            if (dicShownWindows.Count > 0 && dealBackSequence)
            {
                List <WindowID>     removedKey          = null;
                List <UIBaseWindow> sortedHiddenWindows = new List <UIBaseWindow>();

                BackWindowSequenceData backData = new BackWindowSequenceData();
                foreach (KeyValuePair <int, UIBaseWindow> window in dicShownWindows)
                {
                    if (coreData.showMode != UIWindowShowMode.DoNothing)
                    {
                        if (window.Value.windowData.windowType == UIWindowType.Fixed)
                        {
                            continue;
                        }
                        if (removedKey == null)
                        {
                            removedKey = new List <WindowID>();
                        }
                        removedKey.Add((WindowID)window.Key);
                        window.Value.HideWindowDirectly();
                    }

                    if (window.Value.windowData.windowType != UIWindowType.Fixed)
                    {
                        sortedHiddenWindows.Add(window.Value);
                    }
                }

                if (removedKey != null)
                {
                    for (int i = 0; i < removedKey.Count; i++)
                    {
                        dicShownWindows.Remove((int)removedKey[i]);
                    }
                }

                // Push new navigation data
                if (coreData.navigationMode == UIWindowNavigationMode.NormalNavigation &&
                    (showData == null || (!showData.ignoreAddNavData)))
                {
                    // Add to return show target list
                    sortedHiddenWindows.Sort(this.compareWindowFun);
                    List <WindowID> navHiddenWindows = new List <WindowID>();
                    for (int i = 0; i < sortedHiddenWindows.Count; i++)
                    {
                        WindowID pushWindowId = sortedHiddenWindows[i].ID;
                        navHiddenWindows.Add(pushWindowId);
                    }
                    backData.hideTargetWindow = targetWindow;
                    backData.backShowTargets  = navHiddenWindows;
                    backSequence.Push(backData);
                    Debuger.Log("<color=cyan>### !!!Push new Navigation data!!! ###</color>");
                }
            }
        }
示例#11
0
 private static void OnCloseWindow(CloseWindowEventArgs args)
 {
     if (args.IsSuccess)
     {
         WindowID key = (WindowID)((int)Enum.Parse(typeof(WindowID), args.WinName));
         if (CtrlManager.mDicWindCtrls.ContainsKey(key))
         {
             IView view = CtrlManager.mDicWindCtrls[key];
             view.HandleBeforeCloseView();
             view.IsOpened = false;
             view.CancelUpdateHandler();
             if (args.IsRestart)
             {
                 view.OnRestart();
             }
             if (args.IsDestroy)
             {
                 view.Destroy();
                 CtrlManager.mDicWindCtrls.Remove(key);
             }
             CtrlManager.mDicOpenCtrls.Remove(key);
         }
     }
     else
     {
         WindowID key2 = (WindowID)((int)Enum.Parse(typeof(WindowID), args.WinName));
         if (CtrlManager.mDicWindCtrls.ContainsKey(key2))
         {
             CtrlManager.mDicWindCtrls.Remove(key2);
         }
     }
 }
示例#12
0
 /// <summary>
 /// 打开指定窗口,使用指定视图控制器
 /// </summary>
 /// <param name="winId"></param>
 /// <param name="ctrl"></param>
 public static void OpenWindow(WindowID winId, IView ctrl = null)
 {
     try
     {
         if (CtrlManager.mDicOpenCtrls.ContainsKey(winId))
         {
             if (winId == WindowID.TipView)
             {
                 CtrlManager.OnOpenWindow(new OpenWindowEventArgs(true, winId.ToString(), CtrlManager.mDicOpenCtrls[winId].uiWindow));
             }
         }
         else
         {
             IView view = ctrl;
             if (view == null)
             {
                 view = CtrlManager.GetViewInstance(winId);
             }
             view.WinId = winId;
             CtrlManager.mDicWindCtrls[winId] = view;
             UIManager.Instance.OpenWindow(view.WinId.ToString(), view.WinResCfg);
         }
     }
     catch (Exception e)
     {
         ClientLogger.LogException(e);
     }
 }
示例#13
0
        private void ExectuteBackSeqData(NavigationData nd)
        {
            //
            // stack count check
            ///
            if (backSequence.Count > 0)
            {
                backSequence.Pop();
            }
            if (nd.backShowTargets == null)
            {
                return;
            }

            for (int i = 0; i < nd.backShowTargets.Count; i++)
            {
                WindowID backId = nd.backShowTargets[i];
                ShowWindowForNavigation(backId);
                if (i == nd.backShowTargets.Count - 1)
                {
                    UIWindowBase window = GetGameWindow(backId);
                    if (window.windowData.navigationMode == UIWindowNavigationMode.NormalNavigation)
                    {
                        this.lastNavigationWindow = this.curNavigationWindow;
                        this.curNavigationWindow  = window;
                        Debug.Log("<color=magenta>##[UIManagerBase return window]##</color> Change currentShownNormalWindow : " + backId);
                    }
                }
            }
        }
示例#14
0
        public void CloseWindow(WindowID wndId)
        {
            if (!IsWindowInControl(wndId))
            {
                Debuger.LogError("## Current UI Manager has no control power of " + wndId.ToString());
                return;
            }

            if (!dicShownWindows.ContainsKey((int)wndId))
            {
                return;
            }

            UIBaseWindow window = dicShownWindows[(int)wndId];

            if (this.backSequence.Count > 0)
            {
                BackWindowSequenceData seqData = this.backSequence.Peek();
                if (seqData != null && seqData.hideTargetWindow == window)
                {
                    PopNavigationWindow();
                    Debuger.Log("<color=magenta>## close window use PopNavigationWindow() ##</color>");
                    return;
                }
            }
            HideWindow(wndId);
            Debuger.Log("<color=magenta>## close window without PopNavigationWindow() ##</color>");
        }
示例#15
0
    /// <summary>
    /// 设置界面显示
    /// </summary>
    /// <param name="id">界面id</param>
    public void SetTheActive(WindowID id)
    {
        //显示界面
        SetTheActive(id, ref _prefab_Dictionary, true);

        if (TheActiveStack.Count > 0)
        {
            WindowID current_ID = TheActiveStack.Peek();
            //若打开界面与前一界面层级相同,关闭前一界面
            if (UIResourceDefine.windowLayer[current_ID] == UIResourceDefine.windowLayer[id])
            {
                if (current_ID != id)
                {
                    SetTheActive(current_ID, ref _prefab_Dictionary, false);
                }
            }
            else
            {
                //层级不同,则开启遮罩层
                SetTheActive(WindowID.WindowID_MyMask, ref _prefab_Dictionary, true);
            }
        }

        if (!TheActiveStack.Contains(id))
        {
            //将显示界面加入栈中
            TheActiveStack.Push(id);
        }
    }
示例#16
0
        private void InitGUI()
        {
            //Coordinate Select
            ChaFileDefine.CoordinateType[] coordinateList = new ChaFileDefine.CoordinateType[]
            {
                ChaFileDefine.CoordinateType.School01,
                ChaFileDefine.CoordinateType.School02,
                ChaFileDefine.CoordinateType.Gym,
                ChaFileDefine.CoordinateType.Swim,
                ChaFileDefine.CoordinateType.Club,
                ChaFileDefine.CoordinateType.Plain,
                ChaFileDefine.CoordinateType.Pajamas,
            };
            List <string> coordinateStringList = new List <string>();

            for (int i = 0; i < coordinateList.Count(); i++)
            {
                coordinateStringList.Add(coordinateList[i].ToString());
            }
            coordinateSelect = new CoordinateSelect(coordinateStringList.ToArray(), coordinateList, "");

            //Preset select
            presetSelectBust = new PresetSelect(PluginPath.presetDirBust, "Load Bust preset", 0, 20);
            presetSelectHip  = new PresetSelect(PluginPath.presetDirHip, "Load Hip preset", 0, 20);

            //Save dialog
            s_dialog = new DialogSavePreset(_parent, _s_dialogID, "Save preset", SDRect);

            //message box
            msgBox = new MessageBox(WindowID.GetNewID());
        }
示例#17
0
        public override void ShowWindow(WindowID id, ShowWindowData data)
        {
            if (!IsWindowInControl(id))
            {
                Debug.Log("UIRankManager has no control power of " + id.ToString());
                return; 
            }
            if (shownWindows.ContainsKey(id))
                return;
            if (allWindows.ContainsKey(id))
            {
                UIBaseWindow baseWindow = allWindows[id];
                if (baseWindow.windowData.showMode == UIWindowShowMode.NeedBack)
                {
                    BackWindowSequenceData backData = new BackWindowSequenceData();
                    backData.hideTargetWindow = baseWindow;
                    backSequence.Push(backData);
                }
                allWindows[id].ShowWindow();
                shownWindows[id] = allWindows[id];

                this.lastShownNormalWindow = this.curShownNormalWindow;
                curShownNormalWindow = baseWindow;
            }
        }
示例#18
0
        protected override UIBaseWindow ReadyToShowBaseWindow(WindowID id, ShowWindowData showData = null)
        {
            // 检测控制权限
            if (!this.IsWindowInControl(id))
            {
                Debug.Log("UIManager has no control power of " + id.ToString());
                return(null);
            }
            if (shownWindows.ContainsKey(id))
            {
                return(null);
            }

            UIBaseWindow baseWindow = GetGameWindow(id);
            bool         newAdded   = false;

            if (!baseWindow)
            {
                newAdded = true;
                // 窗口不存在从内存进行加载
                if (UIResourceDefine.windowPrefabPath.ContainsKey(id))
                {
                    string     prefabPath = UIResourceDefine.UIPrefabPath + UIResourceDefine.windowPrefabPath[id];
                    GameObject prefab     = Resources.Load <GameObject>(prefabPath);
                    if (prefab != null)
                    {
                        GameObject uiObject = (GameObject)GameObject.Instantiate(prefab);
                        NGUITools.SetActive(uiObject, true);
                        baseWindow = uiObject.GetComponent <UIBaseWindow>();
                        // 需要动态添加对应的控制界面,prefab不用添加脚本
                        Transform targetRoot = GetTargetRoot(baseWindow.windowData.windowType);
                        GameUtility.AddChildToTarget(targetRoot, baseWindow.gameObject.transform);
                        allWindows[id] = baseWindow;
                    }
                }
            }

            if (baseWindow == null)
            {
                Debug.LogError("[window instance is null.]" + id.ToString());
            }

            // 重置界面(第一次添加,强制Reset)
            if (newAdded || (showData != null && showData.forceResetWindow))
            {
                baseWindow.ResetWindow();
            }

            // 显示界面固定内容


            // 导航系统数据更新
            RefreshBackSequenceData(baseWindow);
            // 调整层级depth
            AdjustBaseWindowDepth(baseWindow);
            // 添加背景Collider
            AddColliderBgForWindow(baseWindow);
            return(baseWindow);
        }
示例#19
0
 public void RemoveView(WindowID windowID)
 {
     if (window_View.ContainsKey(windowID))
     {
         NGUITools.Destroy(window_View[windowID]);
         window_View.Remove(windowID);
     }
 }
 private void OnWindowClose(WindowID closeID, List <WindowID> holdlist)
 {
     if ((holdlist.Count == 1) && (((WindowID)holdlist[0]) == WindowID.WindowID_Main))
     {
         this.bCheckOnlyMain = true;
         this.bOnlyMain      = true;
     }
 }
示例#21
0
 /// <summary>
 /// 关闭指定窗口
 /// </summary>
 /// <param name="winId"></param>
 public static void CloseWindow(WindowID winId)
 {
     if (!CtrlManager.mDicOpenCtrls.ContainsKey(winId))
     {
         return;
     }
     UIManager.Instance.CloseWindow(winId.ToString());
 }
示例#22
0
 private static void CloseCurrencyInternal()
 {
     if (mCurrentCurrencyID != WindowID.WindowID_Invaild)
     {
         CloseWindow(mCurrentCurrencyID);
         mCurrentCurrencyID = WindowID.WindowID_Invaild;
     }
 }
 private void OnWindowOpen(WindowID openID, List <WindowID> holdlist)
 {
     if (openID != WindowID.WindowID_Main)
     {
         this.bCheckOnlyMain = false;
         this.bOnlyMain      = false;
     }
 }
 public override void ShowWindow(WindowID id, ShowWindowData showData = null)
 {
     UIBaseWindow baseWindow = ReadyToShowBaseWindow(id, showData);
     if (baseWindow != null)
     {
         RealShowWindow(baseWindow, id, showData);
     }
 }
示例#25
0
    protected bool PopNavigationWindow()
    {
        #region 导航信息为空
        if (backSequence.Count == 0)
        {
            if (curNavigationWindow == null)
            {
                return(false);
            }

            //如果当前navigation的栈是空, 就检查当前UI的配置PrewindowID, 打开
            WindowID preWindowId = curNavigationWindow.UIConfigData.PreWindowId;
            if (preWindowId != WindowID.WindowID_Invaild)
            {
                Debug.LogWarning(string.Format(string.Format("## Current nav window {0} need show pre window {1}.", curNavigationWindow.ID.ToString(), preWindowId.ToString())));
                HideWindow(curNavigationWindow.ID, delegate
                {
                    //不执行导航
                    WindowContextDataBase showData = new WindowContextDataBase();
                    showData.executeNavLogic       = false;
                    ShowWindow(preWindowId, showData);
                });
            }
            else
            {
                Debug.LogWarning("## CurrentShownWindow " + curNavigationWindow.ID + " preWindowId is " + WindowID.WindowID_Invaild);
            }
            return(false);
        }
        #endregion

        NavigationData backData = backSequence.Peek();
        if (backData != null)
        {
            // check the current navigation data
            int curId = this.GetCurrentShownWindow();
            if (curId != (int)backData.showingUI.ID)
            {
                Debug.Log("<color=red>当前导航Stack里面信息不对 [backData.showingUI.ID != this.curShownWindowId]</color>");
                return(false);
            }

            //关闭当前的UI, 恢复显示stack里面保存的UI
            WindowID showingId = backData.showingUI.ID;
            if (!dicShownWindows.ContainsKey((int)showingId))
            {
                PopNavigationUI(backData);
            }
            else
            {
                HideWindow(showingId, delegate
                {
                    PopNavigationUI(backData);
                });
            }
        }
        return(true);
    }
示例#26
0
文件: UIManager.cs 项目: sora929/TSC
    protected override UIBaseWindow ReadyToShowBaseWindow(WindowID id)
    {
        // 检测控制权限
        if (!this.IsWindowInControl(id))
        {
            Debug.Log("UIManager has no control power of " + id.ToString());
            return(null);
        }
        if (ShownWindows.ContainsKey(id))
        {
            return(null);
        }

        // 隐藏callWindowId指向窗口

        /*if(showData != null)
         *  HideWindow(showData.callWindowId, null);*/

        UIBaseWindow baseWindow = GetGameWindow(id);
        bool         newAdded   = false;

        if (!baseWindow)
        {
            newAdded = true;
            // 窗口不存在从内存进行加载
            if (AppConst.windowPrefabPath.ContainsKey(id))
            {
                GameObject prefab = ResourcesMgr.Instance.LoadResource <GameObject>(ResourceType.RESOURCE_UI, AppConst.windowPrefabPath[id]);
                if (prefab != null)
                {
                    GameObject uiObject = (GameObject)GameObject.Instantiate(prefab);
                    Util.SetActive(uiObject, true);
                    baseWindow = uiObject.GetComponent <UIBaseWindow>();
                    Util.AddChildToTarget(UINormalWindowRoot, baseWindow.transform);
                    AllWindows[id] = baseWindow;
                }
            }
        }

        if (baseWindow == null)
        {
            Debug.LogError("[window instance is null.]" + id.ToString());
            return(null);
        }

        if (newAdded)
        {
            baseWindow.ResetWindow();
        }

        //// 导航系统数据更新
        //RefreshBackSequenceData(baseWindow);
        //// 调整层级depth
        //AdjustBaseWindowDepth(baseWindow);
        //// 添加背景Collider
        //AddColliderBgForWindow(baseWindow);
        return(baseWindow);
    }
示例#27
0
 public void OpenWindow(WindowID ID)
 {
     if (BlockLobbyWindows)
     {
         return;
     }
     CloseWindows();
     ID.Ventana.SetActive(true);
 }
示例#28
0
        public override void ShowWindow(WindowID id, ShowWindowData showData = null)
        {
            UIBaseWindow baseWindow = ReadyToShowBaseWindow(id, showData);

            if (baseWindow != null)
            {
                RealShowWindow(baseWindow, id, showData);
            }
        }
示例#29
0
    public void ShowWindow(WindowID id, WindowContextDataBase showContextData = null)
    {
        UIControllerBase baseWindow = PrepareUI(id, showContextData);

        if (baseWindow != null)
        {
            Show(baseWindow, id, showContextData);
        }
    }
示例#30
0
文件: Layout.cs 项目: tijonx/tvrename
 public LayoutInfo()
 {
     this.mColWidths = new System.Collections.Generic.List <int>();
     this.mWindowID  = WindowID.kUnknown;
     this.mMaximised = false;
     this.mSize      = new Size(-1, -1);
     this.mLocation  = new Point(-1, -1);
     this.mLocked    = true;
 }
示例#31
0
 public LayoutInfo()
 {
     this.mColWidths = new System.Collections.Generic.List<int>();
     this.mWindowID = WindowID.kUnknown;
     this.mMaximised = false;
     this.mSize = new Size(-1, -1);
     this.mLocation = new Point(-1, -1);
     this.mLocked = true;
 }
示例#32
0
        protected override UIBaseWindow ReadyToShowBaseWindow(WindowID id, ShowWindowData showData = null)
        {
            // 检测控制权限
            if (!this.IsWindowInControl(id))
            {
                Debug.Log("UIManager has no control power of " + id.ToString());
                return null;
            }
            if (shownWindows.ContainsKey(id))
                return null;

            // 隐藏callWindowId指向窗口
            /*if(showData != null)
                HideWindow(showData.callWindowId, null);*/

            UIBaseWindow baseWindow = GetGameWindow(id);
            bool newAdded = false;
            if (!baseWindow)
            {
                newAdded = true;
                // 窗口不存在从内存进行加载
                if (UIResourceDefine.windowPrefabPath.ContainsKey(id))
                {
                    string prefabPath = UIResourceDefine.UIPrefabPath + UIResourceDefine.windowPrefabPath[id];
                    GameObject prefab = Resources.Load<GameObject>(prefabPath);
                    if (prefab != null)
                    {
                        GameObject uiObject = (GameObject)GameObject.Instantiate(prefab);
                        NGUITools.SetActive(uiObject, true);
                        baseWindow = uiObject.GetComponent<UIBaseWindow>();
                        // 需要动态添加对应的控制界面,prefab不用添加脚本
                        Transform targetRoot = GetTargetRoot(baseWindow.windowData.windowType);
                        GameUtility.AddChildToTarget(targetRoot, baseWindow.gameObject.transform);
                        allWindows[id] = baseWindow;
                    }
                }
            }

            if (baseWindow == null)
                Debug.LogError("[window instance is null.]" + id.ToString());

            // 重置界面(第一次添加,强制Reset)
            if (newAdded || (showData != null && showData.forceResetWindow))
                baseWindow.ResetWindow();

            // 显示界面固定内容


            // 导航系统数据更新
            RefreshBackSequenceData(baseWindow);
            // 调整层级depth
            AdjustBaseWindowDepth(baseWindow);
            // 添加背景Collider
            AddColliderBgForWindow(baseWindow);
            return baseWindow;
        }
示例#33
0
 public void SendWindowMsg(WindowID targetWindow, WindowMessage msg, params object[] args)
 {
     if (!AllWindowScript.ContainsKey(targetWindow)) {
         return;
     }
     if (!AllWindowScript[targetWindow]) {
         return;
     }
     AllWindowScript[targetWindow].SendWindowMsg(msg, args);
 }
示例#34
0
        public virtual T GetGameWindowScript <T>(WindowID id) where T : UIWindowBase
        {
            UIWindowBase baseWindow = GetGameWindow(id);

            if (baseWindow != null)
            {
                return((T)baseWindow);
            }
            return((T)((object)null));
        }
示例#35
0
 /// <summary>
 /// 从控制器管理器中移除指定窗口ID对应的视图控制器
 /// </summary>
 /// <param name="winId"></param>
 public static void RemoveCtrl(WindowID winId)
 {
     if (CtrlManager.mDicWindCtrls.ContainsKey(winId))
     {
         CtrlManager.mDicWindCtrls.Remove(winId);
     }
     if (CtrlManager.mDicOpenCtrls.ContainsKey(winId))
     {
         CtrlManager.mDicOpenCtrls.Remove(winId);
     }
 }
示例#36
0
 public bool Exist(WindowID id)
 {
     foreach (var v in cacheWndDict)
     {
         if (id == v.Value.wndID)
         {
             return(true);
         }
     }
     return(false);
 }
示例#37
0
文件: Layout.cs 项目: mudboy/tvrename
 public LayoutInfo Get(WindowID id)
 {
     for (int i = 0; i < this.mLayouts.Count; i++)
     {
         if (this.mLayouts[i].mWindowID == id)
             return this.mLayouts[i];
     }
     LayoutInfo li = new LayoutInfo();
     li.mWindowID = id;
     this.mLayouts.Add(li);
     return li;
 }
示例#38
0
 public void CloseWindow(WindowID id)
 {
     Debug.Log("CloseWindow [" + id + "]");
     if (!AllWindowScript.ContainsKey(id)) {
         Debug.LogError("窗口 " + id + " 不存在");
         return;
     }
     if (!AllWindowScript[id].gameObject) {
         Debug.LogError("窗口  " + id + "  物体为空");
         return;
     }
     AllWindowScript[id].gameObject.SetActive(false);
     AllWindowScript[id].DisableTime = Time.time;
 }
示例#39
0
        public override void ShowWindow(WindowID id, ShowWindowData data = null)
        {
            UIBaseWindow baseWindow = ReadyToShowBaseWindow(id, data);
            if (baseWindow != null)
            {
                RealShowWindow(baseWindow, id);
                
                // 是否清空当前导航信息(回到主菜单)
                if (baseWindow.windowData.isStartWindow)
                {
                    Debuger.Log("[Enter the start window, reset the backSequenceData for the navigation system.]");
                    ClearBackSequence();
                }

                if (data != null && data.forceClearBackSeqData)
                    ClearBackSequence();
            }
        }
        public void SetMatchResult(bool isWin, WindowID backWindowId)
        {
            targetBackWindowId = backWindowId;
            if (isWin)
            {
                NGUITools.SetActive(gbLoseContent, false);
                NGUITools.SetActive(gbWinContent, true);

                lbResultMsg.text = "Win the matching Feel Good.";
                lbResult.text = "WIN";
            }
            else
            {
                NGUITools.SetActive(gbLoseContent, true);
                NGUITools.SetActive(gbWinContent, false);

                lbResult.text = "LOSE";
                lbResultMsg.text = "Lose the matching Do better next Time.";
            }
        }
示例#41
0
文件: Layout.cs 项目: mudboy/tvrename
        public bool Load(StreamReader sr)
        {
            string l1;
            while ((l1 = sr.ReadLine()) != null)
            {
                if (l1 == "--")
                    return true;
                int p = l1.IndexOf('=');
                if (p == -1)
                    continue;

                string what = l1.Substring(0, p);
                l1 = l1.Substring(p + 1);

                switch (what)
                {
                    case "ColWidths":
                        while ((p = l1.IndexOf(' ')) != -1)
                        {
                            int n = int.Parse(l1.Substring(0, p));
                            l1 = l1.Substring(p + 1);
                            this.mColWidths.Add(n);
                        }
                        break;
                    case "Maximised":
                        this.mMaximised = l1 == "1";
                        break;
                    case "Size":
                        {
                            p = l1.IndexOf(' ');
                            int x = int.Parse(l1.Substring(0, p));
                            int y = int.Parse(l1.Substring(p + 1));
                            this.mSize = new System.Drawing.Size(x, y);
                        }
                        break;
                    case "Location":
                        {
                            p = l1.IndexOf(' ');
                            int x = int.Parse(l1.Substring(0, p));
                            int y = int.Parse(l1.Substring(p + 1));
                            this.mLocation = new Point(x, y);
                        }
                        break;
                    case "WindowID":
                        {
                            int n = int.Parse(l1);
                            this.mWindowID = (WindowID) n;
                        }
                        break;
                }
            }
            return false;
        }
示例#42
0
 public override void HideWindow(WindowID id, System.Action onComplete)
 {
     CheckDirectlyHide(id, onComplete);
 }
示例#43
0
 public void SetMatchingData(WindowID backIWindowId)
 {
     targetBackWindowId = backIWindowId;
 }
 public override void HideWindow(WindowID id, Action onComplete = null)
 {
     CheckDirectlyHide(id, onComplete);
 }
        protected override UIBaseWindow ReadyToShowBaseWindow(WindowID id, ShowWindowData showData = null)
        {
            // Check the window control state
            if (!this.IsWindowInControl(id))
            {
                Debuger.Log("## UIManager has no control power of " + id.ToString());
                return null;
            }

            // If the window in shown list just return
            if (dicShownWindows.ContainsKey((int)id))
                return null;

            UIBaseWindow baseWindow = GetGameWindow(id);

            // If window not in scene start Instantiate new window to scene
            bool newAdded = false;
            if (!baseWindow)
            {
                newAdded = true;
                if (UIResourceDefine.windowPrefabPath.ContainsKey((int)id))
                {
                    string prefabPath = UIResourceDefine.UIPrefabPath + UIResourceDefine.windowPrefabPath[(int)id];
                    GameObject prefab = Resources.Load<GameObject>(prefabPath);
                    if (prefab != null)
                    {
                        GameObject uiObject = (GameObject)GameObject.Instantiate(prefab);
                        NGUITools.SetActive(uiObject, true);
                        // NOTE: You can add component to the window in the inspector
                        // Or just AddComponent<UIxxxxWindow>() to the target
                        baseWindow = uiObject.GetComponent<UIBaseWindow>();
                        if (baseWindow.ID != id)
                        {
                            Debuger.LogError(string.Format("<color=cyan>[BaseWindowId :{0} != shownWindowId :{1}]</color>", baseWindow.ID, id));
                            return null;
                        }
                        // Get the window target root parent
                        Transform targetRoot = GetTargetRoot(baseWindow.windowData.windowType);
                        GameUtility.AddChildToTarget(targetRoot, baseWindow.gameObject.transform);
                        dicAllWindows[(int)id] = baseWindow;
                    }
                }
            }

            if (baseWindow == null)
                Debuger.LogError("[window instance is null.]" + id.ToString());

            // Call reset window when first load new window
            // Or get forceResetWindow param
            if (newAdded || (showData != null && showData.forceResetWindow))
                baseWindow.ResetWindow();

            if (showData == null || (showData != null && showData.executeNavLogic))
            {
                // refresh the navigation data
                ExecuteNavigationLogic(baseWindow, showData);
            }

            // Adjust the window depth
            AdjustBaseWindowDepth(baseWindow);

            // Add common background collider to window
            AddColliderBgForWindow(baseWindow);
            return baseWindow;
        }
示例#46
0
 //显示窗口(关闭其余所有界面,显示新界面)
 public void ShowWindow(WindowID id)
 {
     Debug.Log("ShowWindow [" + id + "]");
     HideAllWindow();
     if (AllWindowScript.ContainsKey(id) && AllWindowScript[id].gameObject != null) {
         AllWindowScript[id].gameObject.SetActive(true);
     } else {
         string prefabPath = UIResourceDefine.Instance.windowPrefabPath[id];
         GameObject window = NGUITools.AddChild(UIPanelRoot, prefabPath);
         UIBaseWindow script = window.GetComponent<UIBaseWindow>();
         script.windowID = id;
         script.preWindowID = CurWindow;
         if (AllWindowScript.ContainsKey(id))
             AllWindowScript[id] = script;
         else
             AllWindowScript.Add(id, script);
     }
     CurWindow = id;
 }