public static void Test() { ConfigurationManager.Initialize("../../../../config/RC.UI.Test/RC.UI.Test.root"); UIRoot root = new UIRoot(); Assembly xnaPlugin = Assembly.Load("RC.UI.XnaPlugin, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"); root.LoadPlugins(xnaPlugin); root.InstallPlugins(); UIWorkspace workspace = new UIWorkspace(new RCIntVector(740, 500), new RCIntVector(320, 200)); pageA = new UIPage(); pageB = new UIPage(); panelAA = new MyPanel(new RCIntRectangle(5, 5, 100, 90), new RCIntRectangle(5, 5, 90, 80), UIPanel.ShowMode.DriftFromTop, UIPanel.HideMode.DriftToLeft); panelAB = new MyPanel(new RCIntRectangle(5, 100, 100, 90), new RCIntRectangle(5, 5, 90, 80), UIPanel.ShowMode.DriftFromBottom, UIPanel.HideMode.DriftToLeft); panelAC = new MyPanel(new RCIntRectangle(110, 5, 200, 90), new RCIntRectangle(5, 5, 190, 80), UIPanel.ShowMode.DriftFromTop, UIPanel.HideMode.DriftToRight); panelAD = new MyPanel(new RCIntRectangle(110, 100, 200, 90), new RCIntRectangle(5, 5, 190, 80), UIPanel.ShowMode.DriftFromBottom, UIPanel.HideMode.DriftToRight); panelBA = new MyPanel(new RCIntRectangle(5, 5, 100, 90), new RCIntRectangle(5, 5, 90, 80), UIPanel.ShowMode.DriftFromLeft, UIPanel.HideMode.DriftToTop); panelBB = new MyPanel(new RCIntRectangle(5, 100, 100, 90), new RCIntRectangle(5, 5, 90, 80), UIPanel.ShowMode.DriftFromLeft, UIPanel.HideMode.DriftToBottom); panelBC = new MyPanel(new RCIntRectangle(110, 5, 200, 90), new RCIntRectangle(5, 5, 190, 80), UIPanel.ShowMode.DriftFromRight, UIPanel.HideMode.DriftToTop); panelBD = new MyPanel(new RCIntRectangle(110, 100, 200, 90), new RCIntRectangle(5, 5, 190, 80), UIPanel.ShowMode.DriftFromRight, UIPanel.HideMode.DriftToBottom); workspace.RegisterPage(pageA); workspace.RegisterPage(pageB); pageA.RegisterPanel(panelAA); pageA.RegisterPanel(panelAB); pageA.RegisterPanel(panelAC); pageA.RegisterPanel(panelAD); pageB.RegisterPanel(panelBA); pageB.RegisterPanel(panelBB); pageB.RegisterPanel(panelBC); pageB.RegisterPanel(panelBD); pageB.Activate(); panelBA.Show(); panelBB.Show(); panelBC.Show(); panelBD.Show(); pageA.StatusChanged += OnPageStatusChanged; pageB.StatusChanged += OnPageStatusChanged; pageB.Deactivate(); root.GraphicsPlatform.RenderLoop.Start(workspace.DisplaySize); root.Dispose(); }
static void OnPageStatusChanged(UIPage sender, UIPage.Status newState) { if (newState == UIPage.Status.Inactive) { if (sender == pageA) { pageB.Activate(); panelBA.Show(); panelBB.Show(); panelBC.Show(); panelBD.Show(); pageB.Deactivate(); } else if (sender == pageB) { pageA.Activate(); panelAA.Show(); panelAB.Show(); panelAC.Show(); panelAD.Show(); pageA.Deactivate(); } } }