public void RenderTarget<A, B>(A target, B fallback) { renderingTarget = target; for (int i = 0; i < elements.Length; i++) { TooltipElement element = elements[i]; if (typeof (ITooltipTarget<A>).IsAssignableFrom (element.GetType ())) { ITooltipTarget<A> tooltipTarget = (ITooltipTarget<A>)element; tooltipTarget.Render (target); element.gameObject.SetActive (true); } else if (typeof (ITooltipTarget<B>).IsAssignableFrom (element.GetType ())) { ITooltipTarget<B> tooltipTarget = (ITooltipTarget<B>)element; tooltipTarget.Render (fallback); element.gameObject.SetActive (true); } else { element.gameObject.SetActive (false); } } }
ITooltipTarget GetTooltipUnderMouse() { ITooltipTarget result = null; List <GameObject> hits = Utility.GetObjectsUnderMouse(); //if(hits.Count > 0) //{ // result = hits[0].GetComponent<ITooltipTarget>(); //} foreach (GameObject go in hits) { result = go.GetComponent <ITooltipTarget>(); if (result != null) { break; } } return(result); }
// Update is called once per frame void Update() { bool hideTip = true; ITooltipTarget target = GetTooltipUnderMouse(); if (Draggable.CurrentDragged == null && target != null) { string text = target.TooltipText; if (!string.IsNullOrEmpty(text)) { hideTip = false; tooltipBackground.gameObject.SetActive(true); tooltipText.text = target.TooltipText; LayoutRebuilder.MarkLayoutForRebuild(tooltipBackground.rectTransform); SetTooltipPosition(); } } if (hideTip) { tooltipBackground.gameObject.SetActive(false); } }
public void Subscribe(ITooltipTarget item, Image image) { base.Subscribe(item, image); }
public virtual void Unsubcribe(ITooltipTarget item) { item.MouseEnter -= new EventHandler(Item_MouseEnter); item.MouseLeave -= new EventHandler(Item_MouseLeave); subscriptions.Remove(item); }
protected virtual void Subscribe(ITooltipTarget item, object tag) { subscriptions.Add(item, tag); item.MouseEnter += new EventHandler(Item_MouseEnter); item.MouseLeave += new EventHandler(Item_MouseLeave); }