/*--------------------------------------------------------------------------------------------*/ private void BuildCustomize() { vMenuOpacity = 0.5f; CustomizeDark = new NavItemRadio("Dark Theme"); CustomizeDark.OnSelected += HandleDarkThemeSelected; CustomizeDark.Value = true; CustomizeLight = new NavItemRadio("Light Theme"); CustomizeLight.OnSelected += HandleLightThemeSelected; CustomizeColor = new NavItemRadio("Color Theme"); CustomizeColor.OnSelected += HandleColorThemeSelected; CustomizeFontsize = new NavItemSlider("Size", 3); CustomizeFontsize.ValueToLabel = ((v, sv) => "Size: " + Math.Round(Mathf.Lerp(MinFontSize, MaxFontSize, sv))); CustomizeFontsize.Value = Mathf.InverseLerp(MinFontSize, MaxFontSize, 30); CustomizeFontsize.OnValueChanged += HandleFontSizeChanged; CustomizeOpacity = new NavItemSlider("Bg Alpha", 3); CustomizeOpacity.ValueToLabel = ((v, sv) => "Bg Alpha: " + Math.Round(v * 100) + "%"); CustomizeOpacity.Value = vMenuOpacity; CustomizeOpacity.OnValueChanged += HandleOpacityChanged; CustomizeSwitch = new NavItemSelector("Switch Hands!"); CustomizeSwitch.OnSelected += HandleSwitchHands; Customize = new NavItemParent("Customize"); Customize.ChildLevel.Items = new NavItem[] { CustomizeDark, CustomizeLight, CustomizeColor, CustomizeFontsize, CustomizeOpacity, CustomizeSwitch }; }
/*--------------------------------------------------------------------------------------------*/ private void BuildNested() { NestedA1 = new NavItemCheckbox("Checkbox A1"); NestedA2 = new NavItemCheckbox("Checkbox A2"); NestedA3 = new NavItemCheckbox("Checkbox A3"); NestedA = new NavItemParent("Menu A"); NestedA.ChildLevel.Items = new NavItem[] { NestedA1, NestedA2, NestedA3 }; NestedB1 = new NavItemCheckbox("Checkbox B1"); NestedB2 = new NavItemCheckbox("Checkbox B2"); NestedB3 = new NavItemCheckbox("Hide Menu C"); NestedB3.OnValueChanged += HandleHideMenuCValueChanged; NestedB4 = new NavItemSelector("Go Back"); NestedB4.NavigateBackUponSelect = true; NestedB = new NavItemParent("Menu B"); NestedB.ChildLevel.Items = new NavItem[] { NestedB1, NestedB2, NestedB3, NestedB4 }; NestedC1 = new NavItemCheckbox("Checkbox C1"); NestedC2 = new NavItemCheckbox("Checkbox C2"); NestedC3 = new NavItemCheckbox("Checkbox C3"); NestedC4 = new NavItemCheckbox("Checkbox C4"); NestedC5 = new NavItemCheckbox("Checkbox C5"); NestedC = new NavItemParent("Menu C"); NestedC.ChildLevel.Items = new NavItem[] { NestedC1, NestedC2, NestedC3, NestedC4, NestedC5 }; Nested = new NavItemParent("Nested Menu"); Nested.ChildLevel.Items = new NavItem[] { NestedA, NestedB, NestedC }; }
/*--------------------------------------------------------------------------------------------*/ private void BuildLight() { LightPos = new NavItemSlider("Position", 2); LightInten = new NavItemSlider("Power", 2); LightSpot = new NavItemSticky("Spotlight"); Light = new NavItemParent("Lighting"); Light.ChildLevel.Items = new NavItem[] { LightPos, LightInten, LightSpot }; }
/*--------------------------------------------------------------------------------------------*/ private static void VerifyParent(NavItemParent pParent) { if (pParent.ChildLevel != null && pParent.ChildLevel.Items.Length != 0) { return; } throw new Exception("Parent item '" + pParent.Label + "' has no children."); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ private void BuildColors() { ColorWhite = new NavItemRadio("White"); ColorRandom = new NavItemRadio("Random"); ColorCustom = new NavItemRadio("Custom"); ColorHue = new NavItemSlider("Hue", 3); Color = new NavItemParent("Color"); Color.ChildLevel.Items = new NavItem[] { ColorWhite, ColorRandom, ColorCustom, ColorHue }; }
/*--------------------------------------------------------------------------------------------*/ private void BuildCamera() { CameraCenter = new NavItemRadio("Center"); CameraBack = new NavItemRadio("Back"); CameraTop = new NavItemRadio("Top"); CameraReorient = new NavItemSelector("Re-orient"); Camera = new NavItemParent("Camera"); Camera.ChildLevel.Items = new NavItem[] { CameraCenter, CameraBack, CameraTop, CameraReorient }; }
/*--------------------------------------------------------------------------------------------*/ private void BuildMotions() { MotionOrbit = new NavItemCheckbox("Orbit"); MotionSpin = new NavItemCheckbox("Spin"); MotionBob = new NavItemCheckbox("Bob"); MotionGrow = new NavItemCheckbox("Grow"); MotionSpeed = new NavItemSlider("Speed", 4); Motion = new NavItemParent("Motion"); Motion.ChildLevel.Items = new NavItem[] { MotionOrbit, MotionSpin, MotionBob, MotionGrow, MotionSpeed }; }
/*--------------------------------------------------------------------------------------------*/ public static NavItemRadio GetChosenRadioItem(NavItemParent pParent) { VerifyParent(pParent); foreach (NavItem item in pParent.ChildLevel.Items) { NavItemRadio radItem = (item as NavItemRadio); if (radItem != null && radItem.Value) { return(radItem); } } return(null); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public static bool IsItemWithin(NavItem pItem, NavItemParent pParent, NavItem.ItemType pType) { VerifyParent(pParent); return(pItem.Type == pType && pParent.ChildLevel.Items.Contains(pItem)); }