libultraship
Reimplementations of libultra (N64 SDK) functions for modern hardware
Loading...
Searching...
No Matches
Ship::MouseStateManager Class Reference

Manages mouse capture and cursor visibility state for the application window. More...

#include <MouseStateManager.h>

Inheritance diagram for Ship::MouseStateManager:
[legend]

Public Member Functions

 MouseStateManager ()
 Constructs a MouseStateManager with default settings.
 
virtual ~MouseStateManager ()
 Virtual destructor.
 
void SetWindow (std::shared_ptr< Window > window)
 Caches the Window dependency.
 
virtual void StartFrame ()
 Called at the beginning of each frame to update cursor visibility and capture state.
 
virtual bool ShouldAutoCaptureMouse ()
 Checks whether the mouse should be automatically captured by the window.
 
virtual void SetAutoCaptureMouse (bool capture)
 Enables or disables automatic mouse capture.
 
virtual bool ShouldForceCursorVisibility ()
 Checks whether cursor visibility is being forced on.
 
virtual void SetForceCursorVisibility (bool visible)
 Forces the cursor to remain visible regardless of other state.
 
virtual void ToggleMouseCaptureOverride ()
 Toggles the manual mouse capture override on or off.
 
virtual void UpdateMouseCapture ()
 Applies the current mouse capture settings to the underlying window system.
 
virtual void ResetCursorVisibilityTimer ()
 Resets the cursor visibility timeout counter to its configured value.
 
void SetCursorVisibilityTimeTicks (uint32_t ticks)
 Sets the number of ticks before the cursor is automatically hidden.
 
uint32_t GetCursorVisibilityTimeTicks ()
 Returns the configured cursor visibility timeout in ticks.
 

Protected Member Functions

void CursorVisibilityTimeoutTick ()
 Decrements the cursor visibility timeout counter by one tick.
 

Protected Attributes

std::shared_ptr< WindowmWindow
 Cached Window component.
 

Detailed Description

Manages mouse capture and cursor visibility state for the application window.

MouseStateManager handles auto-capturing the mouse when the window has focus, forcing cursor visibility (e.g. when GUI menus are open), and implementing a timed cursor-hide after a period of inactivity.

Constructor & Destructor Documentation

◆ MouseStateManager()

Ship::MouseStateManager::MouseStateManager ( )

Constructs a MouseStateManager with default settings.

◆ ~MouseStateManager()

virtual Ship::MouseStateManager::~MouseStateManager ( )
virtual

Virtual destructor.

Member Function Documentation

◆ CursorVisibilityTimeoutTick()

void Ship::MouseStateManager::CursorVisibilityTimeoutTick ( )
protected

Decrements the cursor visibility timeout counter by one tick.

◆ GetCursorVisibilityTimeTicks()

uint32_t Ship::MouseStateManager::GetCursorVisibilityTimeTicks ( )

Returns the configured cursor visibility timeout in ticks.

Returns
The number of ticks before the cursor hides.

◆ ResetCursorVisibilityTimer()

virtual void Ship::MouseStateManager::ResetCursorVisibilityTimer ( )
virtual

Resets the cursor visibility timeout counter to its configured value.

Reimplemented in Fast::FastMouseStateManager.

◆ SetAutoCaptureMouse()

virtual void Ship::MouseStateManager::SetAutoCaptureMouse ( bool  capture)
virtual

Enables or disables automatic mouse capture.

Parameters
capturetrue to enable auto-capture, false to disable.

◆ SetCursorVisibilityTimeTicks()

void Ship::MouseStateManager::SetCursorVisibilityTimeTicks ( uint32_t  ticks)

Sets the number of ticks before the cursor is automatically hidden.

Parameters
ticksThe visibility duration in ticks.

◆ SetForceCursorVisibility()

virtual void Ship::MouseStateManager::SetForceCursorVisibility ( bool  visible)
virtual

Forces the cursor to remain visible regardless of other state.

Parameters
visibletrue to force cursor visibility, false to allow normal behavior.

◆ SetWindow()

void Ship::MouseStateManager::SetWindow ( std::shared_ptr< Window window)

Caches the Window dependency.

Parameters
windowThe Window this manager operates on.

◆ ShouldAutoCaptureMouse()

virtual bool Ship::MouseStateManager::ShouldAutoCaptureMouse ( )
virtual

Checks whether the mouse should be automatically captured by the window.

Returns
true if auto-capture is enabled.

◆ ShouldForceCursorVisibility()

virtual bool Ship::MouseStateManager::ShouldForceCursorVisibility ( )
virtual

Checks whether cursor visibility is being forced on.

Returns
true if cursor visibility is forced.

◆ StartFrame()

virtual void Ship::MouseStateManager::StartFrame ( )
virtual

Called at the beginning of each frame to update cursor visibility and capture state.

◆ ToggleMouseCaptureOverride()

virtual void Ship::MouseStateManager::ToggleMouseCaptureOverride ( )
virtual

Toggles the manual mouse capture override on or off.

◆ UpdateMouseCapture()

virtual void Ship::MouseStateManager::UpdateMouseCapture ( )
virtual

Applies the current mouse capture settings to the underlying window system.

Member Data Documentation

◆ mWindow

std::shared_ptr<Window> Ship::MouseStateManager::mWindow
protected

Cached Window component.


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