ui/viewmanagement/statehandler/inc/glxbasestate.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 19 Mar 2010 09:28:59 +0200
changeset 23 74c9f037fd5d
child 71 27f2d7aec52a
permissions -rw-r--r--
Revision: 201007 Kit: 201011

/*
* 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 GLXBASESTATE_H
#define GLXBASESTATE_H

#include <QObject>
#include <glxviewids.h>
#include <glxuistd.h>

typedef enum
{
    NO_DIR,
    FORWARD_DIR,
    BACKWARD_DIR,    
}NavigationDir;

class GlxState : public QObject
{
    Q_OBJECT

public :
 /*
  * Constructor
  * id = state id, state is and view id should be same
  * preState = previous state pointer. It value will be null, if it is only one state in the stack
  */
	GlxState(qint32 id, GlxState *preState);
	virtual ~GlxState();
/*
 * It compare the states.
 * ToDo: It is not used any where so may be removed later
 */	
	bool compare (qint32 id) const;
/*
 * Return the state id of the function
 */ 
	qint32 id() const { return mId; }
/*
 * Retrun the pointer of the the previous state
 */ 
	GlxState * previousState( ) const { return mPreState; }
/*
 * Pure virtual function. It is default event handler of the state
 */	
	virtual void eventHandler(qint32 &id)  = 0;
/*
 * This funtion use for set the internal state of a state
 * default implementation
 */	
	virtual void setState(int internalState) {Q_UNUSED( internalState )}
/*
 * This funtion return the internal state of a state
 * default implementation
 */
	virtual int state( ) const { return 0; }
/*
 * This function set the view transtion effect parameter.
 * These values is use for run the animation for vies transtion
 * In the case of forward direction it should call with the next state and in the case of back ward direction
 * it should call with the current state
 * effect = View transtion id
 * viewEffect = to play the animation on which views
 */	
	virtual void setTranstionParameter(NavigationDir dir, GlxEffect &effect, GlxViewEffect &viewEffect);

private:
    const qint32 mId;
    GlxState *mPreState; //contain the pointer of previous state	
};



#endif /* GLXBASESTATE_H */