/examples/graphicsview/portedasteroids/toplevel.h

https://bitbucket.org/ultra_iter/qt-vtl · C Header · 124 lines · 56 code · 21 blank · 47 comment · 0 complexity · 23e7ec8c5c941cf11d7ae2e6dc953918 MD5 · raw file

  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
  4. ** All rights reserved.
  5. ** Contact: Nokia Corporation (qt-info@nokia.com)
  6. **
  7. ** This file is part of the examples of the Qt Toolkit.
  8. **
  9. ** $QT_BEGIN_LICENSE:BSD$
  10. ** You may use this file under the terms of the BSD license as follows:
  11. **
  12. ** "Redistribution and use in source and binary forms, with or without
  13. ** modification, are permitted provided that the following conditions are
  14. ** met:
  15. ** * Redistributions of source code must retain the above copyright
  16. ** notice, this list of conditions and the following disclaimer.
  17. ** * Redistributions in binary form must reproduce the above copyright
  18. ** notice, this list of conditions and the following disclaimer in
  19. ** the documentation and/or other materials provided with the
  20. ** distribution.
  21. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
  22. ** the names of its contributors may be used to endorse or promote
  23. ** products derived from this software without specific prior written
  24. ** permission.
  25. **
  26. ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  27. ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  28. ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  29. ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  30. ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  31. ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  32. ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  33. ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  34. ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  35. ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  36. ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  37. ** $QT_END_LICENSE$
  38. **
  39. ****************************************************************************/
  40. /*
  41. * KAsteroids - Copyright (c) Martin R. Jones 1997
  42. *
  43. * Part of the KDE project
  44. */
  45. #ifndef __KAST_TOPLEVEL_H__
  46. #define __KAST_TOPLEVEL_H__
  47. #include <QMainWindow>
  48. #include <QMultiHash>
  49. #include <QMap>
  50. #include <QShowEvent>
  51. #include <QHideEvent>
  52. #include <QKeyEvent>
  53. #include "view.h"
  54. class KALedMeter;
  55. QT_BEGIN_NAMESPACE
  56. class QLCDNumber;
  57. QT_END_NAMESPACE
  58. class KAstTopLevel : public QMainWindow
  59. {
  60. Q_OBJECT
  61. public:
  62. KAstTopLevel( QWidget *parent = 0);
  63. virtual ~KAstTopLevel();
  64. private:
  65. void playSound( const char *snd );
  66. void readSoundMapping();
  67. void doStats();
  68. protected:
  69. virtual void showEvent( QShowEvent * );
  70. virtual void hideEvent( QHideEvent * );
  71. virtual void keyPressEvent( QKeyEvent *event );
  72. virtual void keyReleaseEvent( QKeyEvent *event );
  73. private slots:
  74. void slotNewGame();
  75. void slotShipKilled();
  76. void slotRockHit( int size );
  77. void slotRocksRemoved();
  78. void slotUpdateVitals();
  79. private:
  80. KAsteroidsView *view;
  81. QLCDNumber *scoreLCD;
  82. QLCDNumber *levelLCD;
  83. QLCDNumber *shipsLCD;
  84. QLCDNumber *teleportsLCD;
  85. // QLCDNumber *bombsLCD;
  86. QLCDNumber *brakesLCD;
  87. QLCDNumber *shieldLCD;
  88. QLCDNumber *shootLCD;
  89. KALedMeter *powerMeter;
  90. bool sound;
  91. //Q3Dict<QString> soundDict;
  92. // waiting for user to press Enter to launch a ship
  93. bool waitShip;
  94. bool isPaused;
  95. int shipsRemain;
  96. int score;
  97. int level;
  98. bool showHiscores;
  99. enum Action { Launch, Thrust, RotateLeft, RotateRight, Shoot, Teleport,
  100. Brake, Shield, Pause, NewGame };
  101. QMap<int, Action> actions;
  102. };
  103. #endif