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;
        }
Exemple #2
0
        private static void Initialize(UIElement uie)
        {
            uie.MouseEnter += OnElementMouseEnter;
            uie.MouseLeave += OnElementMouseLeave;

            var timer = new HoverTimer(uie);

            timer.Tick += OnTimerTick;

            HoverTimers[uie] = timer;
        }
Exemple #3
0
 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();
     }
 }
Exemple #4
0
 public void HoverTrigger()
 {
     CurrentTimerPanel.Visible = true; ControlPanel.Visible = true; ResizePanel.Visible = true; QuickPanel.Visible = true; HoverTimer.Start();
 }