mirror of
https://github.com/clockworkpi/DevTerm.git
synced 2026-03-20 10:52:45 +01:00
borrwoed a lot code from https://github.com/foriequal0/devterm_keyboard in order to optimize the trackball
This commit is contained in:
36
Code/devterm_keyboard/state.ino
Normal file
36
Code/devterm_keyboard/state.ino
Normal file
@@ -0,0 +1,36 @@
|
||||
#include <cassert>
|
||||
#include <algorithm>
|
||||
#include <limits>
|
||||
|
||||
#include "state.h"
|
||||
|
||||
State::State()
|
||||
: fn(false),
|
||||
middleClick(false)
|
||||
{
|
||||
}
|
||||
|
||||
void State::tick(millis_t delta)
|
||||
{
|
||||
middleClickTimeout.updateTime(delta);
|
||||
}
|
||||
|
||||
void State::pressMiddleClick() {
|
||||
middleClick = true;
|
||||
middleClickTimeout.reset();
|
||||
}
|
||||
|
||||
bool State::releaseMiddleClick() {
|
||||
middleClick = false;
|
||||
const auto timeout = middleClickTimeout.get();
|
||||
return !timeout;
|
||||
}
|
||||
|
||||
TrackballMode State::moveTrackball() {
|
||||
middleClickTimeout.expire();
|
||||
if (middleClick) {
|
||||
return TrackballMode::Wheel;
|
||||
} else {
|
||||
return TrackballMode::Mouse;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user