OOStuBS - Technische Informatik II (TI-II)
2.4
Hauptseite
Zusätzliche Informationen
Klassen
Dateien
Auflistung der Dateien
Datei-Elemente
include
machine
key.h
gehe zur Dokumentation dieser Datei
1
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
2
* Technische Informatik II *
3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
4
* *
5
* K E Y *
6
* *
7
\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
8
9
#ifndef __Key_include__
10
#define __Key_include__
11
15
class
Key
{
16
private
:
17
unsigned
char
asc
;
18
unsigned
char
scan
;
19
unsigned
char
modi
;
20
21
struct
mbit
{
22
enum
{
23
shift
= 1,
24
alt_left
= 2,
25
alt_right
= 4,
26
ctrl_left
= 8,
27
ctrl_right
= 16,
28
caps_lock
= 32,
29
num_lock
= 64,
30
scroll_lock
= 128
31
};
32
};
33
34
public
:
39
Key
() :
asc
(0),
scan
(0),
modi
(0) {}
40
45
bool
valid
(){
46
return
scan
!= 0;
47
}
48
53
void
invalidate
() {
54
scan
= 0;
55
}
56
61
void
ascii
(
unsigned
char
a) {
62
asc
= a;
63
}
64
69
void
scancode
(
unsigned
char
s) {
70
scan
= s;
71
}
72
77
unsigned
char
ascii
()
const
{
78
return
asc
;
79
}
80
85
unsigned
char
scancode
()
const
{
86
return
scan
;
87
}
88
89
void
shift
(
bool
pressed){
90
modi
= pressed ?
modi
|
mbit::shift
:
modi
& ~
mbit
::shift
;
91
}
92
void
alt_left
(
bool
pressed){
93
modi
= pressed ?
modi
|
mbit::alt_left
:
modi
& ~
mbit
::alt_left
;
94
}
95
void
alt_right
(
bool
pressed){
96
modi
= pressed ?
modi
|
mbit::alt_right
:
modi
& ~
mbit
::alt_right
;
97
}
98
void
ctrl_left
(
bool
pressed){
99
modi
= pressed ?
modi
|
mbit::ctrl_left
:
modi
& ~
mbit
::ctrl_left
;
100
}
101
void
ctrl_right
(
bool
pressed){
102
modi
= pressed ?
modi
|
mbit::ctrl_right
:
modi
& ~
mbit
::ctrl_right
;
103
}
104
void
caps_lock
(
bool
pressed){
105
modi
= pressed ?
modi
|
mbit::caps_lock
:
modi
& ~
mbit
::caps_lock
;
106
}
107
void
num_lock
(
bool
pressed){
108
modi
= pressed ?
modi
|
mbit::num_lock
:
modi
& ~
mbit
::num_lock
;
109
}
110
void
scroll_lock
(
bool
pressed){
111
modi
= pressed ?
modi
|
mbit::scroll_lock
:
modi
& ~
mbit
::scroll_lock
;
112
}
113
114
// methods to get the information of the keys: SHIFT, ALT, CTRL, ...
115
bool
shift
(){
116
return
modi
&
mbit::shift
;
117
}
118
bool
alt_left
(){
119
return
modi
&
mbit::alt_left
;
120
}
121
bool
alt_right
(){
122
return
modi
&
mbit::alt_right
;
123
}
124
bool
ctrl_left
(){
125
return
modi
&
mbit::ctrl_left
;
126
}
127
bool
ctrl_right
(){
128
return
modi
&
mbit::ctrl_right
;
129
}
130
bool
caps_lock
(){
131
return
modi
&
mbit::caps_lock
;
132
}
133
bool
num_lock
(){
134
return
modi
&
mbit::num_lock
;
135
}
136
bool
scroll_lock
(){
137
return
modi
&
mbit::scroll_lock
;
138
}
139
bool
alt
(){
140
return
alt_left
() |
alt_right
();
141
}
142
bool
ctrl
(){
143
return
ctrl_left
() |
ctrl_right
();
144
}
145
152
operator
char (){
153
return
(
char
)
asc
;
154
}
155
163
struct
scan
{
164
enum
{
165
f1
= 0x3d,
166
del
= 0x53,
167
back
= 0x66,
168
up
= 72,
169
down
= 80,
170
left
= 75,
171
right
= 77,
172
div
= 8
173
};
174
};
175
};
176
177
#endif
Erzeugt am Mon Jun 30 2014 07:13:28 für OOStuBS - Technische Informatik II (TI-II) von
1.8.1.2