Skip to content
Snippets Groups Projects
Commit b9d7e3be authored by Fons Rademakers's avatar Fons Rademakers
Browse files

turn on again keyboard AutoRepeat in tetris dtor.

git-svn-id: http://root.cern.ch/svn/root/trunk@2578 27541ba8-7e3a-0410-8455-c3a389f83636
parent 6b8e36b6
No related branches found
No related tags found
No related merge requests found
// @(#)root/test:$Name: $:$Id: Tetris.cxx,v 1.8 2001/03/15 18:41:33 rdm Exp $
// @(#)root/test:$Name: $:$Id: Tetris.cxx,v 1.9 2001/06/26 12:27:45 brun Exp $
// Author: Valeriy Onuchin & Fons Rademakers 04/10/98
///////////////////////////////////////////////////////////////////
......@@ -828,6 +828,25 @@ KeyHandler::KeyHandler() : TGFrame(gClient->GetRoot(),0,0)
main_frame->BindKey(this, gVirtualX->KeysymToKeycode(kKey_Space), kAnyModifier);
}
KeyHandler::~KeyHandler()
{
// Cleanup key handler.
// get main frame of Tetris canvas
TRootCanvas *main_frame = (TRootCanvas*)(gTetris->GetCanvasImp());
// remove binding of arrow keys and space-bar key
printf("Remove key bindings\n");
main_frame->RemoveBind(this, gVirtualX->KeysymToKeycode(kKey_Up), kAnyModifier);
main_frame->RemoveBind(this, gVirtualX->KeysymToKeycode(kKey_Left), kAnyModifier);
main_frame->RemoveBind(this, gVirtualX->KeysymToKeycode(kKey_Right), kAnyModifier);
main_frame->RemoveBind(this, gVirtualX->KeysymToKeycode(kKey_Down), kAnyModifier);
main_frame->RemoveBind(this, gVirtualX->KeysymToKeycode(kKey_Space), kAnyModifier);
// restore key auto repeat functionality, was turned off in TGMainFrame::HandleKey()
gVirtualX->SetKeyAutoRepeat(kTRUE);
}
Bool_t KeyHandler::HandleKey(Event_t *event)
{
// Handle arrow and spacebar keys
......@@ -926,7 +945,7 @@ Tetris::Tetris() :
fPiecesDropped = 0;
SetFillColor(31);
new KeyHandler();
fKeyHandler = new KeyHandler();
fUpdateLevelTimer = new UpdateLevelTimer(60000); // every minute
SetFixedSize();
Update();
......
......@@ -328,7 +328,7 @@ class KeyHandler : public TGFrame {
public:
KeyHandler();
~KeyHandler() { }
~KeyHandler();
Bool_t HandleKey(Event_t *event); // handler of the key events
};
......@@ -366,6 +366,7 @@ private:
NewGameButton *fNewGame; // clicking on button initiates new game
QuitButton *fQuit; // clicking on button makes game over
PauseButton *fPause; // pause/continue button
KeyHandler *fKeyHandler; // handler for arrow keys
Int_t fPiecesDropped; // number of pieces dropped
UpdateLevelTimer *fUpdateLevelTimer; // periodically updates game level
......@@ -387,7 +388,7 @@ protected:
public:
Tetris();
virtual ~Tetris() { }
virtual ~Tetris() { delete fKeyHandler; }
Int_t GetLevel() { return fLevel->GetValue(); }
Int_t GetLinesRemoved() { return fLinesRemoved->GetValue(); }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment