void CreateHorizontalWithVertBot(PrimaryView a_top, PrimaryView a_botL, PrimaryView a_botR) { DeleteSecondaryPanels(); parentPanel.OnRightPanelResize.RemoveAllListeners(); PanelWithHorizontalSplitter l_panelHS = Instantiate(PanelWithHorizontalSplitterPrefab).GetComponent <PanelWithHorizontalSplitter>(); l_panelHS.transform.SetParent(parentPanel.rightPanel, false); parentPanel.OnRightPanelResize.AddListener(l_panelHS.OnParentPanelResize); l_panelHS.MoveSplitterToCenter(); a_top.transform.SetParent(l_panelHS.topPanel.transform, false); l_panelHS.OnTopPanelResize.AddListener(a_top.OnParentPanelResize); PanelWithVerticalSplitter l_panelVS = Instantiate(PanelWithVerticalSplitterPrefab).GetComponent <PanelWithVerticalSplitter>(); l_panelVS.transform.SetParent(l_panelHS.bottomPanel.transform, false); l_panelVS.MoveSplitterToCenter(); l_panelHS.OnBottomPanelResize.AddListener(l_panelVS.OnParentPanelResize); a_botL.transform.SetParent(l_panelVS.leftPanel.transform, false); a_botR.transform.SetParent(l_panelVS.rightPanel.transform, false); l_panelVS.OnLeftPanelResize.AddListener(a_botL.OnParentPanelResize); l_panelVS.OnRightPanelResize.AddListener(a_botR.OnParentPanelResize); parentPanel.AllignPanelsWithSplitter(); }
void CreateTwoHorizontal(PrimaryView a_btm, PrimaryView a_top) { DeleteSecondaryPanels(); parentPanel.OnTopPanelResize.RemoveAllListeners(); PanelWithHorizontalSplitter l_panelHS = Instantiate(PanelWithHorizontalSplitterPrefab).GetComponent <PanelWithHorizontalSplitter>(); l_panelHS.transform.SetParent(parentPanel.topPanel, false); parentPanel.OnTopPanelResize.AddListener(l_panelHS.OnParentPanelResize); l_panelHS.MoveSplitterToCenter(); a_btm.transform.SetParent(l_panelHS.bottomPanel.transform, false); a_top.transform.SetParent(l_panelHS.topPanel.transform, false); l_panelHS.OnBottomPanelResize.AddListener(a_btm.OnParentPanelResize); l_panelHS.OnTopPanelResize.AddListener(a_top.OnParentPanelResize); parentPanel.AllignPanelsWithSplitter(); }
private void RemoveSubscribers(PanelWithHorizontalSplitter a_parent, bool a_removeFromChildren) { a_parent.OnBottomPanelResize.RemoveAllListeners(); a_parent.OnTopPanelResize.RemoveAllListeners(); if (a_removeFromChildren) { foreach (var l_child in a_parent.GetComponentsInChildren <PanelWithHorizontalSplitter>()) { RemoveSubscribers(l_child, false); } foreach (var l_child in a_parent.GetComponentsInChildren <PanelWithVerticalSplitter>()) { RemoveSubscribers(l_child, false); } } }
private void ActivateSecondView() { if (firstView.isActiveAndEnabled && thirdView.isActiveAndEnabled) { firstView.transform.SetParent(threeViewLayout23.leftPanel.transform, false); PanelWithHorizontalSplitter rightPanel = threeViewLayout23.rightPanel.GetComponentInChildren <PanelWithHorizontalSplitter>(); secondView.transform.SetParent(rightPanel.bottomPanel.transform, false); thirdView.transform.SetParent(rightPanel.topPanel.transform, false); RemoveSubscribers(twoViewVerticalLayout, true); threeViewLayout23.OnLeftPanelResize.AddListener(firstView.OnParentPanelResize); threeViewLayout23.OnRightPanelResize.AddListener(rightPanel.OnParentPanelResize); rightPanel.OnBottomPanelResize.AddListener(secondView.OnParentPanelResize); rightPanel.OnTopPanelResize.AddListener(thirdView.OnParentPanelResize); parentPanel.OnRightPanelResize.RemoveAllListeners(); parentPanel.OnRightPanelResize.AddListener(threeViewLayout23.OnParentPanelResize); DeactivateSlittedPanels(); secondView.SetActiveAndSelect(true); threeViewLayout23.gameObject.SetActive(true); //threeViewLayout23.splitter.transform.position = twoViewVerticalLayout.splitter.transform.position; threeViewLayout23.MoveSplitterToCenter(); rightPanel.MoveSplitterToCenter(); threeViewLayout23.AllignPanelsWithSplitter(); } else if (firstView.isActiveAndEnabled) { firstView.transform.SetParent(twoViewVerticalLayout.leftPanel.transform, false); secondView.transform.SetParent(twoViewVerticalLayout.rightPanel.transform, false); secondView.SetActiveAndSelect(true); DeactivateSlittedPanels(); twoViewVerticalLayout.gameObject.SetActive(true); RemoveSubscribers(twoViewVerticalLayout, true); twoViewVerticalLayout.OnLeftPanelResize.AddListener(firstView.OnParentPanelResize); twoViewVerticalLayout.OnRightPanelResize.AddListener(secondView.OnParentPanelResize); parentPanel.OnRightPanelResize.RemoveAllListeners(); parentPanel.OnRightPanelResize.AddListener(twoViewVerticalLayout.OnParentPanelResize); twoViewVerticalLayout.MoveSplitterToCenter(); twoViewVerticalLayout.AllignPanelsWithSplitter(); } else if (thirdView.isActiveAndEnabled) { thirdView.transform.SetParent(twoViewHorizontalLayout.topPanel.transform, false); secondView.transform.SetParent(twoViewHorizontalLayout.bottomPanel.transform, false); secondView.SetActiveAndSelect(true); DeactivateSlittedPanels(); twoViewHorizontalLayout.gameObject.SetActive(true); RemoveSubscribers(twoViewHorizontalLayout, true); twoViewHorizontalLayout.OnTopPanelResize.AddListener(thirdView.OnParentPanelResize); twoViewHorizontalLayout.OnBottomPanelResize.AddListener(secondView.OnParentPanelResize); parentPanel.OnRightPanelResize.RemoveAllListeners(); parentPanel.OnRightPanelResize.AddListener(twoViewHorizontalLayout.OnParentPanelResize); twoViewHorizontalLayout.MoveSplitterToCenter(); twoViewVerticalLayout.AllignPanelsWithSplitter(); } }