Numworks Epsilon  1.4.1
Graphing Calculator Operating System
events_modifier.cpp
Go to the documentation of this file.
1 #include <ion.h>
2 #include <assert.h>
3 
4 namespace Ion {
5 namespace Events {
6 
7 static ShiftAlphaStatus sShiftAlphaStatus = ShiftAlphaStatus::Default;
8 
10  return sShiftAlphaStatus;
11 }
12 
13 bool isShiftActive() {
14  return sShiftAlphaStatus == ShiftAlphaStatus::Shift || sShiftAlphaStatus == ShiftAlphaStatus::ShiftAlpha || sShiftAlphaStatus == ShiftAlphaStatus::ShiftAlphaLock;
15 }
16 
17 bool isAlphaActive() {
18  return sShiftAlphaStatus == ShiftAlphaStatus::Alpha || sShiftAlphaStatus == ShiftAlphaStatus::ShiftAlpha || sShiftAlphaStatus == ShiftAlphaStatus::AlphaLock || sShiftAlphaStatus == ShiftAlphaStatus::ShiftAlphaLock;
19 ;
20 }
21 
23  sShiftAlphaStatus = s;
24 }
25 
26 void updateModifiersFromEvent(Event e) {
27  assert(e.isKeyboardEvent());
28  switch (sShiftAlphaStatus) {
30  if (e == Shift) {
31  sShiftAlphaStatus = ShiftAlphaStatus::Shift;
32  } else if (e == Alpha) {
33  sShiftAlphaStatus = ShiftAlphaStatus::Alpha;
34  }
35  break;
37  if (e == Shift) {
38  sShiftAlphaStatus = ShiftAlphaStatus::Default;
39  } else if (e == Alpha) {
40  sShiftAlphaStatus = ShiftAlphaStatus::ShiftAlpha;
41  } else {
42  sShiftAlphaStatus = ShiftAlphaStatus::Default;
43  }
44  break;
46  if (e == Shift) {
47  sShiftAlphaStatus = ShiftAlphaStatus::ShiftAlpha;
48  } else if (e == Alpha) {
49  sShiftAlphaStatus = ShiftAlphaStatus::AlphaLock;
50  } else {
51  sShiftAlphaStatus = ShiftAlphaStatus::Default;
52  }
53  break;
55  if (e == Shift) {
56  sShiftAlphaStatus = ShiftAlphaStatus::Alpha;
57  } else if (e == Alpha) {
58  sShiftAlphaStatus = ShiftAlphaStatus::ShiftAlphaLock;
59  } else {
60  sShiftAlphaStatus = ShiftAlphaStatus::Default;
61  }
62  break;
64  if (e == Shift) {
65  sShiftAlphaStatus = ShiftAlphaStatus::ShiftAlphaLock;
66  } else if (e == Alpha) {
67  sShiftAlphaStatus = ShiftAlphaStatus::Default;
68  }
69  break;
71  if (e == Shift) {
72  sShiftAlphaStatus = ShiftAlphaStatus::AlphaLock;
73  } else if (e == Alpha) {
74  sShiftAlphaStatus = ShiftAlphaStatus::Default;
75  }
76  break;
77  }
78 }
79 
80 }
81 }
#define assert(e)
Definition: assert.h:9
ShiftAlphaStatus
Definition: events.h:41
void updateModifiersFromEvent(Event e)
ShiftAlphaStatus shiftAlphaStatus()
void setShiftAlphaStatus(ShiftAlphaStatus s)
bool isAlphaActive()
bool isShiftActive()
constexpr Event Alpha
Definition: events.h:72
Definition: backlight.h:6
constexpr Event Shift
Definition: events.h:71