예제 #1
0
            /// <summary>
            /// 激活界面。
            /// </summary>
            /// <param name="uiForm">要激活的界面。</param>
            /// <param name="userData">用户自定义数据。</param>
            public void RefocusUIForm(IUIForm uiForm, object userData)
            {
                UIFormInfo uiFormInfo = GetUIFormInfo(uiForm);

                Guard.Requires <ArgumentException>(uiFormInfo != null, "Can not find UI form info.");

                m_UIFormInfos.Remove(uiFormInfo);
                m_UIFormInfos.AddFirst(uiFormInfo);
            }
예제 #2
0
        public static void OpenUIForm(this IUIManager uiManager, int uiFormId, object userData = null)
        {
            Guard.Verify <LogicException>(GetUIFormInfo == null, "Must transfer the Extend() method before GetUIFormInfo() method.");

            UIFormInfo uiFormInfo = GetUIFormInfo(uiFormId);

            if (uiManager.HasUIForm(uiFormInfo.AssetName))
            {
                return;
            }

            uiManager.OpenUIForm(uiFormInfo.AssetName, uiFormInfo.UIGroupName, uiFormInfo.UIGroupDepth, uiFormInfo.PauseCoveredUIForm, userData);
        }
예제 #3
0
            private void RefreshUIForm(UIFormInfo uiFormInfo, bool pause, bool cover, int depthInUIGroup)
            {
                uiFormInfo.UIForm.OnDepthChanged(Depth, depthInUIGroup);

                if (pause)
                {
                    if (!uiFormInfo.Covered)
                    {
                        uiFormInfo.Covered = true;
                        uiFormInfo.UIForm.OnCover();
                    }

                    if (!uiFormInfo.Paused)
                    {
                        uiFormInfo.Paused = true;
                        uiFormInfo.UIForm.OnPause();
                    }
                }
                else
                {
                    if (cover)
                    {
                        if (!uiFormInfo.Covered)
                        {
                            uiFormInfo.Covered = true;
                            uiFormInfo.UIForm.OnCover();
                        }
                    }
                    else
                    {
                        if (uiFormInfo.Paused)
                        {
                            uiFormInfo.Paused = false;
                            uiFormInfo.UIForm.OnResume();
                        }

                        if (uiFormInfo.Covered)
                        {
                            uiFormInfo.Covered = false;
                            uiFormInfo.UIForm.OnReveal();
                        }
                    }
                }
            }
예제 #4
0
        public static bool HasUIForm <T>(this IUIManager uiManager, int uiFormId, string uiGroupName = null) where T : IDataRow
        {
            Guard.Verify <LogicException>(GetUIFormInfo == null, "Must transfer the Extend() method before GetUIFormInfo() method.");

            UIFormInfo uiFormInfo = GetUIFormInfo(uiFormId);

            if (string.IsNullOrEmpty(uiGroupName))
            {
                return(uiManager.HasUIForm(uiFormInfo.AssetName));
            }

            IUIGroup uiGroup = uiManager.GetUIGroup(uiGroupName);

            if (uiGroup == null)
            {
                return(false);
            }

            return(uiGroup.HasUIForm(uiFormInfo.AssetName));
        }
예제 #5
0
        public static IUIForm GetUIForm(this IUIManager uiManager, int uiFormId, string uiGroupName = null)
        {
            Guard.Verify <LogicException>(GetUIFormInfo == null, "Must transfer the Extend() method before GetUIFormInfo() method.");

            UIFormInfo uiFormInfo = GetUIFormInfo(uiFormId);

            if (string.IsNullOrEmpty(uiGroupName))
            {
                return(uiManager.GetUIForm(uiFormInfo.AssetName));
            }

            IUIGroup uiGroup = uiManager.GetUIGroup(uiGroupName);

            if (uiGroup == null)
            {
                return(null);
            }

            return((UIForm)uiGroup.GetUIForm(uiFormInfo.AssetName));
        }
예제 #6
0
            /// <summary>
            /// 从界面组移除界面。
            /// </summary>
            /// <param name="uiForm">要移除的界面。</param>
            public void RemoveUIForm(IUIForm uiForm)
            {
                UIFormInfo uiFormInfo = GetUIFormInfo(uiForm);

                Guard.Requires <ArgumentException>(uiForm != null, $"Can not find UI form asset name is '{uiForm.UIFormAssetName}'.");

                if (!uiFormInfo.Covered)
                {
                    uiFormInfo.Covered = true;
                    uiForm.OnCover();
                }

                if (!uiFormInfo.Paused)
                {
                    uiFormInfo.Paused = true;
                    uiForm.OnPause();
                }

                m_UIFormInfos.Remove(uiFormInfo);
            }
예제 #7
0
            /// <summary>
            /// 往界面组增加界面。
            /// </summary>
            /// <param name="uiForm">要增加的界面。</param>
            public void AddUIForm(IUIForm uiForm)
            {
                UIFormInfo uiFormInfo = new UIFormInfo(uiForm);

                m_UIFormInfos.AddFirst(uiFormInfo);
            }