SFML 2.6.1

- Main Page
- Related Pages
- Topics
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Loading...
Searching...
No Matches
Public Types | Public Member Functions | Friends | List of all members
sf::Cursor Class Reference
Window module

Cursor defines the appearance of a system cursor. More...

`#include <SFML/Window/Cursor.hpp>`

Inheritance diagram for sf::Cursor:

## Public Types

enum | Type { Arrow , ArrowWait , Wait , Text , Hand , SizeHorizontal , SizeVertical , SizeTopLeftBottomRight , SizeBottomLeftTopRight , SizeLeft , SizeRight , SizeTop , SizeBottom , SizeTopLeft , SizeBottomRight , SizeBottomLeft , SizeTopRight , SizeAll , Cross , Help , NotAllowed }
| Enumeration of the native system cursor types. More...

## Public Member Functions

| Cursor ()
| Default constructor.
| ~Cursor ()
| Destructor.
bool | loadFromPixels (const Uint8 *pixels, Vector2u size, Vector2u hotspot)
| Create a cursor with the provided image.
bool | loadFromSystem (Type type)
| Create a native system cursor.

## Friends

class | WindowBase

## Detailed Description

Cursor defines the appearance of a system cursor.

Warning
  Features related to Cursor are not supported on iOS and Android.

This class abstracts the operating system resources associated with either a native system cursor or a custom cursor.

After loading the cursor the graphical appearance with either loadFromPixels() or loadFromSystem(), the cursor can be changed with sf::Window::setMouseCursor().

The behaviour is undefined if the cursor is destroyed while in use by the window.

Usage example:

sf::Window window;
// ... create window as usual ...
sf::Cursor cursor;
if (cursor.loadFromSystem(sf::Cursor::Hand))
window.setMouseCursor(cursor);
sf::Cursor
Cursor defines the appearance of a system cursor.
Definition Cursor.hpp:47
sf::Cursor::Hand
@ Hand
Pointing hand cursor.
Definition Cursor.hpp:92
sf::Cursor::loadFromSystem
bool loadFromSystem(Type type)
Create a native system cursor.
sf::WindowBase::setMouseCursor
void setMouseCursor(const Cursor &cursor)
Set the displayed cursor to a native system cursor.
sf::Window
Window that serves as a target for OpenGL rendering.
Definition Window/Window.hpp:50

See also
  sf::Window::setMouseCursor

Definition at line 46 of file Cursor.hpp.

## Member Enumeration Documentation

## ◆ Type

enum sf::Cursor::Type

Enumeration of the native system cursor types.

Refer to the following table to determine which cursor is available on which platform.

Type | Linux | Mac OS X | Windows
--- | --- | --- | ---
sf::Cursor::Arrow | yes | yes | yes
sf::Cursor::ArrowWait | no | no | yes
sf::Cursor::Wait | yes | no | yes
sf::Cursor::Text | yes | yes | yes
sf::Cursor::Hand | yes | yes | yes
sf::Cursor::SizeHorizontal | yes | yes | yes
sf::Cursor::SizeVertical | yes | yes | yes
sf::Cursor::SizeTopLeftBottomRight | no | yes* | yes
sf::Cursor::SizeBottomLeftTopRight | no | yes* | yes
sf::Cursor::SizeLeft | yes | yes** | yes**
sf::Cursor::SizeRight | yes | yes** | yes**
sf::Cursor::SizeTop | yes | yes** | yes**
sf::Cursor::SizeBottom | yes | yes** | yes**
sf::Cursor::SizeTopLeft | yes | yes** | yes**
sf::Cursor::SizeTopRight | yes | yes** | yes**
sf::Cursor::SizeBottomLeft | yes | yes** | yes**
sf::Cursor::SizeBottomRight | yes | yes** | yes**
sf::Cursor::SizeAll | yes | no | yes
sf::Cursor::Cross | yes | yes | yes
sf::Cursor::Help | yes | yes* | yes
sf::Cursor::NotAllowed | yes | yes | yes

