StuBS
Mouse Class Reference

Handles mouse movements and clicks. More...

#include <device/mouse.h>

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

Public Member Functions

 Mouse (unsigned max_x, unsigned max_y)
 Constructor.
void getPos (unsigned &x, unsigned &y) const
 Retrieve the current mouse position.
bool isPressed (MouseButton btn) const
 Check if a given mouse button is pressed.
void plugin ()
 Initialization of the mouse.
void trigger ()
 Handling of mouse interrupts.
Public Member Functions inherited from Gate
 Gate ()
 Is this epiloque already marked for execution Add a member that stores the information whether a Gate has already been queued.
virtual ~Gate ()
 Destructor.

Public Attributes

const unsigned MAX_X
 Maximum X position of the mouse.
const unsigned MAX_Y
 Maximum Y position of the mouse.

Private Member Functions

void updatePos ()
 Helper to update current position from state.

Private Attributes

Pointer state
 Last state of the mouse.
unsigned x
 Current X position of the mouse.
unsigned y
 Current Y position of the mouse.

Detailed Description

Handles mouse movements and clicks.

This class ensures correct initialization of the mouse and, above all, its interrupt handling.

Constructor & Destructor Documentation

◆ Mouse()

Mouse::Mouse ( unsigned max_x,
unsigned max_y )
inlineexplicit

Constructor.

Defines a virtual window for the mouse.

Parameters
max_xMaximum X position (excluding) for the mouse
max_yMaximum Y position (excluding) for the mouse

Member Function Documentation

◆ updatePos()

void Mouse::updatePos ( )
inlineprivate

Helper to update current position from state.

◆ getPos()

void Mouse::getPos ( unsigned & x,
unsigned & y ) const
inline

Retrieve the current mouse position.

Parameters
xReference to variable for the X position (0 ≤ x < MAX_X) of the mouse
yReference to variable for the Y position (0 ≤ y < MAX_Y) of the mouse
Optional
Implement method

◆ isPressed()

bool Mouse::isPressed ( MouseButton btn) const
inline

Check if a given mouse button is pressed.

Parameters
btnButton to check for press
Returns
true if button is currently pressed
Optional
Implement method

◆ plugin()

void Mouse::plugin ( )

Initialization of the mouse.

Initialization of the mouse and activation of the specific interrupt handling: The object will register itself at the Plugbox and configure the IOAPIC to receive the corresponding interrupts.

Note
The mouse interrupts should be configured as level triggered.
Optional
Implement method

◆ trigger()

void Mouse::trigger ( )
virtual

Handling of mouse interrupts.

Processes interrupts triggered by the mouse.

Optional
Implement Method

Implements Gate.

Member Data Documentation

◆ state

Pointer Mouse::state
private

Last state of the mouse.

◆ x

unsigned Mouse::x
private

Current X position of the mouse.

◆ y

unsigned Mouse::y
private

Current Y position of the mouse.

◆ MAX_X

const unsigned Mouse::MAX_X

Maximum X position of the mouse.

◆ MAX_Y

const unsigned Mouse::MAX_Y

Maximum Y position of the mouse.


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