Пример #1
0
 /// <summary>
 /// 处理驻留选项
 /// </summary>
 private void ProcessStayOptions(IntGroup viewGroup, StayOptions options)
 {
     if (options.HasFlag(StayOptions.PushStack) && !options.HasFlag(StayOptions.CombineStackTop))
     {
         ProcessPushStack(viewGroup);
     }
     else if (options.HasFlag(StayOptions.PushStack) && options.HasFlag(StayOptions.CombineStackTop))
     {
         ProcessPushCombineStackTop(viewGroup);
     }
     else if (!options.HasFlag(StayOptions.PushStack) && options.HasFlag(StayOptions.CombineStackTop))
     {
         ProcessCombineStackTop(viewGroup);
     }
 }
Пример #2
0
 /// <summary>
 /// 退出所有视图
 /// 会有部分视图驻留
 /// </summary>
 /// <param name="stayViewId">驻留视图</param>
 /// <param name="options">退出的视图选项</param>
 /// <param name="stayOptions">驻留的视图选项</param>
 public void QuitAll(int stayViewId, QuitOptions options = QuitOptions.None, StayOptions stayOptions = StayOptions.None)
 {
     _module.QuitAll(stayViewId, options, stayOptions);
 }
Пример #3
0
 /// <summary>
 /// 退出所有视图
 /// 会有部分视图驻留
 /// </summary>
 /// <param name="stayViewGroup">驻留视图组</param>
 /// <param name="options">退出的视图选项</param>
 /// <param name="stayOptions">驻留的视图选项</param>
 public void QuitAll(IntGroup stayViewGroup, QuitOptions options = QuitOptions.None, StayOptions stayOptions = StayOptions.None)
 {
     _module.QuitAll(stayViewGroup, options, stayOptions);
 }
Пример #4
0
 /// <summary>
 /// 退出所有视图
 /// 会有部分视图驻留
 /// </summary>
 /// <param name="stayViewId">驻留视图</param>
 /// <param name="options">退出的视图选项</param>
 /// <param name="stayOptions">驻留的视图选项</param>
 public void QuitAll(int stayViewId, QuitOptions options = QuitOptions.None, StayOptions stayOptions = StayOptions.None)
 {
     QuitAll(IntGroup.Get(stayViewId), options, stayOptions);
 }
Пример #5
0
        /// <summary>
        /// 退出所有视图
        /// 会有部分视图驻留
        /// </summary>
        /// <param name="stayViewGroup">驻留视图组</param>
        /// <param name="options">退出的视图选项</param>
        /// <param name="stayOptions">驻留的视图选项</param>
        public void QuitAll(IntGroup stayViewGroup, QuitOptions options = QuitOptions.None, StayOptions stayOptions = StayOptions.None)
        {
            _tempQuitList.Clear();

            foreach (int id in _viewDic.Keys)
            {
                if (!stayViewGroup.Contains(id))
                {
                    _tempQuitList.Add(id);
                }
            }

            for (int i = 0; i < _tempQuitList.Count; i++)
            {
                Quit(_tempQuitList[i], QuitOptionsFilter(QuitOptions.LeaveStack, options), null);
            }

            if (options.HasFlag(QuitOptions.LeaveStack))
            {
                ResetStack();
            }

            ProcessStayOptions(stayViewGroup, stayOptions);
        }