StuBS
|
Handles mouse movements and clicks. More...
#include <device/mouse.h>
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... | |
bool | prologue () override |
Prologue of mouse interrupts. More... | |
void | epilogue () override |
Epilogue of mouse interrupts. More... | |
![]() | |
Gate () | |
Constructor. | |
virtual | ~Gate () |
Destructor. More... | |
bool | is_queued () |
Status about the epilogue. More... | |
void | set_queued (bool val) |
Set epilogue status. More... | |
virtual bool | prologue ()=0 |
Device-specific interrupt handling routine that is executed immediately after the interrupt occurs (asynchronously). More... | |
virtual void | epilogue () |
Possibly delayed, synchronously executed Device-specific interrupt handling routine. More... | |
Public Attributes | |
const unsigned | MAX_X |
Maximum X position of the mouse. | |
const unsigned | MAX_Y |
Maximum Y position of the mouse. | |
Handles mouse movements and clicks.
This class ensures correct initialization of the mouse and, above all, its interrupt handling.
|
inlineexplicit |
Constructor.
Defines a virtual window for the mouse.
max_x | Maximum X position (excluding) for the mouse |
max_y | Maximum Y position (excluding) for the mouse |
|
inline |
|
inline |
Check if a given mouse button is pressed.
btn | Button to check for press |
true
if button is currently pressed 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.
|
overridevirtual |
|
overridevirtual |
Epilogue of mouse interrupts.
The current position of the cursor is drawn on the screen using TextMode::showMouse(). Press and release events of the buttons are printed to the debug output.
Reimplemented from Gate.