Qt Reference Documentation

toplevel.h Example File

graphicsview/portedasteroids/toplevel.h
 /****************************************************************************
 **
 ** Copyright (C) 2015 The Qt Company Ltd.
 ** Contact: http://www.qt.io/licensing/
 **
 ** This file is part of the examples of the Qt Toolkit.
 **
 ** $QT_BEGIN_LICENSE:BSD$
 ** You may use this file under the terms of the BSD license as follows:
 **
 ** "Redistribution and use in source and binary forms, with or without
 ** modification, are permitted provided that the following conditions are
 ** met:
 **   * Redistributions of source code must retain the above copyright
 **     notice, this list of conditions and the following disclaimer.
 **   * Redistributions in binary form must reproduce the above copyright
 **     notice, this list of conditions and the following disclaimer in
 **     the documentation and/or other materials provided with the
 **     distribution.
 **   * Neither the name of The Qt Company Ltd nor the names of its
 **     contributors may be used to endorse or promote products derived
 **     from this software without specific prior written permission.
 **
 **
 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
 **
 ** $QT_END_LICENSE$
 **
 ****************************************************************************/

 /*
  * KAsteroids - Copyright (c) Martin R. Jones 1997
  *
  * Part of the KDE project
  */

 #ifndef __KAST_TOPLEVEL_H__
 #define __KAST_TOPLEVEL_H__

 #include <QMainWindow>
 #include <QMultiHash>
 #include <QMap>
 #include <QShowEvent>
 #include <QHideEvent>
 #include <QKeyEvent>

 #include "view.h"

 class KALedMeter;
 class QLCDNumber;

 class KAstTopLevel : public QMainWindow
 {
     Q_OBJECT
 public:
     KAstTopLevel( QWidget *parent = 0);
     virtual ~KAstTopLevel();

 private:
     void playSound( const char *snd );
     void readSoundMapping();
     void doStats();

 protected:
     virtual void showEvent( QShowEvent * );
     virtual void hideEvent( QHideEvent * );
     virtual void keyPressEvent( QKeyEvent *event );
     virtual void keyReleaseEvent( QKeyEvent *event );

 private slots:
     void slotNewGame();

     void slotShipKilled();
     void slotRockHit( int size );
     void slotRocksRemoved();

     void slotUpdateVitals();

 private:
     KAsteroidsView *view;
     QLCDNumber *scoreLCD;
     QLCDNumber *levelLCD;
     QLCDNumber *shipsLCD;

     QLCDNumber *teleportsLCD;
 //    QLCDNumber *bombsLCD;
     QLCDNumber *brakesLCD;
     QLCDNumber *shieldLCD;
     QLCDNumber *shootLCD;
     KALedMeter *powerMeter;

     bool   sound;
     //Q3Dict<QString> soundDict;

     // waiting for user to press Enter to launch a ship
     bool waitShip;
     bool isPaused;

     int shipsRemain;
     int score;
     int level;
     bool showHiscores;

     enum Action { Launch, Thrust, RotateLeft, RotateRight, Shoot, Teleport,
                     Brake, Shield, Pause, NewGame  };

     QMap<int, Action> actions;
 };

 #endif