displayintro.h

Go to the documentation of this file.
00001 #ifndef DISPLAY_INTRO_H
00002 #define DISPLAY_INTRO_H
00003 /*
00004    This file is part of the KDE games kwin4 program
00005    Copyright (c) 2006 Martin Heni <kde@heni-online.de>
00006 
00007    This library is free software; you can redistribute it and/or
00008    modify it under the terms of the GNU Library General Public
00009    License as published by the Free Software Foundation; either
00010    version 2 of the License, or (at your option) any later version.
00011 
00012    This library is distributed in the hope that it will be useful,
00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015    Library General Public License for more details.
00016 
00017    You should have received a copy of the GNU Library General Public License
00018    along with this library; see the file COPYING.LIB.  If not, write to
00019    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00020    Boston, MA 02110-1301, USA.
00021 */
00022 
00023 // Qt includes
00024 #include <QWidget>
00025 #include <QGraphicsScene>
00026 #include <QHash>
00027 #include <QList>
00028 #include <QTimer>
00029 
00030 // Local includes
00031 #include "thememanager.h"
00032 
00033 // Forward declaration
00034 
00035 
00040 class DisplayIntro : public QObject, public virtual Themable
00041 {
00042   Q_OBJECT
00043 
00044   public:
00051     DisplayIntro(int advancePeriod, QGraphicsScene* scene, ThemeManager* theme,  QObject* parent = 0);
00052     
00055     ~DisplayIntro();
00056 
00059     enum IntroState {IntroMoveIn, IntroCollapse, IntroExplode};
00060 
00063     void start();
00064 
00067     virtual void changeTheme();
00068 
00069 
00070   protected slots:  
00073      void advance();
00074 
00075 
00076   private:
00077     // The theme manager
00078     ThemeManager* mTheme;
00079     
00080     // The graphics scene to write to
00081     QGraphicsScene* mScene;
00082     
00083     // The advance period of the scene [ms]
00084     int mAdvancePeriod;
00085     
00086     // List of all sprites used
00087     QList<QGraphicsItem*> mSprites;
00088     
00089     // The animation timer
00090     QTimer* mTimer;
00091     
00092     // The current state of the animation
00093     IntroState mIntroState;
00094 };
00095 
00096 #endif

Generated on Sun Mar 4 10:56:43 2007 for KWin4 by  doxygen 1.4.6