- These cursor types are undocumented so may not be available on all versions, but have been tested on 10.13

** On Windows and macOS, double-headed arrows are used

Enumerator
Arrow | Arrow cursor (default)
ArrowWait | Busy arrow cursor.
Wait | Busy cursor.
Text | I-beam, cursor when hovering over a field allowing text entry.
Hand | Pointing hand cursor.
SizeHorizontal | Horizontal double arrow cursor.
SizeVertical | Vertical double arrow cursor.
SizeTopLeftBottomRight | Double arrow cursor going from top-left to bottom-right.
SizeBottomLeftTopRight | Double arrow cursor going from bottom-left to top-right.
SizeLeft | Left arrow cursor on Linux, same as SizeHorizontal on other platforms.
SizeRight | Right arrow cursor on Linux, same as SizeHorizontal on other platforms.
SizeTop | Up arrow cursor on Linux, same as SizeVertical on other platforms.
SizeBottom | Down arrow cursor on Linux, same as SizeVertical on other platforms.
SizeTopLeft | Top-left arrow cursor on Linux, same as SizeTopLeftBottomRight on other platforms.
SizeBottomRight | Bottom-right arrow cursor on Linux, same as SizeTopLeftBottomRight on other platforms.
SizeBottomLeft | Bottom-left arrow cursor on Linux, same as SizeBottomLeftTopRight on other platforms.
SizeTopRight | Top-right arrow cursor on Linux, same as SizeBottomLeftTopRight on other platforms.
SizeAll | Combination of SizeHorizontal and SizeVertical.
Cross | Crosshair cursor.
Help | Help cursor.
NotAllowed | Action not allowed cursor.

Definition at line 86 of file Cursor.hpp.

## Constructor & Destructor Documentation

## ◆ Cursor()

sf::Cursor::Cursor | ( |  | ) |

Default constructor.

This constructor doesn't actually create the cursor; initially the new instance is invalid and must not be used until either loadFromPixels() or loadFromSystem() is called and successfully created a cursor.

## ◆ ~Cursor()

sf::Cursor::~Cursor | ( |  | ) |

Destructor.

This destructor releases the system resources associated with this cursor, if any.

## Member Function Documentation

## ◆ loadFromPixels()

bool sf::Cursor::loadFromPixels | ( | const Uint8 * | pixels,
|  | Vector2u | size,
|  | Vector2u | hotspot
| ) |  |

Create a cursor with the provided image.

pixels must be an array of width by height pixels in 32-bit RGBA format. If not, this will cause undefined behavior.

If pixels is null or either width or height are 0, the current cursor is left unchanged and the function will return false.

In addition to specifying the pixel data, you can also specify the location of the hotspot of the cursor. The hotspot is the pixel coordinate within the cursor image which will be located exactly where the mouse pointer position is. Any mouse actions that are performed will return the window/screen location of the hotspot.

Warning
  On Unix platforms which do not support colored cursors, the pixels are mapped into a monochrome bitmap: pixels with an alpha channel to 0 are transparent, black if the RGB channel are close to zero, and white otherwise.

Parameters

  pixels | Array of pixels of the image
  size | Width and height of the image
  hotspot | (x,y) location of the hotspot

Returns
  true if the cursor was successfully loaded; false otherwise

## ◆ loadFromSystem()

bool sf::Cursor::loadFromSystem | ( | Type | type | ) |

Create a native system cursor.

Refer to the list of cursor available on each system (see sf::Cursor::Type) to know whether a given cursor is expected to load successfully or is not supported by the operating system.

Parameters

  type | Native system cursor type

Returns
  true if and only if the corresponding cursor is natively supported by the operating system; false otherwise

## Friends And Related Symbol Documentation

## ◆ WindowBase

friend class WindowBase

friend

Definition at line 183 of file Cursor.hpp.

The documentation for this class was generated from the following file:

- Cursor.hpp