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. More...
 
void getPos (unsigned &x, unsigned &y) const
 Retrieve the current mouse position. More...
 
bool isPressed (MouseButton btn) const
 Check if a given mouse button is pressed. More...
 
void plugin ()
 Initialization of the mouse. More...
 
void trigger ()
 Handling of mouse interrupts. More...
 
- Public Member Functions inherited from Gate
 Gate ()
 Constructor.
 
virtual ~Gate ()
 Destructor. More...
 
virtual void trigger ()=0
 Device-specific interrupt handler. More...
 

Public Attributes

const unsigned MAX_X
 Maximum X position of the mouse.
 
const unsigned MAX_Y
 Maximum 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

◆ 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.


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