Example #1
0
        public RolodexData(Transform transform = null, int extraCount = 0)
        {
            View = RolodexFactory.GetMenu();
            if (!transform)
            {
                Canvas = new GameObject("Canvas", typeof(Canvas));
                Canvas.AddComponent <CanvasScaler>();
                Canvas.GetComponent <Canvas>().renderMode = RenderMode.ScreenSpaceOverlay;
                transform = Canvas.transform;
            }
            View.transform.SetParent(transform);
            View.gameObject.AddComponent <DivRoot>().Initialize();
            View.Div.SetPivot(new Vector2(0, 1));
            View.Div.LineHeight = 30;

            Menu       = new RoloMenu("TestMenu", null);
            SubMenu    = new RoloMenu("SubMenu", Menu);
            SubSubMenu = new RoloMenu("SubSubMenu", SubMenu);
            Menu.Items.Add(new RolodexElement("SubMenu", true, MountSubMenu));
            Menu.Items.Add(new RolodexElement("Element1", false, () => Element1Pushed = true));
            Menu.Items.Add(new RolodexElement("Element2", false, () => Debug.Log("Element2 pushed")));
            SubMenu.Items.Add(new RolodexElement("SubSubMenu", true, () => View.Mount(SubSubMenu)));
            SubMenu.Items.Add(new RolodexElement("SubElement1", false, () => Debug.Log("SubElement1 pushed")));

            for (int i = 0; i < extraCount; i++)
            {
                Menu.Items.Add(new RolodexElement($"Extra{i}", false, () => Debug.Log($"Pushed extra {i}")));
            }
        }
Example #2
0
        private void AddElement(IRoloItem item)
        {
            if (item.Color == default(Color))
            {
                item.Color = DefaultColor;
            }
            if (item.IsNode && item.Sprite == null)
            {
                item.Sprite = RolodexFactory.NodeSprite;
            }
            var elementView = RolodexFactory.GetElement();

            ElementParent.AddChild(elementView.Panel); // must come before elementView.Mount(element)
            elementView.Mount(item);
            Elements.Add(elementView);
        }
Example #3
0
        private void AddMenuPath(IRoloMenu menu)
        {
            Sprite sprite = null;

            if (menu.Parent != null)
            {
                AddMenuPath(menu.Parent);
                sprite = RolodexFactory.NodeSprite;
            }

            var element = new RoloNode(menu.Name, menu, this, HeaderColor, sprite);
            var view    = RolodexFactory.GetPathElement();

            HeaderDiv.AddChild(view.Panel);
            view.Mount(element);
            MenuPath.Add(view);
        }