summaryrefslogtreecommitdiff
path: root/noncore/games/bounce/kbounce.h
blob: c59109fb0d220f34cdf315c19da4f2049f335773 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/*
 * Copyright (C) 2000 Stefan Schimanski <1Stein@gmx.de>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this program; if not, write to the Free
 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#ifndef KJEZZBALL_H_INCLUDED
#define KJEZZBALL_H_INCLUDED

#include <qmainwindow.h>
#include <qmenubar.h>
#include <qlabel.h>

class JezzGame;
class QLCDNumber;
class QGridLayout;

class KJezzball : public QMainWindow
{
   Q_OBJECT

public:
   static QString appName() { return QString::fromLatin1("bounce"); }
   KJezzball(QWidget *, const char*, WFlags );

public slots:
   void newGame();
   void pauseGame(); 
   void closeGame();
   void about();

protected slots:   
   void died();
   void newPercent( int percent ); 
   void second();
   void switchLevel();
   void gameOverNow();
      		
protected:
   void createLevel( int level );
   void startLevel();
   void stopLevel();
   void nextLevel();
   void gameOver();
   void initXMLUI();

   void focusOutEvent( QFocusEvent * );
   void focusInEvent ( QFocusEvent * );
	void keyPressEvent( QKeyEvent *ev );

   JezzGame *m_gameWidget;
   QWidget *m_view;
   QGridLayout *m_layout;
   QLCDNumber *m_levelLCD;
   QLCDNumber *m_lifesLCD;
   QLCDNumber *m_scoreLCD;
   QLCDNumber *m_percentLCD;
   QLCDNumber *m_timeLCD;

   QTimer *m_timer;
   QTimer *m_nextLevelTimer;
   QTimer *m_gameOverTimer;

   enum { Idle, Running, Paused, Suspend } m_state;

   struct
   {
       int lifes;
       int time;
       int score;
   } m_level;

   struct
   {
       int level;
       int score;
   } m_game;
private:
   QMenuBar *menu;
   QPopupMenu *game;
   QLabel* ScoreLabel;
   QLabel* LivesLabel;
   QLabel* FilledLabel;
   QLabel* TimeLabel;

};

#endif