mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-23 18:31:53 +00:00
48 lines
998 B
C++
48 lines
998 B
C++
//
|
|
// Mouse.hpp
|
|
// Clock Signal
|
|
//
|
|
// Created by Thomas Harte on 11/06/2019.
|
|
// Copyright © 2019 Thomas Harte. All rights reserved.
|
|
//
|
|
|
|
#ifndef Mouse_h
|
|
#define Mouse_h
|
|
|
|
namespace Inputs {
|
|
|
|
/*!
|
|
Models a classic-era mouse: something that provides 2d relative motion plus
|
|
some quantity of buttons.
|
|
*/
|
|
class Mouse {
|
|
public:
|
|
/*!
|
|
Indicates a movement of the mouse.
|
|
*/
|
|
virtual void move([[maybe_unused]] int x, [[maybe_unused]] int y) {}
|
|
|
|
/*!
|
|
@returns the number of buttons on this mouse.
|
|
*/
|
|
virtual int get_number_of_buttons() {
|
|
return 1;
|
|
}
|
|
|
|
/*!
|
|
Indicates that button @c index is now either pressed or unpressed.
|
|
The intention is that @c index be semantic, not positional:
|
|
0 for the primary button, 1 for the secondary, 2 for the tertiary, etc.
|
|
*/
|
|
virtual void set_button_pressed([[maybe_unused]] int index, [[maybe_unused]] bool is_pressed) {}
|
|
|
|
/*!
|
|
Releases all depressed buttons.
|
|
*/
|
|
virtual void reset_all_buttons() {}
|
|
};
|
|
|
|
}
|
|
|
|
#endif /* Mouse_h */
|