diff --git a/examples/dokk/glwin.py b/examples/dokk/glwin.py index 8a1dda0651f0ee7deff605c49e7a2ab3c5f6ad68..f57b52cd5d91ca15e61013662b71c95646fac0ca 100644 --- a/examples/dokk/glwin.py +++ b/examples/dokk/glwin.py @@ -113,21 +113,40 @@ class DokkGLCanvas(QGLWidget): self.update() def keyReleaseEvent(self, event): + self.emit(SIGNAL("KeyPressed"),event) if event.key() == Qt.Key_Escape: QApplication.exit() + elif event.key() == Qt.Key_P: + self.dokk.PreviousLevel() + elif event.key() == Qt.Key_N: + self.dokk.NextLevel() + elif event.key() == Qt.Key_Space: + self.dokk.GetLevel().Begin() if not self._lock_input: if event.key() == Qt.Key_Left or event.key() == Qt.Key_A: self.OnTransform(gfx.INPUT_COMMAND_TRANSX,0, gfx.TRANSFORM_VIEW, -TRANS_VAL) - if event.key() == Qt.Key_Right or event.key() == Qt.Key_D: + elif event.key() == Qt.Key_Right or event.key() == Qt.Key_D: self.OnTransform(gfx.INPUT_COMMAND_TRANSX,0, gfx.TRANSFORM_VIEW, TRANS_VAL) - if event.key() == Qt.Key_Down or event.key() == Qt.Key_S: + elif event.key() == Qt.Key_Down or event.key() == Qt.Key_S: self.OnTransform(gfx.INPUT_COMMAND_TRANSZ,0, gfx.TRANSFORM_VIEW, TRANS_VAL) - if event.key() == Qt.Key_Up or event.key() == Qt.Key_W: + elif event.key() == Qt.Key_Up or event.key() == Qt.Key_W: self.OnTransform(gfx.INPUT_COMMAND_TRANSZ,0, gfx.TRANSFORM_VIEW, -TRANS_VAL) + + elif event.key() == Qt.Key_Backspace: + self.dokk.GetLevel().Reset() + + elif event.key() == Qt.Key_Enter or event.key() == Qt.Key_Return: + self.dokk.GetLevel().Finished() + + elif event.key() == Qt.Key_E: + self.dokk.GetLevel().Solve() + + elif event.key() == Qt.Key_R: + self.dokk.GetLevel().ResetPos() def SetLockInput(self, lock): self._lock_input = lock @@ -140,38 +159,38 @@ class DokkGLWin(gfx.GLWinBase): return fmt def __init__(self,dokk): - gfx.GLWinBase.__init__(self) - self.canvas_=DokkGLCanvas(self._CreateFormat(),dokk) + gfx.GLWinBase.__init__(self) + self.canvas=DokkGLCanvas(self._CreateFormat(),dokk) def DoRefresh(self): self.refresh_=True def SetLevel(self, level): - self.canvas_.SetLevel(level) + self.canvas.SetLevel(level) def Show(self, fullscreen): if fullscreen: - self.canvas_.showFullScreen() + self.canvas.showFullScreen() else: - self.canvas_.show() + self.canvas.show() def SetStereo(): pass def SetLockInput(self, lock): - self.canvas_.SetLockInput(lock) + self.canvas.SetLockInput(lock) def Width(self): - return self.canvas_.width() + return self.canvas.width() def Height(self): - return self.canvas_.height() + return self.canvas.height() def ClearHUDObjects(self): - self.canvas_.hud.Clear() + self.canvas.hud.Clear() def RemoveHUDObject(self, hud_object): - self.canvas_.hud.Remove(hud_object) + self.canvas.hud.Remove(hud_object) def AddHUDObject(self, hud_object): - self.canvas_.hud.Add(hud_object) + self.canvas.hud.Add(hud_object) diff --git a/examples/dokk/name_enter.py b/examples/dokk/name_enter.py index c0090a99328de53409c80fa893f7e8852354a181..6eaa046bb7b93e211f2820cc51faaadea0ef564f 100644 --- a/examples/dokk/name_enter.py +++ b/examples/dokk/name_enter.py @@ -11,9 +11,13 @@ NAME_BREAK = 8000 class NameEnter(QtCore.QObject): def __init__(self, parent=None): QtCore.QObject.__init__(self, parent) - self.spnav = gui.SpnavInput.GetQThread() - self.spnav.start() - + try: + self._spnav = gui.SpnavInput.GetQThread() + self._spnav.start() + except AttributeError: + self._spnav = None + + self.Reset() def Reset(self): @@ -43,6 +47,22 @@ class NameEnter(QtCore.QObject): elif(self.letter_score < -LETTER_BREAK): self.letter_pos -=1 self.__SetLetterPos() + + def KeyPressed(self, event): + if event.key() == Qt.Key_Right: + self.name_pos +=1 + self.__SetNamePos() + elif event.key() == Qt.Key_Left: + self.name_pos -=1 + self.__SetNamePos() + elif event.key() == Qt.Key_Up: + self.letter_pos +=1 + self.__SetLetterPos() + elif event.key() == Qt.Key_Down: + self.letter_pos -=1 + self.__SetLetterPos() + elif event.key() == Qt.Key_Enter or event.key() == Qt.Key_Return: + self.emit(QtCore.SIGNAL("Finished()")) def ToggleInputMode(self, button): if button == 10: @@ -53,13 +73,17 @@ class NameEnter(QtCore.QObject): def Start(self): self.Reset() - QtCore.QObject.connect(self.spnav,QtCore.SIGNAL("deviceTransformed(int,int,int,int,int,int)"), self.InputChanged) - QtCore.QObject.connect(self.spnav,QtCore.SIGNAL("deviceButtonPressed(int)"), self.ToggleInputMode) + if self._spnav: + QtCore.QObject.connect(self._spnav,QtCore.SIGNAL("deviceTransformed(int,int,int,int,int,int)"), self.InputChanged) + QtCore.QObject.connect(self._spnav,QtCore.SIGNAL("deviceButtonPressed(int)"), self.ToggleInputMode) + self.connect(dokk.Dokk().gl_win.canvas, QtCore.SIGNAL("KeyPressed"),self.KeyPressed) def Stop(self): - QtCore.QObject.disconnect(self.spnav,QtCore.SIGNAL("deviceTransformed(int,int,int,int,int,int)"), self.InputChanged) - QtCore.QObject.disconnect(self.spnav,QtCore.SIGNAL("deviceButtonPressed(int)"), self.ToggleInputMode) - + if self._spnav: + QtCore.QObject.disconnect(self._spnav,QtCore.SIGNAL("deviceTransformed(int,int,int,int,int,int)"), self.InputChanged) + QtCore.QObject.disconnect(self._spnav,QtCore.SIGNAL("deviceButtonPressed(int)"), self.ToggleInputMode) + self.disconnect(dokk.Dokk().gl_win.canvas, QtCore.SIGNAL("KeyPressed"),self.KeyPressed) + def __SetLetterPos(self): self.letter_pos = self.letter_pos % self.al_len self.__SetName() diff --git a/examples/dokk/spnav_input.py b/examples/dokk/spnav_input.py index 82b873d747359a62570370f8d711ed5ac151eb5e..b0eed4b5446ae87b0260b1ef0bfeba69509414bb 100644 --- a/examples/dokk/spnav_input.py +++ b/examples/dokk/spnav_input.py @@ -9,11 +9,14 @@ class SpnavInputDevice(QtCore.QObject): def __init__(self, gfx_win, parent=None): QtCore.QObject.__init__(self, parent) self.refresh_rate_ = DEFAULT_REFRESHRATE - self.spnav = gui.SpnavInput.GetQThread() - self.spnav.start() - self.gfx_win = gfx_win - QtCore.QObject.connect(self.spnav,QtCore.SIGNAL("deviceTransformed(int,int,int,int,int,int)"), self.InputChanged) - QtCore.QObject.connect(self.spnav,QtCore.SIGNAL("deviceButtonPressed(int)"), self.ToggleInputMode) + try: + self.spnav = gui.SpnavInput.GetQThread() + self.spnav.start() + self.gfx_win = gfx_win + QtCore.QObject.connect(self.spnav,QtCore.SIGNAL("deviceTransformed(int,int,int,int,int,int)"), self.InputChanged) + QtCore.QObject.connect(self.spnav,QtCore.SIGNAL("deviceButtonPressed(int)"), self.ToggleInputMode) + except AttributeError: + pass #No SpaceNav Support self.trans = True self.rot = True