diff -r aecbbf00d063 -r d48ab3b357f1 psln/Inc/PslnScreenSaverView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/psln/Inc/PslnScreenSaverView.h Wed Sep 01 12:16:19 2010 +0100 @@ -0,0 +1,302 @@ +/* +* Copyright (c) 2005-2007 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: Provides Psln Application Screensaver view. +* +*/ + + + +#ifndef CPSLNSCREENSAVERVIEW_H +#define CPSLNSCREENSAVERVIEW_H + +// INCLUDES +#include "PslnPropertySubscriber.h" + +// Base classes +#include "PslnBaseView.h" +#include "mpslnscreensaverecomobserver.h" +#include +#include + +#include +#include + +class CAknWaitDialog; + +/** +* CPslnBaseView view class. +* Provides Psln Application Screensaver view. +* +* @since S60 v3.1 +*/ +class CPslnScreenSaverView : public CPslnBaseView, + public MPslnScreenSaverECOMObserver, + public MPslnFWMSKObserver, + public MCenRepNotifyHandlerCallback, + public MPsmClientObserver + { + public: + + /** + * Two-phased constructor. + */ + static CPslnScreenSaverView* NewLC(); + + /** + * Destructor. + */ + virtual ~CPslnScreenSaverView(); + + /** + * From CAknView. + * Returns view id. + * @return An unsigned integer (view id). + */ + TUid Id() const; + + /** + * From MEikCommandObserver . + * Handles commands. + * @param aCommand Command to be handled. + */ + void HandleCommandL( TInt aCommand ); + + /** + * From MPslnScreenSaverECOMObserver. + * Called when there is a change in ECOM plugins. + */ + void HandlePluginListChangeL(); + + /** + * From MPslnFWMSKObserver. + * Checks if the MSK label needs to be adjusted. + */ + void CheckMiddleSoftkeyLabelL(); + + /** + * From MPsmClientObserver. + * Notify when the power save mode is changed. + */ + void PowerSaveModeChanged( const TPsmsrvMode aMode ); + + /** + * From MPsmClientObserver. + * Notify when some wrong with the power save mode change. + */ + void PowerSaveModeChangeError( const TInt aError ); + + private: + + /** + * Callback for exiting Screensaver preview mode. + * @param aPtr pointer to get reference to self. + * @return error code. + */ + static TInt HandlePreviewModeChanged( TAny* aPtr ); + + /** + * Callback for changes in Screensaver preview state. + * @param aPtr pointer to get reference to self. + * @return error code. + */ + static TInt HandlePreviewStateChanged( TAny* aPtr ); + + /** + * From CAknView. + * Called when view is about to activate. + */ + void DoActivateL( + const TVwsViewId& aPrevViewId, + TUid aCustomMessageId, + const TDesC8& aCustomMessage ); + + /** + * From CAknView. + * Called when view is deactivated. + */ + void DoDeactivate(); + + /** + * From MEikMenuObserver. + * Changes MenuPane dynamically. + */ + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + /** + * From MProgressDialogCallback. + * Called when wait note is removed. + */ + void DialogDismissedL( TInt aButtonId ); + + /** + * From CPslnBaseView. + * Handles listbox selection. + */ + void HandleListBoxSelectionL(); + + /** + * From CPslnBaseView. + * Creates new container. + */ + void NewContainerL(); + + /** + * From CPslnBaseView. + */ + void SetTitlePaneL( TInt& aResourceId ); + + /* From MCenRepNotifyHandlerCallback. */ + void HandleNotifyInt( TUint32 aId, TInt /*aNewValue*/ ); + + /* From MCenRepNotifyHandlerCallback. */ + void HandleNotifyGeneric( TUint32 aId ); + + /* From MCenRepNotifyHandlerCallback. */ + void HandleNotifyError( + TUint32 aId, + TInt aError, + CCenRepNotifyHandler* aHandler ); + + /** + * Handles screensaver activation command. + */ + void HandleScreenSaverActivationL( TInt aCurrentItem ); + + /** + * Handles screensaver preview command. + */ + void HandleScreenSaverPreviewL( TInt aCurrentItem ); + + /** + * Handles screensaver settings command. + */ + void HandleScreenSaverSettingsL( TInt aCurrentItem ); + + /** + * Launches opening note. + */ + void LaunchNote(); + + /** + * Same as above, but might leave. + */ + void LaunchNoteL(); + + /** + * Removes opening note and stops listening for screensaver preview + * state changes. + */ + void RemoveNote(); + + /** + * Same as above, but might leave. + */ + void RemoveNoteL(); + + /** + * Checks if screensaver function can be called, and if so makes + * the call through PslnEngine. + */ + void DoInvokeScreenSaverFunctionL( + const TInt aCurrentItem, + const TScPluginCaps aType ); + + /** + * Creates preview mode subscriber. + */ + void CreatePreviewModeSubscriberL(); + + /** + * Creates preview state subscriber. + */ + void CreatePreviewStateSubscriberL(); + + /** + * Remove command and label from MSK. + */ + void RemoveCommandFromMSK(); + + /** + * Is 'Change' command visible. + */ + TBool IsChangeCommandVisibleL() const; + + /** + * Is 'Apply' command visible. + */ + TBool IsApplyCommandVisibleL() const; + + /** + * C++ default constructor. + */ + CPslnScreenSaverView(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: + + /** + * Publish & Subscribe item for setting Preview mode. + */ + RProperty iPreviewModeProperty; + + /** + * Publish & Subscribe item for setting Preview state. + */ + RProperty iPreviewStateProperty; + + /** + * Publish & Subscribe listener for Preview mode. + * Own. + */ + CPslnPropertySubscriber* iPreviewModeSubscriber; + + /** + * Publish & Subscribe listener for Preview state. + * Own. + */ + CPslnPropertySubscriber* iPreviewStateSubscriber; + + /** + * Wait note wrapper. + * Own. + */ + CAknWaitDialog* iWaitDlg; + + /** + * Index of plugin screensaver that is previewed. + */ + TInt iScreenSaverPreviewIndex; + + /** + * Repository for active screensaver. + * Own. + */ + CRepository* iScreenSaverRepository; + + /** + * Notifier for changes in the screensaver repository. + * Own. + */ + CCenRepNotifyHandler* iScreenSaverNotifier; + CPsmClient *iPsmClient; + + }; + +#endif // CPSLNSCREENSAVERVIEW_H + +// End of File