public void OnMouseUp(MouseEventInfo e)
 {
     if (_context.Scene.ActiveAction != null)
     {
         _context.Scene.ActiveAction.OnMouseUp(_context, e);
     }
 }
        public void OnMouseWheel(MouseEventInfo e)
        {
            float delta = -(e.WheelPrecise - mouseWheelPrevious);

            Camera.Zoom        = Math.Max(7.0f, Camera.Zoom - delta * 3.5f);
            mouseWheelPrevious = e.WheelPrecise;
        }
        public void PickScene(MouseEventInfo e, bool selectAction)
        {
            if (!_context.ColorPicker.EnablePicking)
            {
                return;
            }

            if (selectAction && !Keyboard.GetState().IsKeyDown(Key.ControlLeft))
            {
                _context.Scene.ResetSelected();
            }

            OpenTK.Vector2 position = new OpenTK.Vector2(e.Position.X, _context.Height - e.Position.Y);
            var            pickable = _context.Scene.FindPickableAtPosition(_context, position);

            if (pickable != null)
            {
                pickable.IsHovered = true;
                if (selectAction)
                {
                    pickable.IsSelected = true;
                }
            }

            GL.BindFramebuffer(FramebufferTarget.Framebuffer, 0);
            GL.Viewport(0, 0, Width, Height);

            if (_context.Scene.GetSelected().Count == 0)
            {
                _context.Scene.ActiveAction = null;
            }
        }
Esempio n. 4
0
 void IMouseEventListener.OnMouseEvent(MouseEventInfo eventInfo)
 {
     if (eventInfo.EventKind == MouseEventKind.Button && eventInfo.AreaKind == MouseEventAreaKind.NonClient)
     {
         QueryCloseCoreImmediate();
     }
 }
        public void OnMouseMove(MouseEventInfo e)
        {
            if (e.LeftButton == ButtonState.Pressed)
            {
                var pos = new Vector2(e.X - originMouse.X, e.Y - originMouse.Y);
                Camera.Position.X += pos.X;
                Camera.Position.Y += pos.Y;

                originMouse = e.Position;
            }
        }
        public void OnMouseWheel(MouseEventInfo e, KeyEventInfo k)
        {
            if (previousMouseWheel == 0)
            {
                previousMouseWheel = e.WheelPrecise;
            }

            e.Delta = e.WheelPrecise - previousMouseWheel;
            _context.Camera.Controller.MouseWheel(e, k);
            previousMouseWheel = e.WheelPrecise;
        }
        private MouseEventInfo CreateMouseState()
        {
            var mouseInfo = new MouseEventInfo();

            //Prepare info
            if (ImGui.IsMouseDown(ImGuiMouseButton.Right))
            {
                mouseInfo.RightButton = ButtonState.Pressed;
            }
            if (ImGui.IsMouseDown(ImGuiMouseButton.Left))
            {
                mouseInfo.LeftButton = ButtonState.Pressed;
            }

            if (ImGui.IsMouseReleased(ImGuiMouseButton.Right))
            {
                mouseInfo.RightButton = ButtonState.Released;
            }
            if (ImGui.IsMouseReleased(ImGuiMouseButton.Left))
            {
                mouseInfo.LeftButton = ButtonState.Released;
            }

            MouseState mouseState = Mouse.GetState();

            mouseInfo.WheelPrecise = mouseState.WheelPrecise;

            //Construct relative position
            var windowPos = ImGui.GetWindowPos();

            var pos = ImGui.GetIO().MousePos;

            pos = new System.Numerics.Vector2(pos.X - windowPos.X, pos.Y - windowPos.Y);

            if (ImGui.IsMousePosValid())
            {
                mouseInfo.Position = new System.Drawing.Point((int)pos.X, (int)pos.Y);
            }
            else
            {
                mouseInfo.HasValue = false;
            }

            mouseInfo.FullPosition = new System.Drawing.Point(Mouse.GetCursorState().X, Mouse.GetCursorState().Y);

            return(mouseInfo);
        }
        public void OnMouseMove(MouseEventInfo e, KeyEventInfo k, OpenTK.Vector2 refPos)
        {
            _context.OnMouseMove(e);

            int transformState = 0;

            if (_context.Scene.ActiveAction != null)
            {
                transformState = _context.Scene.ActiveAction.OnMouseMove(_context, e);
            }

            if (transformState != 0)
            {
                return;
            }

            _context.Camera.Controller.MouseMove(e, k, refPos);
            e.FullPosition = new Point((int)refPos.X, (int)refPos.Y);
        }
        public void OnMouseDown(MouseEventInfo e, KeyEventInfo k)
        {
            _context.OnMouseDown(e);

            if (_context.Scene.ActiveAction != null)
            {
                var state = _context.Scene.ActiveAction.OnMouseDown(_context, e);
                if (state != 0)
                {
                    return;
                }
            }

            if (e.LeftButton == ButtonState.Pressed)
            {
                PickScene(e, true);
            }

            _context.Camera.Controller.MouseClick(e, k);
        }
        private void ApplyMouseState(MouseEventInfo mouseInfo)
        {
            this.CursorVisible = mouseInfo.CursorVisible;

            Mouse.SetPosition(mouseInfo.FullPosition.X, mouseInfo.FullPosition.Y);
        }
