Module: SFML::Mouse
- Defined in:
- ext/window/mouse.c,
ext/window/mouse.c
Overview
Real-time mouse state and cursor positioning.
Class Method Summary collapse
-
.button_pressed?(button) ⇒ Boolean
Returns
trueifbuttonis currently pressed. -
.position(window = nil) ⇒ Vector2
Returns the mouse position in desktop coordinates, or relative to
window. -
.position=(value) ⇒ Vector2
Moves the mouse cursor to
value, in desktop coordinates. -
.button_pressed?(button) ⇒ Boolean
Returns
trueifbuttonis currently pressed. -
.set_position(position, window = nil) ⇒ Vector2
Moves the mouse cursor to
position, in desktop coordinates, or relative to +window+'s client area when given.
Class Method Details
.button_pressed?(button) ⇒ Boolean
Returns true if button is currently pressed.
52 53 54 |
# File 'ext/window/mouse.c', line 52
static VALUE Mouse_is_button_pressed(VALUE module, VALUE rb_button) {
return BOOL2RB(sfMouse_isButtonPressed(mouse_button_from_rb(rb_button)));
}
|
.position(window = nil) ⇒ Vector2
Returns the mouse position in desktop coordinates, or relative to window.
64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'ext/window/mouse.c', line 64
static VALUE Mouse_get_position(int argc, VALUE* argv, VALUE module) {
VALUE rb_window;
sfVector2i position;
rb_scan_args(argc, argv, "01", &rb_window);
if (NIL_P(rb_window)) {
position = sfMouse_getPosition(NULL);
} else {
position = Mouse_get_relative_position(rb_window);
}
return vec2f_to_rb((sfVector2f){(float)position.x, (float)position.y});
}
|
.position=(value) ⇒ Vector2
Moves the mouse cursor to value, in desktop coordinates.
106 107 108 |
# File 'ext/window/mouse.c', line 106
static VALUE Mouse_position_eq(VALUE module, VALUE rb_position) {
return Mouse_set_position(1, &rb_position, module);
}
|
.button_pressed?(button) ⇒ Boolean
Returns true if button is currently pressed.
52 53 54 |
# File 'ext/window/mouse.c', line 52
static VALUE Mouse_is_button_pressed(VALUE module, VALUE rb_button) {
return BOOL2RB(sfMouse_isButtonPressed(mouse_button_from_rb(rb_button)));
}
|
.set_position(position, window = nil) ⇒ Vector2
Moves the mouse cursor to position, in desktop coordinates, or relative
to +window+'s client area when given.
86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'ext/window/mouse.c', line 86
static VALUE Mouse_set_position(int argc, VALUE* argv, VALUE module) {
VALUE rb_position, rb_window;
rb_scan_args(argc, argv, "11", &rb_position, &rb_window);
if (NIL_P(rb_window)) {
sfMouse_setPosition(vec2i_from_rb(rb_position), NULL);
} else {
Mouse_set_relative_position(rb_window, vec2i_from_rb(rb_position));
}
return rb_position;
}
|