diff -r 1ee2af37811f -r 6481344a6d67 ui/viewutilities/effectengine/inc/glxeffectengine.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/viewutilities/effectengine/inc/glxeffectengine.h Fri Jun 11 13:38:23 2010 +0300 @@ -0,0 +1,158 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: ?Description +* +*/ + + +#ifndef GLXEFFECTENGINE_H +#define GLXEFFECTENGINE_H + +#ifdef BUILD_GLXVIEWUTILITIES +#define GLX_VIEWUTILITIES_EXPORT Q_DECL_EXPORT +#else +#define GLX_VIEWUTILITIES_EXPORT Q_DECL_IMPORT +#endif + +#include +#include +#include +#include +#include +#include "glxuistd.h" + + +class QStringList ; +class GlxTransitionEffectSetting ; +class GlxEffectPluginBase; +class GlxEffectPluginResolver; + +/* + * It is customise class for Photo Application to run the effect. + */ + +class GLX_VIEWUTILITIES_EXPORT GlxEffectEngine : public QObject +{ + Q_OBJECT + +public: + /* + * Constructor + */ + GlxEffectEngine( ); + /* + * Destructor + */ + ~GlxEffectEngine(); + + /* + * Register the item type with selected effect + * User can change the effect at run time so it is required to register and deregister the effect + * before playing the effect. + */ + void registerEffect(const QString &itemType); + + /* + * Deregister the current register slide show effect + */ + void deRegisterEffect(const QString &itemType); + + /* + * To register a set of transition effect + * e.g "grid to full screeen", "fullscreen to grid" + */ + void registerTransitionEffect(); + + /* + * Deregister the set of register transition effect + */ + void deregistertransitionEffect(); + + /* + * Run the effect on single item + */ + void runEffect(QGraphicsItem * item, const QString & itemType ); + + /* + * Run the effect on multiple item + */ + void runEffect(QList< QGraphicsItem * > & items, const QString & itemType ); + + /* + * Run the transition effect + */ + void runEffect(QList< QGraphicsItem * > & items, GlxEffect transitionEffect); + + /* + * Cancel the runing effect on the given item + */ + void cancelEffect(QGraphicsItem * item); + + /* + * Cancel the running effect on the given items + */ + void cancelEffect( const QList< QGraphicsItem * > & items ); + + /* + * cancel the runing transition effect + */ + void cancelEffect(QList< QGraphicsItem * > & items, GlxEffect transitionEffect); + + /* + * Return the running status of the given item + */ + bool isEffectRuning(QGraphicsItem * item); + + /* + * return the running status of given items + */ + bool isEffectRuning(const QList< QGraphicsItem * > & items); + +signals: + /* + * emit the signal of effect finished + */ + void effectFinished(); + +public slots: + /* + * Slot to monitor the slide show effect finished + */ + void slideShowEffectFinished( const HbEffect::EffectStatus &status ); + + /* + * Slot to monitor the transi + */ + void transitionEffectFinished( const HbEffect::EffectStatus &status ); + +private: + /* + * Initialise the all transition effect + */ + void initTransitionEffect(); + + /* + * Clear the all transition effect + */ + void cleanTransitionEfffect(); + +private: + int mNbrEffectRunning; //containe the number of effect running + GlxEffectPluginBase *mEffectPlugin; //No ownership + QHash mTransitionEffectList; + GlxEffect mTransitionEffect; + GlxEffectPluginResolver *mEffectResolver; +}; + +#endif /*GLXEFFECTENGINE_H*/