CrystGLFW::Window::Cursor
A CrystGLFW::Window::Cursor (or Cursor, for the purposes of this guide) represents the system cursor with respect to a given Window. Objects of type Cursor are always associated with a Window and can only be created indirectly through a Window.
cursor
You can create a Cursor by using the cursor method:
window = Window.new
cursor = window.cursor # => CrystGLFW::Window::Cursor
Internally, if window does not yet have a cursor assigned to it, then one will be created and returned from the cursor method. If a Cursor has already been created for this window, then that Cursor will be returned.
If you wish to create a new Cursor for window with a given Cursor::Shape, you can pass it to the cursor method:
window = Window.new
cursor = window.cursor(Window::Cursor::Shape::Arrow) # creates a cursor with the standard arrow shape
cursor = window.cursor(Window::Cursor::Shape::Crosshair) # creates a cursor with the crosshair shape
cursor = window.cursor # returns the previously created crosshair cursor.
The available shapes are:
ArrowIBeamCrosshairHandHResizeVResize
You can also create a Cursor with a custom appearance:
window = Window.new
image = Window::Image.new(32, 32, pixels)
cursor = window.cursor(image, 0, 0) # creates a cursor that looks like *image*
When creating a custom cursor, the cursor method accepts the following arguments:
- image, the
Imagethat the cursor should look like. - x, the x-coordinate of the cursor's hotspot.
- y, the y-coordinate of the cursor's hotspot.
The cursor method must be called from within a run block definition.
remove_cursor
You can remove a window's cursor without assigning a new cursor using the remove_cursor method:
window = Window.new
cursor = window.cursor(Window::Cursor::Shape::Hand)
window.remove_cursor # removes the hand cursor, now the window has no cursor.
remove_cursor must be called from within a run block definition.