Esempio n. 11
0
        public bool TryDequeueEvent(out MouseEventInfo eventInfo)
        {
            if (events.Count > 0)
            {
                eventInfo = events.Dequeue();
                return true;
            }

            eventInfo = new MouseEventInfo();
            return false;
        }
Esempio n. 12
0
        internal void OnMouseEvent(MouseEventInfo e)
        {
            if (!focused || !CursorInside) return;

            events.Enqueue(e);
        }
Esempio n. 13
0
        public override void OnMouseEvent(MouseEventInfo e)
        {
            switch (e.ButtonPressed)
            {
            case MouseButtons.None:
            {
                if (tempPixels.Count > 0)
                {
                    if (!clearTempPaint)
                    {
                        for (int i = paintPixels.Count - 1; i >= 0; i--)
                        {
                            foreach (var coords in tempPixels)
                            {
                                if (paintPixels[i].Position.SameAs(coords.Position))
                                {
                                    paintPixels.RemoveAt(i);
                                    break;
                                }
                            }
                        }

                        if (!brush.Erase)
                        {
                            paintPixels.AddRange(tempPixels);
                        }
                    }
                    else
                    {
                        clearTempPaint = false;
                    }

                    tempPixels.Clear();
                }
            }
            break;

            case MouseButtons.RightMouseButton:
            {
                if (brush.SecondColor.BackColor == ConsoleColor.Black)
                {
                    brush.Erase = true;
                }
                else
                {
                    brush.Erase = false;
                }

                DrawColor(brush.SecondColor, e.Position);
            }
            break;

            case MouseButtons.LeftMouseButton:
            {
                brush.Erase = false;
                DrawColor(brush.FirstColor, e.Position);
            }
            break;

            case MouseButtons.MiddleMouseButton:
            {
                paintPixels.Clear();
            }
            break;

            case MouseButtons.LeftAndRightMouseButton:
            {
                tempPixels.Clear();
                clearTempPaint = true;
            }
            break;
            }
        }
 public void OnMouseUp(MouseEventInfo e)
 {
 }
 public void OnMouseDown(MouseEventInfo e)
 {
     originMouse = e.Position;
 }
Esempio n. 16
0
        public IPickable GetPickedObject(MouseEventInfo e)
        {
            OpenTK.Vector2 position = new OpenTK.Vector2(e.Position.X, _context.Height - e.Position.Y);

            return(_context.Scene.FindPickableAtPosition(_context, position));
        }