4#include <SDL3/SDL_mouse.h> 
    5#include "SDL3pp_stdinc.h" 
    6#include "SDL3pp_video.h" 
   74  constexpr explicit operator bool()
 const { 
return !!
value; }
 
   91  SDL_SYSTEM_CURSOR_DEFAULT; 
 
   94  SDL_SYSTEM_CURSOR_TEXT; 
 
  100  SDL_SYSTEM_CURSOR_CROSSHAIR; 
 
  106  SDL_SYSTEM_CURSOR_NWSE_RESIZE; 
 
  110  SDL_SYSTEM_CURSOR_NESW_RESIZE; 
 
  114  SDL_SYSTEM_CURSOR_EW_RESIZE; 
 
  117  SDL_SYSTEM_CURSOR_NS_RESIZE; 
 
  124  SDL_SYSTEM_CURSOR_NOT_ALLOWED;
 
  136  SDL_SYSTEM_CURSOR_N_RESIZE; 
 
  139  SDL_SYSTEM_CURSOR_NE_RESIZE; 
 
  143  SDL_SYSTEM_CURSOR_E_RESIZE; 
 
  146  SDL_SYSTEM_CURSOR_SE_RESIZE; 
 
  150  SDL_SYSTEM_CURSOR_S_RESIZE; 
 
  153  SDL_SYSTEM_CURSOR_SW_RESIZE; 
 
  157  SDL_SYSTEM_CURSOR_W_RESIZE; 
 
  198    : m_resource(resource)
 
  261        CheckError(SDL_CreateCursor(data, mask, size.x, size.y, hot.x, hot.y)))
 
  293    : m_resource(
CheckError(SDL_CreateColorCursor(surface, hot.x, hot.y)))
 
  311    : m_resource(
CheckError(SDL_CreateSystemCursor(id)))
 
  321    std::swap(m_resource, other.m_resource);
 
  332    m_resource = 
nullptr;
 
  340  constexpr bool operator==(std::nullptr_t _)
 const { 
return !m_resource; }
 
  343  constexpr explicit operator bool()
 const { 
return !!m_resource; }
 
  417  SDL_MOUSEWHEEL_NORMAL; 
 
  420  SDL_MOUSEWHEEL_FLIPPED; 
 
  468  return SDL_BUTTON_MASK(button);
 
  526  return SDL_GetMouseNameForID(instance_id);
 
  573  return SDL_GetMouseState(x, y);
 
  613  return SDL_GetGlobalMouseState(x, y);
 
  651  return SDL_GetRelativeMouseState(x, y);
 
  656  SDL_WarpMouseInWindow(m_resource, p.x, p.y);
 
  710  CheckError(SDL_SetWindowRelativeMouseMode(m_resource, enabled));
 
  726  return SDL_GetWindowRelativeMouseMode(m_resource);
 
  825  return Cursor(data, mask, size, hot);
 
  857  return Cursor(surface, hot);
 
The structure used to identify an SDL cursor.
Definition: SDL3pp_mouse.h:183
 
constexpr Cursor(Cursor &&other)
Move constructor.
Definition: SDL3pp_mouse.h:206
 
constexpr Cursor()=default
Default ctor.
 
Cursor(SystemCursor id)
Create a system cursor.
Definition: SDL3pp_mouse.h:310
 
Cursor(SurfaceParam surface, const PointRaw &hot)
Create a color cursor.
Definition: SDL3pp_mouse.h:292
 
constexpr CursorRaw get() const
Retrieves underlying CursorRaw.
Definition: SDL3pp_mouse.h:326
 
constexpr bool operator==(std::nullptr_t _) const
Comparison.
Definition: SDL3pp_mouse.h:340
 
constexpr Cursor(const CursorRaw resource)
Constructs from CursorParam.
Definition: SDL3pp_mouse.h:197
 
Cursor & operator=(Cursor other)
Assignment operator.
Definition: SDL3pp_mouse.h:319
 
