MCPcopy Create free account
hub / github.com/cmauri/eviacam / ReadKeyCode

Method ReadKeyCode

src/keyboardcode.cpp:80–114  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

78}
79
80KeyboardCode KeyboardCode::ReadKeyCode() {
81 #if defined(__WXGTK__)
82 char keys_return[32];
83
84 XQueryKeymap(((Display *) wxGetDisplay()), keys_return);
85
86 // Given the keyboard state bitmap, return the scan code
87 // of the key is pressed down
88 // BUG: when multiple keys are pressed simultaneously
89 // the scan code is undefined
90 unsigned int kc = 0;
91 for(int i=0; i<32; i++) {
92 unsigned char keys = (unsigned char) keys_return[i];
93 if (keys > 0) {
94 switch (keys) {
95 case 1: kc = 0; break;
96 case 2: kc = 1; break;
97 case 4: kc = 2; break;
98 case 8: kc = 3; break;
99 case 16: kc = 4; break;
100 case 32: kc = 5; break;
101 case 64: kc = 6; break;
102 case 128: kc = 7; break;
103 }
104 kc += 8 * i;
105 }
106 }
107 return FromScanCode (kc);
108 #else
109 // NOT implemented for Windows. This method is used to poll
110 // the keyboard to implement hotkeys. On Windows RegisterHotKey is used
111 assert(0);
112 return KeyboardCode();
113 #endif
114}
115
116KeyboardCode KeyboardCode::FromChar (char c) {
117#if defined(__WXGTK__)

Callers

nothing calls this directly

Calls 1

KeyboardCodeClass · 0.85

Tested by

no test coverage detected