libvirtualhid 18
Cross-platform C++ library for virtual HID devices.
lvh::Mouse Class Referencefinal

Virtual mouse device handle. More...

#include <src/include/libvirtualhid/runtime.hpp>

Inheritance diagram for lvh::Mouse:
[legend]
Collaboration diagram for lvh::Mouse:
[legend]

Public Member Functions

OperationStatus button (MouseButton button, bool pressed)
 Submit a mouse button transition.
 
OperationStatus close () override
 Close the virtual device.
 
DeviceId device_id () const override
 Get the device identifier assigned by the runtime.
 
std::vector< DeviceNodedevice_nodes () const override
 Get platform-visible nodes associated with the device.
 
OperationStatus horizontal_scroll (std::int32_t distance)
 Submit high-resolution horizontal scroll.
 
bool is_open () const override
 Check whether the device is open.
 
MouseEvent last_submitted_event () const
 Get the most recently submitted mouse event.
 
 Mouse (const Mouse &)=delete
 Copy construction is disabled because the handle owns device lifetime.
 
 Mouse (detail::RuntimeConstructionToken token, std::shared_ptr< detail::MouseDevice > device)
 Construct a mouse handle for Runtime-owned state.
 
 Mouse (Mouse &&other) noexcept
 Move construct a mouse handle.
 
OperationStatus move_absolute (std::int32_t x, std::int32_t y, std::int32_t width, std::int32_t height)
 Submit absolute pointer movement.
 
OperationStatus move_relative (std::int32_t delta_x, std::int32_t delta_y)
 Submit relative pointer movement.
 
Mouseoperator= (const Mouse &)=delete
 Copy assignment is disabled because the handle owns device lifetime.
 
Mouseoperator= (Mouse &&other) noexcept
 Move assign a mouse handle.
 
const DeviceProfileprofile () const override
 Get the profile used to create this device.
 
OperationStatus submit (const MouseEvent &event)
 Submit a mouse event.
 
std::size_t submit_count () const
 Get the number of successful submit operations.
 
OperationStatus vertical_scroll (std::int32_t distance)
 Submit high-resolution vertical scroll.
 
 ~Mouse () override
 Destroy the mouse handle and close the virtual device if it is still open.
 
- Public Member Functions inherited from lvh::VirtualDevice
virtual ~VirtualDevice ()=default
 Destroy the virtual device handle.
 

Detailed Description

Virtual mouse device handle.

Constructor & Destructor Documentation

◆ Mouse() [1/2]

lvh::Mouse::Mouse ( Mouse && other)
noexcept

Move construct a mouse handle.

Parameters
otherHandle to move from.

◆ Mouse() [2/2]

lvh::Mouse::Mouse ( detail::RuntimeConstructionToken token,
std::shared_ptr< detail::MouseDevice > device )

Construct a mouse handle for Runtime-owned state.

Parameters
tokenRuntime construction token.
deviceShared mouse state.

Member Function Documentation

◆ button()

OperationStatus lvh::Mouse::button ( MouseButton button,
bool pressed )

Submit a mouse button transition.

Parameters
buttonMouse button.
pressedWhether the button is pressed.
Returns
Submit operation status.

◆ close()

OperationStatus lvh::Mouse::close ( )
overridevirtual

Close the virtual device.

Returns
Close operation status.

Implements lvh::VirtualDevice.

◆ device_id()

DeviceId lvh::Mouse::device_id ( ) const
overridevirtual

Get the device identifier assigned by the runtime.

Returns
Device identifier.

Implements lvh::VirtualDevice.

◆ device_nodes()

std::vector< DeviceNode > lvh::Mouse::device_nodes ( ) const
overridevirtual

Get platform-visible nodes associated with the device.

Returns
Device nodes and diagnostic paths currently known to the backend.

Implements lvh::VirtualDevice.

◆ horizontal_scroll()

OperationStatus lvh::Mouse::horizontal_scroll ( std::int32_t distance)

Submit high-resolution horizontal scroll.

Parameters
distanceHigh-resolution scroll distance.
Returns
Submit operation status.

◆ is_open()

bool lvh::Mouse::is_open ( ) const
overridevirtual

Check whether the device is open.

Returns
true when the device can accept operations.

Implements lvh::VirtualDevice.

◆ last_submitted_event()

MouseEvent lvh::Mouse::last_submitted_event ( ) const

Get the most recently submitted mouse event.

Returns
Last submitted mouse event.

◆ move_absolute()

OperationStatus lvh::Mouse::move_absolute ( std::int32_t x,
std::int32_t y,
std::int32_t width,
std::int32_t height )

Submit absolute pointer movement.

Parameters
xAbsolute X coordinate.
yAbsolute Y coordinate.
widthWidth of the absolute coordinate space.
heightHeight of the absolute coordinate space.
Returns
Submit operation status.

◆ move_relative()

OperationStatus lvh::Mouse::move_relative ( std::int32_t delta_x,
std::int32_t delta_y )

Submit relative pointer movement.

Parameters
delta_xHorizontal delta.
delta_yVertical delta.
Returns
Submit operation status.

◆ operator=() [1/2]

Mouse & lvh::Mouse::operator= ( const Mouse & )
delete

Copy assignment is disabled because the handle owns device lifetime.

Returns
This mouse handle.

◆ operator=() [2/2]

Mouse & lvh::Mouse::operator= ( Mouse && other)
noexcept

Move assign a mouse handle.

Parameters
otherHandle to move from.
Returns
This mouse handle.

◆ profile()

const DeviceProfile & lvh::Mouse::profile ( ) const
overridevirtual

Get the profile used to create this device.

Returns
Device profile.

Implements lvh::VirtualDevice.

◆ submit()

OperationStatus lvh::Mouse::submit ( const MouseEvent & event)

Submit a mouse event.

Parameters
eventMouse event.
Returns
Submit operation status.

◆ submit_count()

std::size_t lvh::Mouse::submit_count ( ) const

Get the number of successful submit operations.

Returns
Submit count.

◆ vertical_scroll()

OperationStatus lvh::Mouse::vertical_scroll ( std::int32_t distance)

Submit high-resolution vertical scroll.

Parameters
distanceHigh-resolution scroll distance.
Returns
Submit operation status.

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