History

really get controller key, mouse, etc scripting working

ZappoMan committed 12 years ago

Commit 305e69d1 parent febb3067 files · +220 −66Browse files

Showing the changes to interface/src/ControllerScriptingInterface.cpp (1 of 7 files). Show all

Unified · Split

interface/src/ControllerScriptingInterface.cpp+35−0
@@ -179,5 +179,40 @@ glm::vec3 ControllerScriptingInterface::getSpatialControlNormal(int controlIndex · 178 unmodified lines
179179 return glm::vec3(0); // bad index
180180 }
181181
182+bool ControllerScriptingInterface::isKeyCaptured(QKeyEvent* event) const {
183+qDebug() << "ControllerScriptingInterface::isKeyCaptured() event=" << event;
184+ return isKeyCaptured(KeyEvent(*event));
185+}
186+
187+bool ControllerScriptingInterface::isKeyCaptured(const KeyEvent& event) const {
188+
189+qDebug() << "ControllerScriptingInterface::isKeyCaptured() event.key=" << event.key;
190+
191+ // if we've captured some combination of this key it will be in the map
192+ if (_capturedKeys.contains(event.key, event)) {
193+qDebug() << "ControllerScriptingInterface::isKeyCaptured() event.key=" << event.key << " returning TRUE";
194+ return true;
195+ }
196+ return false;
197+}
182198
199+void ControllerScriptingInterface::captureKeyEvents(const KeyEvent& event) {
200+ // if it's valid
201+ if (event.isValid) {
202+ // and not already captured
203+ if (!isKeyCaptured(event)) {
204+ // then add this KeyEvent record to the captured combos for this key
205+ _capturedKeys.insert(event.key, event);
206+ }
207+ }
208+}
209+
210+void ControllerScriptingInterface::releaseKeyEvents(const KeyEvent& event) {
211+ if (event.isValid) {
212+ // and not already captured
213+ if (isKeyCaptured(event)) {
214+ _capturedKeys.remove(event.key, event);
215+ }
216+ }
217+}
183218