module SF::Mouse

Overview

Give access to the real-time state of the mouse

SF::Mouse provides an interface to the state of the mouse. It only contains static functions (a single mouse is assumed), so it's not meant to be instantiated.

This module allows users to query the mouse state at any time and directly, without having to deal with a window and its events. Compared to the MouseMoved, MouseButtonPressed and MouseButtonReleased events, SF::Mouse can retrieve the state of the cursor and the buttons at any time (you don't need to store and update a boolean on your side in order to know if a button is pressed or released), and you always get the real state of the mouse, even if it is moved, pressed or released when your window is out of focus and no event is triggered.

The position= and position functions can be used to change or retrieve the current position of the mouse pointer. There are two versions: one that operates in global coordinates (relative to the desktop) and one that operates in window coordinates (relative to a specific window).

Usage example:

if SF::Mouse.button_pressed?(SF::Mouse::Left)
  # left click...
end

# get global mouse position
position = SF::Mouse.position

# set mouse position relative to a window
SF::Mouse.set_position(SF.vector2i(100, 200), window)

See also: SF::Joystick, SF::Keyboard, SF::Touch

Defined in:

window/obj.cr

Class Method Summary

Class Method Detail

def self.button_pressed?(button : Mouse::Button) : Bool #

Check if a mouse button is pressed

  • button - Button to check

Returns: True if the button is pressed, false otherwise


[View source]
def self.get_position(relative_to : Window) : Vector2i #

Get the current position of the mouse in window coordinates

This function returns the current position of the mouse cursor, relative to the given window.

  • relative_to - Reference window

Returns: Current position of the mouse


[View source]
def self.position : Vector2i #

Get the current position of the mouse in desktop coordinates

This function returns the global position of the mouse cursor on the desktop.

Returns: Current position of the mouse


[View source]
def self.position=(position : Vector2 | Tuple) #

Set the current position of the mouse in desktop coordinates

This function sets the global position of the mouse cursor on the desktop.

  • position - New position of the mouse

[View source]
def self.set_position(position : Vector2 | Tuple, relative_to : Window) #

Set the current position of the mouse in window coordinates

This function sets the current position of the mouse cursor, relative to the given window.

  • position - New position of the mouse
  • relative_to - Reference window

[View source]