diff -r 000000000000 -r 09774dfdd46b qtinternetradio/ui/inc/irviewmanager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qtinternetradio/ui/inc/irviewmanager.h Mon Apr 19 14:01:53 2010 +0300 @@ -0,0 +1,105 @@ +/* +* 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: +* +*/ +#ifndef IRVIEWMANAGER_H +#define IRVIEWMANAGER_H + +#include +#include + +#include "irabstractviewmanager.h" + +class QTimer; + +class IRViewManager : public IRAbstractViewManager +{ + Q_OBJECT +public: + IRViewManager(); + ~IRViewManager(); + + //from base class IRAbstractViewManager + IRBaseView* getView(TIRViewId aViewId, bool aCreateIfNotExist); + + //from base class IRAbstractViewManager + bool isViewInStack(TIRViewId aViewId) const; + + //from base class IRAbstractViewManager + void activateView(TIRViewId aViewId, bool aPushCurrentView); + + //from base class IRAbstractViewManager + void activateView(IRBaseView *aView, bool aPushCurrentView); + + //from base class IRAbstractViewManager + void pushViewById(TIRViewId aViewId); + + //from base class IRAbstractViewManager + TIRViewId currentViewId() const; + + //from base class IRAbstractViewManager + TIRHandleResult handleSystemEvent(TIRSystemEventType aEvent); + + bool isExiting() const; + +protected: + void mousePressEvent(QMouseEvent *aEvent); + void mouseReleaseEvent(QMouseEvent *aEvent); + + void paintEvent(QPaintEvent *aEvent); + +private slots: + void backToPreviousView(); + /*we need to start the logo-down process after the effect for the process + * may block some painting event in QT enviroment*/ + void showEffectFinished(HbEffect::EffectStatus aStatus); + void hideEffectFinished(HbEffect::EffectStatus aStatus); + void currentViewChanged(HbView *aView); + + void crossLineReset(); + void exitTimeout(); + +private: + void backToView(TIRViewId aViewId); + IRBaseView* createView(IRApplication* aApplication, TIRViewId aViewId); + void clearStack(); + void updateSoftkey(); + + bool readyToQuit(); + + void switchToNextView(IRBaseView *aView); + +private: + QStack iViewStack; + HbAction *iBackAction; + HbAction *iExitAction; + IRBaseView *iViewToHide; + + bool iCrossLineAReady; + bool iCrossLineBReady; + bool iCrossLineEnable; + + bool iCrossLineShowing; + + QLineF iCrossLineA; + QLineF iCrossLineB; + + QTimer *iCrossLineTimer; + QTimer *iExitTimer; + + bool iExiting; +}; + +#endif