constexpr CursorRaw release()
Retrieves underlying CursorRaw and clear this.
Definition: SDL3pp_mouse.h:329
 
constexpr Cursor(const Cursor &other)=delete
Copy constructor.
 
Cursor(const Uint8 *data, const Uint8 *mask, const PointRaw &size, const PointRaw &hot)
Create a cursor using the specified bitmap data and mask (in MSB format).
Definition: SDL3pp_mouse.h:256
 
~Cursor()
Destructor.
Definition: SDL3pp_mouse.h:316
 
constexpr auto operator<=>(const Cursor &other) const =default
Comparison.
 
Base class for SDL memory allocated array wrap.
Definition: SDL3pp_ownPtr.h:44
 
constexpr void CheckError(bool result)
Check and throw if returned value from SDL is an error.
Definition: SDL3pp_error.h:198
 
Cursor CreateCursor(const Uint8 *data, const Uint8 *mask, const PointRaw &size, const PointRaw &hot)
Create a cursor using the specified bitmap data and mask (in MSB format).
Definition: SDL3pp_mouse.h:820
 
constexpr SystemCursor SYSTEM_CURSOR_MOVE
Four pointed arrow pointing north, south, east, and west.
Definition: SDL3pp_mouse.h:120
 
bool GetRelativeMouseMode() const
Query whether relative mouse mode is enabled for a window.
Definition: SDL3pp_mouse.h:724
 
constexpr SystemCursor SYSTEM_CURSOR_POINTER
Pointer that indicates a link. Usually a pointing hand.
Definition: SDL3pp_mouse.h:127
 
constexpr MouseWheelDirection MOUSEWHEEL_NORMAL
The scroll direction is normal.
Definition: SDL3pp_mouse.h:416
 
SDL_SystemCursor SystemCursor
Cursor types for Cursor.Cursor().
Definition: SDL3pp_mouse.h:88
 
constexpr SystemCursor SYSTEM_CURSOR_SE_RESIZE
Window resize bottom-right.
Definition: SDL3pp_mouse.h:145
 
constexpr MouseButton BUTTON_RIGHT
Right button.
Definition: SDL3pp_mouse.h:432
 
constexpr SystemCursor SYSTEM_CURSOR_W_RESIZE
Window resize left. May be EW_RESIZE.
Definition: SDL3pp_mouse.h:156
 
constexpr MouseButton BUTTON_MIDDLE
Middle button.
Definition: SDL3pp_mouse.h:430
 
CursorRef GetCursor()
Get the active cursor.
Definition: SDL3pp_mouse.h:910
 
void Destroy()
Free a previously-created cursor.
Definition: SDL3pp_mouse.h:948
 
void DestroyCursor(CursorRaw cursor)
Free a previously-created cursor.
Definition: SDL3pp_mouse.h:946
 
constexpr SystemCursor SYSTEM_CURSOR_NESW_RESIZE
Double arrow pointing northeast and southwest.
Definition: SDL3pp_mouse.h:109
 
constexpr MouseWheelDirection MOUSEWHEEL_FLIPPED
The scroll direction is flipped / natural.
Definition: SDL3pp_mouse.h:419
 
MouseButtonFlags GetRelativeMouseState(float *x, float *y)
Query SDL's cache for the synchronous mouse button state and accumulated mouse delta since last call.
Definition: SDL3pp_mouse.h:649
 
constexpr MouseButtonFlags ButtonMask(MouseButton button)
Returns mask for button.
Definition: SDL3pp_mouse.h:466
 
void CaptureMouse(bool enabled)
Capture the mouse and to track input outside an SDL window.
Definition: SDL3pp_mouse.h:774
 
Cursor CreateSystemCursor(SystemCursor id)
Create a system cursor.
Definition: SDL3pp_mouse.h:873
 
Uint32 MouseButtonFlags
A bitmask of pressed mouse buttons, as reported by GetMouseState, etc.
Definition: SDL3pp_mouse.h:453
 
constexpr SystemCursor SYSTEM_CURSOR_NW_RESIZE
Window resize top-left.
Definition: SDL3pp_mouse.h:133
 
