示例#1
0
        public override void Update(GameTime gameTime, Input input)
        {
            base.Update(gameTime, input);
            Content?.Update(gameTime, input);
            var currentMouseStatus       = input.MouseStatus;
            var containsCurrentPosition  = Bounds.Contains(currentMouseStatus.Position);
            var containsPreviousPosition = Bounds.Contains(_previousMouseStatus.Position);

            if (containsCurrentPosition && !containsPreviousPosition)
            {
                MouseEnter?.Invoke();
            }
            else if (!containsCurrentPosition && containsPreviousPosition)
            {
                MouseLeave?.Invoke();
            }
            else if (containsCurrentPosition)
            {
                MouseHover?.Invoke();
            }

            if (containsCurrentPosition && currentMouseStatus.IsButtonJustPressed(MouseButtons.Left))
            {
                Click?.Invoke();
            }
        }
示例#2
0
        /// <summary>
        /// Checks for collision with cursor and invokes events based on user actions.
        /// </summary>
        public virtual void Update()
        {
            Container.SetPosition(new Vector2(CollRectangle.X, CollRectangle.Y));
            Container.Color = CurrentColor;
            Rectangle mouse = InputSystem.GetMouseInUi();


            if (mouse.Intersects(CollRectangle))
            {
                MouseHover?.Invoke();

                if (InputSystem.IsLeftMousePressed())
                {
                    _wasPressed  = true;
                    _wasReleased = false;
                }
                if (InputSystem.IsLeftMouseReleased() && _wasPressed)
                {
                    _wasReleased = true;
                }
                if (_wasPressed && _wasReleased)
                {
                    MouseClicked?.Invoke(this);
                    _wasReleased = false;
                    _wasPressed  = false;
                }
            }
            else
            {
                MouseOut?.Invoke();
            }
        }
示例#3
0
 internal void OnMouseHover(EventArgs e)
 {
     if (MouseHover != null)
     {
         MouseHover.Invoke(this, e);
     }
 }
示例#4
0
 void IActionTextLineMarker.MouseHover(MonoTextEditor editor, MarginMouseEventArgs args, TextLineMarkerHoverResult result)
 {
     MouseHover?.Invoke(this, new TextEventArgsWrapper(args));
     result.Cursor = textLinkCursor;
     if (OnlyShowLinkOnHover && args.LineSegment != null)
     {
         editor.GetTextEditorData().Document.CommitLineUpdate(args.LineSegment);
         editor.TextViewMargin.HoveredLineChanged += new UpdateOldLine(editor, args.LineSegment).TextViewMargin_HoveredLineChanged;
     }
 }
 void IActionTextLineMarker.MouseHover(MonoTextEditor editor, MarginMouseEventArgs args, TextLineMarkerHoverResult result)
 {
     MouseHover?.Invoke(this, new TextEventArgsWrapper(args));
     result.Cursor = textLinkCursor;
 }
示例#6
0
 void IEventListener.ListenMouseHover(UIMouseHoverEventArgs e)
 {
     MouseHover?.Invoke(this, e);
 }
示例#7
0
 protected virtual void OnMouseHover(object sender, UIEventArgs e)
 {
     MouseHover?.Invoke(sender, e);
 }
示例#8
0
 internal void DispatchMouseHover(Point mousePosition)
 {
     MouseHover?.Invoke(this, mousePosition);
 }
示例#9
0
 internal void InvokeMouseHover(S sender, T state, UIMouseHoverEventArgs e) => MouseHover.Invoke(new SenderInfo(sender, state), e);