Listing 2: TrisField implements a drawing area that "ticks"
// Hopefully the names of data members and methods should be
// self-explanatory.
class TrisField : public wxCanvas, public wxTimer {
TrisCell *cells[TRIS_X][TRIS_Y];
TrisPiece *currentPiece;
int tickTime;
Bool ignoreTickTime;
wxButton *pauseButton;
ScoreObj *score;
LevelObj *level;
int pieceCount;
public:
TrisField(wxWindow *parent); // Constructor.
int TickTime(void);
void DoResize(int w, int h);
void DrawField(void);
void OnChar(wxKeyEvent &event); // Overidden from wxCanvas.
void OnPaint(void);
void Notify(void); // Overridden from wxTimer.
void EnterPiece(intPair where);
void DeletePiece(void);
int InPlay(void);
int PieceFits(void);
void DrawPiece(void);
void ErasePiece(void);
void LockPiece(void);
void StripRows(void);
void StartGame(void);
void EndGame(void);
};
/* End of File */