constexpr SystemCursor SYSTEM_CURSOR_CROSSHAIR
Crosshair.
Definition: SDL3pp_mouse.h:99
 
void WarpMouse(const FPointRaw &p)
Move the mouse to the given position in global screen space.
Definition: SDL3pp_mouse.h:679
 
MouseButtonFlags GetGlobalMouseState(float *x, float *y)
Query the platform for the asynchronous mouse button state and the desktop-relative platform-cursor p...
Definition: SDL3pp_mouse.h:611
 
constexpr SystemCursor SYSTEM_CURSOR_NWSE_RESIZE
Double arrow pointing northwest and southeast.
Definition: SDL3pp_mouse.h:105
 
constexpr SystemCursor SYSTEM_CURSOR_E_RESIZE
Window resize right. May be EW_RESIZE.
Definition: SDL3pp_mouse.h:142
 
constexpr MouseButton BUTTON_X1
X1 button.
Definition: SDL3pp_mouse.h:434
 
constexpr SystemCursor SYSTEM_CURSOR_NS_RESIZE
Double arrow pointing north and south.
Definition: SDL3pp_mouse.h:116
 
const char * GetMouseNameForID(MouseID instance_id)
Get the name of a mouse.
Definition: SDL3pp_mouse.h:524
 
constexpr SystemCursor SYSTEM_CURSOR_COUNT
COUNT.
Definition: SDL3pp_mouse.h:159
 
SDL_MouseID MouseID
This is a unique ID for a mouse for the time it is connected to the system, and is never reused for t...
Definition: SDL3pp_mouse.h:171
 
constexpr MouseButtonFlags BUTTON_RMASK
RMASK.
Definition: SDL3pp_mouse.h:459
 
constexpr SystemCursor SYSTEM_CURSOR_NOT_ALLOWED
Not permitted. Usually a slashed circle or crossbones.
Definition: SDL3pp_mouse.h:123
 
void Set()
Set the active cursor.
Definition: SDL3pp_mouse.h:894
 
constexpr MouseButton BUTTON_LEFT
Left button.
Definition: SDL3pp_mouse.h:428
 
MouseButtonFlags GetMouseState(float *x, float *y)
Query SDL's cache for the synchronous mouse button state and the window-relative SDL-cursor position.
Definition: SDL3pp_mouse.h:571
 
constexpr MouseButtonFlags BUTTON_LMASK
LMASK.
Definition: SDL3pp_mouse.h:455
 
constexpr MouseButtonFlags BUTTON_X2MASK
X2MASK.
Definition: SDL3pp_mouse.h:463
 
void SetRelativeMouseMode(bool enabled)
Set relative mouse mode for a window.
Definition: SDL3pp_mouse.h:708
 
constexpr SystemCursor SYSTEM_CURSOR_WAIT
Wait. Usually an hourglass or watch or spinning ball.
Definition: SDL3pp_mouse.h:97
 
Uint8 MouseButton
Represents a button index.
Definition: SDL3pp_mouse.h:426
 
constexpr SystemCursor SYSTEM_CURSOR_SW_RESIZE
Window resize bottom-left.
Definition: SDL3pp_mouse.h:152
 
void WarpMouse(const FPointRaw &p)
Move the mouse cursor to the given position within the window.
Definition: SDL3pp_mouse.h:654
 
void SetCursor(CursorParam cursor)
Set the active cursor.
Definition: SDL3pp_mouse.h:892
 
constexpr SystemCursor SYSTEM_CURSOR_NE_RESIZE
Window resize top-right.
Definition: SDL3pp_mouse.h:138
 
constexpr SystemCursor SYSTEM_CURSOR_DEFAULT
Default cursor. Usually an arrow.
Definition: SDL3pp_mouse.h:90
 
constexpr MouseButtonFlags BUTTON_X1MASK
X1MASK.
Definition: SDL3pp_mouse.h:461
 
