GetPosition() public static method

Get the current position of the mouse
public static GetPosition ( ) : Vector2i
return Vector2i
Example #1
0
        private void DrawSurface_MouseWheel(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            model.ScrollCount += Math.Sign(e.Delta);

            //Cap Zoom
            if (model.ScrollCount < model.ZoomMaxCap)
            {
                model.ScrollCount = model.ZoomMaxCap;
            }
            if (model.ScrollCount > model.ZoomMinCap)
            {
                model.ScrollCount = model.ZoomMinCap;
            }

            double oldZoom = model.Zoom;

            model.Zoom = (float)Math.Pow(1 + (model.ZoomSpeed / 100 * Math.Sign(model.ScrollCount)), Math.Abs(model.ScrollCount));

            double oldDelta = (Mouse.GetPosition().X - this._renderWindow.Position.X) - model.OffsetX;
            double newDelta = oldDelta * (model.Zoom / oldZoom);

            model.OffsetX += (float)(oldDelta - newDelta);

            UpdateWindow();
        }
Example #2
0
        private void UpdateWindow()
        {
            this.model.Debug_NoRefreshes += 1;  // Display Number of Refreshes for Debugging

            //      Process Events
            this._renderWindow.DispatchEvents();

            //      Clear Screen
            this._renderWindow.Clear(model.Theme.BackgroundColor);

            //      Draw Screen
            // SCROLL SCREEN
            if (KeyPressed_W)
            {
                model.OffsetY += model.ScrollSpeed;
            }
            if (KeyPressed_A)
            {
                model.OffsetX += model.ScrollSpeed;
            }
            if (KeyPressed_S)
            {
                model.OffsetY -= model.ScrollSpeed;
            }
            if (KeyPressed_D)
            {
                model.OffsetX -= model.ScrollSpeed;
            }

            // DRAW LINE
            model.DrawLine(this._renderWindow);

            // DRAW MARKERS
            model.DrawMarkers(this._renderWindow);

            // DRAW EVENTS
            model.DrawEvents(this._renderWindow);

            // PAN SCREEN
            if (IsMouseDown)
            {
                float CurrMouseX = Mouse.GetPosition().X - _renderWindow.Position.X;
                float CurrMouseY = Mouse.GetPosition().Y - _renderWindow.Position.Y;

                model.OffsetX -= PrevMousePos.X - CurrMouseX;
                model.OffsetY -= PrevMousePos.Y - CurrMouseY;

                PrevMousePos = new Vector2f(CurrMouseX, CurrMouseY);
            }

            // DRAW TITLE
            model.DrawTitle(this._renderWindow);


            //      Display Window
            this._renderWindow.Display();
        }
Example #3
0
        private void DrawSurface_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            bool closeSideColumn = true;

            foreach (EventViewModel eventViewModel in model.ListOfEvents)
            {
                if (eventViewModel.IsMouseOver(_renderWindow) && eventViewModel != model.EditingEvent)
                {
                    CloseSideColumn();
                    OpenSideColumn(eventViewModel);

                    closeSideColumn = false;
                }
            }

            // Close side column if the cursor wasn't dragged
            if (closeSideColumn && LastClickedPos == new Vector2f(Mouse.GetPosition().X - _renderWindow.Position.X, Mouse.GetPosition().Y - _renderWindow.Position.Y))
            {
                CloseSideColumn();
            }
        }
Example #4
0
        private void DrawSurface_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            IsMouseDown = true;

            PrevMousePos   = new Vector2f(Mouse.GetPosition().X - _renderWindow.Position.X, Mouse.GetPosition().Y - _renderWindow.Position.Y);
            LastClickedPos = PrevMousePos;
        }
Example #5
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            UpdateWindow();

            RefreshScreenStopwatch.Start();

            Thread backgroundThread = new Thread(() =>
            {
                while (_renderWindow.IsOpen)
                {
                    System.Windows.Application.Current?.Dispatcher.Invoke(DispatcherPriority.Loaded, new Action(() =>
                    {
                        // Update Year At Mouse
                        model.YearAtMouse = (int)Math.Round(
                            (Mouse.GetPosition().X - _renderWindow.Position.X - model.OffsetX) / (model.IntervalLengthPx * model.Zoom));

                        bool Update;

                        if (RefreshScreenStopwatch.ElapsedMilliseconds > RefreshRateInSeconds * 1000)
                        {
                            Update = true;
                            RefreshScreenStopwatch.Restart();
                        }
                        else
                        {
                            Update =
                                IsMouseDown ||
                                KeyPressed_W || KeyPressed_A || KeyPressed_S || KeyPressed_D;
                        }


                        // Check if a note needs to be drawn

                        bool DrawNote = false;
                        foreach (EventViewModel n in model.ListOfEvents)
                        {
                            if (n.IsMouseOver(_renderWindow))
                            {
                                // Update window so the background color changes
                                Update = true;

                                // Check if Note needs to be drawn
                                if (n.Note != null)
                                {
                                    DrawNote = true;

                                    if (!DisplayEventNoteStopwatch.IsRunning)
                                    {
                                        DisplayEventNoteStopwatch.Start();
                                    }

                                    if (DisplayEventNoteStopwatch.Elapsed.TotalSeconds > model.DisplayNoteDelayInSeconds)
                                    {
                                        model.EventToDrawNote = n;
                                    }
                                }
                            }
                        }

                        if (!DrawNote)
                        {
                            DisplayEventNoteStopwatch.Stop();
                            DisplayEventNoteStopwatch.Reset();

                            model.EventToDrawNote = null;
                        }

                        if (Update)
                        {
                            UpdateWindow();
                        }
                    }
                                                                                                                ));
                }
            });

            backgroundThread.Start();

            DrawSurface.Focus();
        }