libultraship
Reimplementations of libultra (N64 SDK) functions for modern hardware
Loading...
Searching...
No Matches
MouseStateManager.h
Go to the documentation of this file.
1#pragma once
2
3#include <stdint.h>
4#include <memory>
5
6namespace Ship {
7class Window;
8
17 public:
20
23
28 void SetWindow(std::shared_ptr<Window> window);
29
31 virtual void StartFrame();
32
37 virtual bool ShouldAutoCaptureMouse();
38
43 virtual void SetAutoCaptureMouse(bool capture);
44
50
55 virtual void SetForceCursorVisibility(bool visible);
56
59
61 virtual void UpdateMouseCapture();
62
65
70 void SetCursorVisibilityTimeTicks(uint32_t ticks);
71
77
78 protected:
81
82 std::shared_ptr<Window> mWindow;
83
84 private:
85 bool mAutoCaptureMouse = false;
86 bool mForceCursorVisibility = false;
87
88 uint32_t mCursorVisibleTicks = 180;
89 uint32_t mCursorVisibleTicksCounter = mCursorVisibleTicks;
90};
91} // namespace Ship
Manages mouse capture and cursor visibility state for the application window.
Definition MouseStateManager.h:16
virtual void SetAutoCaptureMouse(bool capture)
Enables or disables automatic mouse capture.
void SetCursorVisibilityTimeTicks(uint32_t ticks)
Sets the number of ticks before the cursor is automatically hidden.
void CursorVisibilityTimeoutTick()
Decrements the cursor visibility timeout counter by one tick.
virtual bool ShouldAutoCaptureMouse()
Checks whether the mouse should be automatically captured by the window.
virtual void StartFrame()
Called at the beginning of each frame to update cursor visibility and capture state.
std::shared_ptr< Window > mWindow
Cached Window component.
Definition MouseStateManager.h:82
virtual void ToggleMouseCaptureOverride()
Toggles the manual mouse capture override on or off.
MouseStateManager()
Constructs a MouseStateManager with default settings.
void SetWindow(std::shared_ptr< Window > window)
Caches the Window dependency.
uint32_t GetCursorVisibilityTimeTicks()
Returns the configured cursor visibility timeout in ticks.
virtual bool ShouldForceCursorVisibility()
Checks whether cursor visibility is being forced on.
virtual void ResetCursorVisibilityTimer()
Resets the cursor visibility timeout counter to its configured value.
virtual ~MouseStateManager()
Virtual destructor.
virtual void SetForceCursorVisibility(bool visible)
Forces the cursor to remain visible regardless of other state.
virtual void UpdateMouseCapture()
Applies the current mouse capture settings to the underlying window system.
Core namespace for the libultraship engine framework.
Definition gfx_direct3d_common.h:14