/*--------------------------------------------------------------------------------------------*/ public void TreeUpdate() { if (Shape == null) { Debug.LogWarning("No '" + typeof(HoverShape).Name + "' reference provided."); return; } HoverCanvas canvas = GetComponent <HoverCanvas>(); HoverShapeRect shapeRect = (Shape as HoverShapeRect); HoverShapeArc shapeArc = (Shape as HoverShapeArc); if (shapeRect) { UpdateWithRect(canvas, shapeRect); } else if (shapeArc != null) { UpdateWithArc(canvas, shapeArc); } else { throw new Exception("Shape not supported: " + Shape); } }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ private void UpdateWithRect(HoverCanvas pHoverCanvas, HoverShapeRect pShapeRect) { pHoverCanvas.Controllers.Set(HoverCanvas.SizeXName, this); pHoverCanvas.Controllers.Set(HoverCanvas.SizeYName, this); pHoverCanvas.SizeX = pShapeRect.SizeX; pHoverCanvas.SizeY = pShapeRect.SizeY; }
/*--------------------------------------------------------------------------------------------*/ public void TreeUpdate() { HoverCanvas hoverCanvas = gameObject.GetComponent <HoverCanvas>(); UpdateLabel(hoverCanvas); UpdateIcons(hoverCanvas); Controllers.TryExpireControllers(); }
/*--------------------------------------------------------------------------------------------*/ private void UpdateIcons(HoverCanvas pHoverCanvas) { var iconOuterType = HoverIcon.IconOffset.None; var iconInnerType = HoverIcon.IconOffset.None; switch (IconType) { case IconPairType.Unspecified: break; case IconPairType.CheckboxOn: iconOuterType = HoverIcon.IconOffset.CheckOuter; iconInnerType = HoverIcon.IconOffset.CheckInner; break; case IconPairType.CheckboxOff: iconOuterType = HoverIcon.IconOffset.CheckOuter; break; case IconPairType.RadioOn: iconOuterType = HoverIcon.IconOffset.RadioOuter; iconInnerType = HoverIcon.IconOffset.RadioInner; break; case IconPairType.RadioOff: iconOuterType = HoverIcon.IconOffset.RadioOuter; break; case IconPairType.NavigateIn: iconOuterType = HoverIcon.IconOffset.NavigateIn; break; case IconPairType.NavigateOut: iconOuterType = HoverIcon.IconOffset.NavigateOut; break; case IconPairType.Sticky: iconOuterType = HoverIcon.IconOffset.Sticky; break; case IconPairType.Slider: iconOuterType = HoverIcon.IconOffset.Slider; break; default: throw new Exception("Unhandled icon type: " + IconType); } pHoverCanvas.IconOuter.Controllers.Set(HoverIcon.IconTypeName, this); pHoverCanvas.IconInner.Controllers.Set(HoverIcon.IconTypeName, this); pHoverCanvas.IconOuter.IconType = iconOuterType; pHoverCanvas.IconInner.IconType = iconInnerType; }
/*--------------------------------------------------------------------------------------------*/ private void UpdateWithArc(HoverCanvas pHoverCanvas, HoverShapeArc pShapeArc) { pHoverCanvas.Controllers.Set(SettingsControllerMap.TransformLocalPosition + ".x", this); pHoverCanvas.Controllers.Set(HoverCanvas.SizeXName, this); pHoverCanvas.SizeX = pShapeArc.OuterRadius - pShapeArc.InnerRadius; Vector3 canvasLocalPos = pHoverCanvas.transform.localPosition; canvasLocalPos.x = pShapeArc.InnerRadius + pHoverCanvas.SizeX / 2; pHoverCanvas.transform.localPosition = canvasLocalPos; }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ private void UpdateLabel(HoverCanvas pHoverCanvas) { pHoverCanvas.Label.Controllers.Set(SettingsControllerMap.TextText, this); pHoverCanvas.Label.TextComponent.text = LabelText; }