SDL_Cursor * CursorRaw
Alias to raw representation for Cursor.
Definition: SDL3pp_mouse.h:51
 
constexpr SystemCursor SYSTEM_CURSOR_EW_RESIZE
Double arrow pointing west and east.
Definition: SDL3pp_mouse.h:113
 
CursorRef GetDefaultCursor()
Get the default cursor.
Definition: SDL3pp_mouse.h:925
 
WindowRef GetMouseFocus()
Get the window which currently has mouse focus.
Definition: SDL3pp_mouse.h:538
 
bool CursorVisible()
Return whether the cursor is currently being shown.
Definition: SDL3pp_mouse.h:991
 
constexpr MouseButtonFlags BUTTON_MMASK
MMASK.
Definition: SDL3pp_mouse.h:457
 
constexpr SystemCursor SYSTEM_CURSOR_N_RESIZE
Window resize top. May be NS_RESIZE.
Definition: SDL3pp_mouse.h:135
 
Cursor CreateColorCursor(SurfaceParam surface, const PointRaw &hot)
Create a color cursor.
Definition: SDL3pp_mouse.h:855
 
constexpr SystemCursor SYSTEM_CURSOR_S_RESIZE
Window resize bottom. May be NS_RESIZE.
Definition: SDL3pp_mouse.h:149
 
SDL_MouseWheelDirection MouseWheelDirection
Scroll direction types for the Scroll event.
Definition: SDL3pp_mouse.h:414
 
OwnArray< MouseID > GetMice()
Get a list of currently connected mice.
Definition: SDL3pp_mouse.h:502
 
constexpr SystemCursor SYSTEM_CURSOR_TEXT
Text selection. Usually an I-beam.
Definition: SDL3pp_mouse.h:93
 
void HideCursor()
Hide the cursor.
Definition: SDL3pp_mouse.h:976
 
constexpr MouseButton BUTTON_X2
X2 button.
Definition: SDL3pp_mouse.h:436
 
void ShowCursor()
Show the cursor.
Definition: SDL3pp_mouse.h:962
 
constexpr SystemCursor SYSTEM_CURSOR_PROGRESS
Program is busy but still interactive. Usually it's WAIT with an arrow.
Definition: SDL3pp_mouse.h:103
 
bool HasMouse()
Return whether a mouse is currently connected.
Definition: SDL3pp_mouse.h:482
 
SDL_FPoint FPointRaw
Alias to raw representation for FPoint.
Definition: SDL3pp_rect.h:28
 
SDL_Point PointRaw
Alias to raw representation for Point.
Definition: SDL3pp_rect.h:22
 
::Uint32 Uint32
An unsigned 32-bit integer type.
Definition: SDL3pp_stdinc.h:310
 
::Uint8 Uint8
An unsigned 8-bit integer type.
Definition: SDL3pp_stdinc.h:258
 
Main include header for the SDL3pp library.
 
Safely wrap Cursor for non owning parameters.
Definition: SDL3pp_mouse.h:58
 
CursorRaw value
parameter's CursorRaw
Definition: SDL3pp_mouse.h:59
 
constexpr CursorParam(std::nullptr_t _=nullptr)
Constructs null/invalid.
Definition: SDL3pp_mouse.h:68
 
constexpr auto operator<=>(const CursorParam &other) const =default
Comparison.
 
constexpr CursorParam(CursorRaw value)
Constructs from CursorRaw.
Definition: SDL3pp_mouse.h:62
 
Semi-safe reference for Cursor.
Definition: SDL3pp_mouse.h:386
 
CursorRef(CursorParam resource)
Constructs from CursorParam.
Definition: SDL3pp_mouse.h:394
 
~CursorRef()
Destructor.
Definition: SDL3pp_mouse.h:406
 
CursorRef(const CursorRef &other)
Copy constructor.
Definition: SDL3pp_mouse.h:400
 
Safely wrap Surface for non owning parameters.
Definition: SDL3pp_surface.h:46
 
Semi-safe reference for Window.
Definition: SDL3pp_video.h:2967