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}"))); } }
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); }
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); }