00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef PLASMAAPPLET_H
00026 #define PLASMAAPPLET_H
00027
00028 #include "glfboapplet.h"
00029
00030 #include <QModelIndex>
00031
00032 class QGraphicsLinearLayout;
00033
00034 namespace GluonEngine
00035 {
00036 class GameProject;
00037 }
00038
00039 namespace GluonGraphics
00040 {
00041 class Camera;
00042 }
00043
00044 class GamesOverlay;
00045 class GameDetailsOverlay;
00046
00047 namespace GluonPlayer
00048 {
00049 class GamesModel;
00050
00051 class PlasmaApplet : public GLFBOApplet
00052 {
00053 Q_OBJECT
00054
00055 public:
00056 PlasmaApplet( QObject* parent, const QVariantList& args );
00057 virtual ~PlasmaApplet();
00058 void init();
00059 virtual void paintGLInterface( QPainter* painter, const QStyleOptionGraphicsItem* option );
00060
00061 private:
00062 int m_viewportWidth;
00063 int m_viewportHeight;
00064 QString m_gameFileName;
00065 GluonEngine::GameProject* m_project;
00066 GluonGraphics::Camera* m_camera;
00067 GamesModel* m_gamesModel;
00068 GamesOverlay* m_gamesOverlay;
00069 GameDetailsOverlay* m_gameDetailsOverlay;
00070 QGraphicsLinearLayout* m_layout;
00071
00072 void initGL();
00073 void render();
00074
00075 protected:
00076 void resizeEvent( QGraphicsSceneResizeEvent* event );
00077
00078 protected slots:
00079 void openProject();
00080 void setProject( const QModelIndex& index );
00081 void doPaint();
00082 void startGame();
00083 void showGames();
00084 void showGameDetails( const QModelIndex& index );
00085 void setCamera( GluonGraphics::Camera* camera );
00086 };
00087 }
00088
00089 K_EXPORT_PLASMA_APPLET( gluonplayer, GluonPlayer::PlasmaApplet )
00090
00091 #endif // PLASMAAPPLET_H