using System; using TH1_UI.Controller.Base; // public enum ViewLevelValue { LEVEL_1, LEVEL_2, //一级界面互斥 LEVEL_3, //二级界面互斥 LEVEL_4, } // public class ViewHierarchyProperty { public ViewLevelValue ViewLevel = ViewLevelValue.LEVEL_1; // public void Start(IViewControllerInterface controller) { if (_currLinkNode != null) { _currLinkNode.Detach(); } _currLinkNode = new ViDoubleLinkNode2(); _currLinkNode.Data = controller; } // public void Open() { if (_currLinkNode != null) { _currLinkNode.Detach(); // IViewControllerInterface view = _currLinkNode.Data; switch (ViewLevel) { case ViewLevelValue.LEVEL_1: break; case ViewLevelValue.LEVEL_2: case ViewLevelValue.LEVEL_3: case ViewLevelValue.LEVEL_4: _MutualWindow(view); break; } // _viewOpenList.PushBack(_currLinkNode); } } // void _MutualWindow(IViewControllerInterface viewOpen) { ViDoubleLinkNode2 iter = _viewOpenList.GetHead(); while (!_viewOpenList.IsEnd(iter)) { IViewControllerInterface iterView = iter.Data; ViDoubleLink2.Next(ref iter); // if (iterView.ViewLevel == viewOpen.ViewLevel) { iterView.Close(); } } } // public void Close() { if (_currLinkNode != null) { _currLinkNode.Detach(); } } // ViDoubleLinkNode2 _currLinkNode = null; static ViDoubleLink2 _viewOpenList = new ViDoubleLink2(); }