public void Update(DwarfTime time) { MouseState currentMouse = Mouse.GetState(); int movement = Math.Abs(LastMouse.X - currentMouse.X) + Math.Abs(LastMouse.Y - currentMouse.Y); if (ToolTip != "" && movement > MovementThreshold) { ToolTip = ""; HoverTimer.Reset(HoverTimer.TargetTimeSeconds); } else if (ToolTip == "" && movement < MovementThreshold) { HoverTimer.Update(time); if (HoverTimer.HasTriggered) { List <string> tips = new List <string>(); GetToolTipsUnderMouseRecursive(GUI.RootComponent, tips); ToolTip = tips.Count > 0 ? tips.Last() : ""; } } PopupTimer.Update(time); if (PopupTimer.HasTriggered) { PopupTip = null; } LastMouse = currentMouse; }
private static void Initialize(UIElement uie) { uie.MouseEnter += OnElementMouseEnter; uie.MouseLeave += OnElementMouseLeave; var timer = new HoverTimer(uie); timer.Tick += OnTimerTick; HoverTimers[uie] = timer; }
private void HoverTimer_Tick(object sender, EventArgs e) { if (!ClientRectangle.Contains(PointToClient(Control.MousePosition)) && Control.MouseButtons != MouseButtons.Left && !SettingsMenu.Visible) { QuickPanel.Visible = false; ControlPanel.Visible = false; CurrentTimerPanel.Visible = false; ResizePanel.Visible = false; HoverTimer.Stop(); } }
public void HoverTrigger() { CurrentTimerPanel.Visible = true; ControlPanel.Visible = true; ResizePanel.Visible = true; QuickPanel.Visible = true; HoverTimer.Start(); }