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: