public void SetVisualTip(object component, Skybound.VisualTips.VisualTip visualTip) { Skybound.VisualTips.VisualTip visualTip1 = VisualTipMap[component] as Skybound.VisualTips.VisualTip; if (visualTip1 != null) visualTip1.SetProvider(null); if ((visualTip != null) && (visualTip.Provider != null)) visualTip.Provider.SetVisualTip(component, null); VisualTipMap[component] = visualTip; if (visualTip != null) { visualTip.SetProvider(this); Skybound.VisualTips.VisualTipProvider.UpdateTipTarget(visualTip, component); } }
private void ShowTipCore(System.Windows.Forms.Control control, object component, Skybound.VisualTips.VisualTip tip, System.Drawing.Rectangle toolArea, Skybound.VisualTips.VisualTipDisplayOptions options) { if ((control != null) && control.InvokeRequired) { object[] objArr = new object[] { control, component, tip, toolArea, options }; control.BeginInvoke(new Skybound.VisualTips.VisualTipProvider.ShowTipCoreMethod(ShowTipCore), objArr); return; } bool flag = (options & Skybound.VisualTips.VisualTipDisplayOptions.HideOnMouseLeave) == Skybound.VisualTips.VisualTipDisplayOptions.HideOnMouseLeave; Skybound.VisualTips.VisualTipWindow visualTipWindow1 = flag ? Skybound.VisualTips.VisualTipProvider.TrackedTipWindow : CurrentTipWindow; if (visualTipWindow1 == null) { if (flag) { Skybound.VisualTips.VisualTipProvider.TrackedTipWindow = new Skybound.VisualTips.VisualTipWindow(); visualTipWindow1 = new Skybound.VisualTips.VisualTipWindow(); } else { Skybound.VisualTips.VisualTipWindow visualTipWindow2 = new Skybound.VisualTips.VisualTipWindow(); CurrentTipWindow = new Skybound.VisualTips.VisualTipWindow(); visualTipWindow1 = visualTipWindow2; } } if (visualTipWindow1.DisplayedTip != tip) { visualTipWindow1.Undisplay(); Skybound.VisualTips.VisualTipEventArgs visualTipEventArgs = new Skybound.VisualTips.VisualTipEventArgs(tip, component == null ? control : component); tip.SetProvider(this); Skybound.VisualTips.VisualTipProvider.UpdateTipTarget(tip, visualTipEventArgs.Instance); OnTipPopup(visualTipEventArgs); if (visualTipEventArgs.Cancel) { Skybound.VisualTips.VisualTipProvider.PreventDisplayTip = tip; return; } _CurrentTip = tip; CurrentControl = control; CurrentComponent = component; if (flag) Skybound.VisualTips.VisualTipTracker.TrackingProvider = this; Skybound.VisualTips.VisualTipProvider.WindowStack.Add(visualTipWindow1, control); visualTipWindow1.Display(this, tip, toolArea, options); return; } visualTipWindow1.SetToolArea(toolArea, options); }