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();
    }
Example #3
0
 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);
         }
     }
 }
Example #4
0
    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();
        }
    }