Warning
This page refers to an old version of SFML. Click here to switch to the latest version.
Warning
This page refers to an old version of SFML. Click here to switch to the latest version.
Cursor defines the appearance of a system cursor. More...
#include <SFML/Window/Cursor.hpp>
Public Types | |
enum class | 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 () | |
Destructor. | |
Cursor (const Cursor &)=delete | |
Deleted copy constructor. | |
Cursor & | operator= (const Cursor &)=delete |
Deleted copy assignment. | |
Cursor (Cursor &&) noexcept | |
Move constructor. | |
Cursor & | operator= (Cursor &&) noexcept |
Move assignment. | |
Cursor (const std::uint8_t *pixels, Vector2u size, Vector2u hotspot) | |
Construct a cursor with the provided image. | |
Cursor (Type type) | |
Create a native system cursor. |
Static Public Member Functions | |
static std::optional< Cursor > | createFromPixels (const std::uint8_t *pixels, Vector2u size, Vector2u hotspot) |
Create a cursor with the provided image. | |
static std::optional< Cursor > | createFromSystem (Type type) |
Create a native system cursor. |
Friends | |
class | WindowBase |
Cursor defines the appearance of a system cursor.
This class abstracts the operating system resources associated with either a native system cursor or a custom cursor.
After loading the cursor graphical appearance with either createFromPixels() or createFromSystem(), the cursor can be changed with sf::WindowBase::setMouseCursor().
The behavior is undefined if the cursor is destroyed while in use by the window.
Usage example:
Definition at line 50 of file Cursor.hpp.
|
strong |
Enumeration of the native system cursor types.
Refer to the following table to determine which cursor is available on which platform.
Type | Linux | macOS | Windows |
---|---|---|---|
sf::Cursor::Type::Arrow | yes | yes | yes |
sf::Cursor::Type::ArrowWait | no | no | yes |
sf::Cursor::Type::Wait | yes | no | yes |
sf::Cursor::Type::Text | yes | yes | yes |
sf::Cursor::Type::Hand | yes | yes | yes |
sf::Cursor::Type::SizeHorizontal | yes | yes | yes |
sf::Cursor::Type::SizeVertical | yes | yes | yes |
sf::Cursor::Type::SizeTopLeftBottomRight | no | yes* | yes |
sf::Cursor::Type::SizeBottomLeftTopRight | no | yes* | yes |
sf::Cursor::Type::SizeLeft | yes | yes** | yes** |
sf::Cursor::Type::SizeRight | yes | yes** | yes** |
sf::Cursor::Type::SizeTop | yes | yes** | yes** |
sf::Cursor::Type::SizeBottom | yes | yes** | yes** |
sf::Cursor::Type::SizeTopLeft | yes | yes** | yes** |
sf::Cursor::Type::SizeTopRight | yes | yes** | yes** |
sf::Cursor::Type::SizeBottomLeft | yes | yes** | yes** |
sf::Cursor::Type::SizeBottomRight | yes | yes** | yes** |
sf::Cursor::Type::SizeAll | yes | no | yes |
sf::Cursor::Type::Cross | yes | yes | yes |
sf::Cursor::Type::Help | yes | yes* | yes |
sf::Cursor::Type::NotAllowed | yes | yes | yes |
** On Windows and macOS, double-headed arrows are used
Definition at line 89 of file Cursor.hpp.
sf::Cursor::~Cursor | ( | ) |
Destructor.
This destructor releases the system resources associated with this cursor, if any.
|
delete |
Deleted copy constructor.
|
noexcept |
Move constructor.
Construct a cursor with the provided image.
pixels must be an array of size pixels in 32-bit RGBA format. If not, this will cause undefined behavior.
If pixels is nullptr or either of size's properties 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.
pixels | Array of pixels of the image |
size | Width and height of the image |
hotspot | (x,y) location of the hotspot |
sf::Exception | if the cursor could not be constructed |
|
explicit |
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.
type | Native system cursor type |
sf::Exception | if the corresponding cursor is not natively supported by the operating system |
|
staticnodiscard |
Create a cursor with the provided image.
pixels must be an array of size pixels in 32-bit RGBA format. If not, this will cause undefined behavior.
If pixels is nullptr or either of size's properties 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.
pixels | Array of pixels of the image |
size | Width and height of the image |
hotspot | (x,y) location of the hotspot |
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.
type | Native system cursor type |
|
friend |
Definition at line 245 of file Cursor.hpp.